@marimo-team/frontend 0.13.7-dev6 → 0.13.7-dev8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/ConnectedDataExplorerComponent-CLc0tWMC.js +19 -0
- package/dist/assets/VegaLite-DeIA1FjI.js +189 -0
- package/dist/assets/_baseEach-Cyw-LuDI.js +1 -0
- package/dist/assets/_baseMap-C1RlaUrw.js +1 -0
- package/dist/assets/_baseUniq-Q2eJnBNa.js +1 -0
- package/dist/assets/_createAggregator-UrANbXdP.js +1 -0
- package/dist/assets/{any-language-editor-D9fEgqG1.js → any-language-editor-Cfa0V48Y.js} +3 -1
- package/dist/assets/apl-CXdQSnD-.js +1 -1
- package/dist/assets/arc-Cuwikxov.js +1 -1
- package/dist/assets/architectureDiagram-IEHRJDOE-CP5nWQay.js +36 -0
- package/dist/assets/asciiarmor-D5V0T9Cu.js +1 -1
- package/dist/assets/asn1-DWPaVWf6.js +1 -1
- package/dist/assets/asterisk-B46aRdXb.js +1 -1
- package/dist/assets/blockDiagram-JOT3LUYC-pMp2cXt0.js +121 -0
- package/dist/assets/brainfuck-CtZaYBKt.js +1 -1
- package/dist/assets/c4Diagram-VJAJSXHY-Bn4nvkHl.js +10 -0
- package/dist/assets/channel-pbDhyq1Y.js +1 -0
- package/dist/assets/chunk-4BMEZGHF-BVHPUEv5.js +1 -0
- package/dist/assets/chunk-A2AXSNBT-Cr_zhb-n.js +164 -0
- package/dist/assets/chunk-AEK57VVT-Cw97WREt.js +220 -0
- package/dist/assets/chunk-D6G4REZN-CbomMNl3.js +1 -0
- package/dist/assets/chunk-RZ5BOZE2-D-i5I5dS.js +1 -0
- package/dist/assets/chunk-XZIHB7SX-BxAeN6c9.js +1 -0
- package/dist/assets/{circle-play-Bc0uRvfe.js → circle-play-NJSP28OU.js} +1 -2
- package/dist/assets/classDiagram-GIVACNV2-DrKh0GDa.js +1 -0
- package/dist/assets/classDiagram-v2-COTLJTTW-DrKh0GDa.js +1 -0
- package/dist/assets/clike-BgBwzOhw.js +1 -1
- package/dist/assets/clojure-DR_hEDJv.js +1 -1
- package/dist/assets/clone-DTrfPVDc.js +1 -0
- package/dist/assets/cmake-DXn5xaP-.js +1 -1
- package/dist/assets/cobol-stawOqaz.js +1 -1
- package/dist/assets/coffeescript-BTDxI-eT.js +1 -1
- package/dist/assets/colors-bszWmPJw.js +1 -1
- package/dist/assets/commonlisp-vq6DHwts.js +1 -1
- package/dist/assets/compile-B99z9p1c.js +10 -0
- package/dist/assets/crystal-CRzZ78HM.js +1 -1
- package/dist/assets/css-ZjFoif2m.js +1 -1
- package/dist/assets/cypher-gJDei3ni.js +1 -1
- package/dist/assets/cytoscape.esm-C5gjFiAL.js +10 -0
- package/dist/assets/d-BShv7fp-.js +1 -1
- package/dist/assets/dagre-OKDRZEBW-DFwLfrsP.js +4 -0
- package/dist/assets/data-editor-BnkfFTyP.js +142 -0
- package/dist/assets/diagram-SSKATNLV-DNHawSaS.js +43 -0
- package/dist/assets/diagram-VNBRO52H-mAGMWxSF.js +24 -0
- package/dist/assets/diff-UJJ5BM9S.js +1 -1
- package/dist/assets/dockerfile-knGOOxt4.js +1 -1
- package/dist/assets/dtd-DI9Herc-.js +1 -1
- package/dist/assets/dylan-CHJ5qNM_.js +1 -1
- package/dist/assets/ebnf-B-Df8AvO.js +1 -1
- package/dist/assets/ecl-DPFc0Uaf.js +1 -1
- package/dist/assets/edit-page-DqQ_uRQm.js +134 -0
- package/dist/assets/eiffel-DR5c0IrL.js +1 -1
- package/dist/assets/elm-D7xaZ7Da.js +1 -1
- package/dist/assets/erDiagram-Q7BY3M3F-B7JQx89Q.js +60 -0
- package/dist/assets/erlang-BuqgqA5h.js +1 -1
- package/dist/assets/fcl-CVaBTCzQ.js +1 -1
- package/dist/assets/flowDiagram-4HSFHLVR-CrIteLwE.js +161 -0
- package/dist/assets/forth-Dri_5nFc.js +1 -1
- package/dist/assets/fortran-DL7KluxX.js +1 -1
- package/dist/assets/ganttDiagram-APWFNJXF-B82yNILY.js +257 -0
- package/dist/assets/gas-5kEe4nk0.js +1 -1
- package/dist/assets/gherkin-B6X1vGSW.js +1 -1
- package/dist/assets/gitGraphDiagram-7IBYFJ6S-BX1zzD_4.js +65 -0
- package/dist/assets/graph-n5raD8-X.js +1 -0
- package/dist/assets/groovy-DnIzCrpZ.js +1 -1
- package/dist/assets/haskell-CmdsSjFB.js +1 -1
- package/dist/assets/haxe-D25e-2l-.js +1 -1
- package/dist/assets/home-page-CAkv18DE.js +9 -0
- package/dist/assets/http-BKJkqRj4.js +1 -1
- package/dist/assets/idl-pcmmZuaN.js +1 -1
- package/dist/assets/index-2V-aA6ro.js +19 -0
- package/dist/assets/index-2n81G4S2.js +1 -0
- package/dist/assets/index-BLczHwIF.js +1 -0
- package/dist/assets/index-BVjb7S6F.js +1 -0
- package/dist/assets/index-BaaSOg-V.js +1 -0
- package/dist/assets/index-C4VFj4aB.js +476 -0
- package/dist/assets/index-CGXa2hxu.js +1 -0
- package/dist/assets/index-CHjC2BHW.js +1 -0
- package/dist/assets/index-CJD1KDty.js +1 -0
- package/dist/assets/index-CVS30d8t.js +1 -0
- package/dist/assets/index-Ch51YLFK.js +1 -0
- package/dist/assets/index-ChvXZz4O.js +1 -0
- package/dist/assets/index-CiXJGIA5.js +7 -0
- package/dist/assets/index-D2X6Wktl.js +1 -0
- package/dist/assets/index-DWX453Nv.css +1 -0
- package/dist/assets/index-De6_X4XZ.js +1 -0
- package/dist/assets/index-DoMH_weu.js +1 -0
- package/dist/assets/index-HeByvlyV.js +1 -0
- package/dist/assets/index-MuEQoKhf.js +1 -0
- package/dist/assets/index-f2YtY2NK.js +1 -0
- package/dist/assets/infoDiagram-PH2N3AL5-BEA8jVe9.js +2 -0
- package/dist/assets/init-DLRA0X12.js +1 -1
- package/dist/assets/javascript-D48wDJXV.js +1 -1
- package/dist/assets/jinja2-DhgKlfW7.js +1 -1
- package/dist/assets/journeyDiagram-U35MCT3I-BFBt52HP.js +138 -0
- package/dist/assets/julia-DjdwvFuI.js +1 -1
- package/dist/assets/kanban-definition-NDS4AKOZ-D6o6rwO8.js +88 -0
- package/dist/assets/katex-BsnJiHtx.js +261 -0
- package/dist/assets/layout-BuG044DG.js +1 -0
- package/dist/assets/linear-HjYCbFKN.js +1 -0
- package/dist/assets/livescript-HO6ttBFx.js +1 -1
- package/dist/assets/loro_wasm_bg-DHBNbovs.wasm +0 -0
- package/dist/assets/lua-8DXOpKDz.js +1 -1
- package/dist/assets/mathematica-IIbmv7SK.js +1 -1
- package/dist/assets/mbox-z_N2Mo3d.js +1 -0
- package/dist/assets/mermaid-DNnTn1ax.js +152 -0
- package/dist/assets/mhchem-C_nT2J_7.js +1 -0
- package/dist/assets/min-DUCyIShx.js +1 -0
- package/dist/assets/mindmap-definition-ALO5MXBD-CKIhzL5r.js +95 -0
- package/dist/assets/mirc-DkvFAiy5.js +1 -1
- package/dist/assets/mllike-3c2dg9RT.js +1 -1
- package/dist/assets/modelica-DSrSSXCg.js +1 -1
- package/dist/assets/mscgen-B2igx18G.js +1 -1
- package/dist/assets/mumps-zvxmGV4l.js +1 -1
- package/dist/assets/nginx-B4hAVlXN.js +1 -1
- package/dist/assets/ntriples-FFvkTduk.js +1 -1
- package/dist/assets/octave-C4hdQ5Hf.js +1 -1
- package/dist/assets/ordinal-DDUp3AbE.js +1 -1
- package/dist/assets/oz-qQq7irPq.js +1 -1
- package/dist/assets/pascal-CafrKXZF.js +1 -1
- package/dist/assets/perl-tdMlh9QA.js +1 -1
- package/dist/assets/pieDiagram-IB7DONF6-Cl9LWE0V.js +30 -0
- package/dist/assets/pig-CwGJVRC4.js +1 -1
- package/dist/assets/powershell-D1ly3AHC.js +1 -1
- package/dist/assets/properties-_nPj978X.js +1 -1
- package/dist/assets/protobuf-B4y9do6W.js +1 -1
- package/dist/assets/pug-_kJOm_E2.js +1 -1
- package/dist/assets/puppet-Bc-yJKzi.js +1 -1
- package/dist/assets/python-DD-Q2bae.js +1 -1
- package/dist/assets/q-B0kTJ4cI.js +1 -1
- package/dist/assets/quadrantDiagram-7GDLP6J5-BWkeBvxF.js +7 -0
- package/dist/assets/r-BA4EbLKE.js +1 -1
- package/dist/assets/radar-MK3ICKWK-DfEvYX9n.js +126 -0
- package/dist/assets/range-CtcPcB_L.js +1 -1
- package/dist/assets/react-plotly-DnYa98wl.js +4074 -0
- package/dist/assets/requirementDiagram-KVF5MWMF-B3GypB5w.js +64 -0
- package/dist/assets/rpm-DI_rRufH.js +1 -1
- package/dist/assets/ruby-CR-u2WLS.js +1 -1
- package/dist/assets/run-page-AYFVu0sg.js +1 -0
- package/dist/assets/sankeyDiagram-QLVOVGJD-Duwbvz1H.js +10 -0
- package/dist/assets/sas-Bqaci40L.js +1 -1
- package/dist/assets/save-worker-Metbq5yy.js +1 -0
- package/dist/assets/scheme-qjP0V5Ag.js +1 -1
- package/dist/assets/sequenceDiagram-X6HHIX6F-CPZ3p0P0.js +122 -0
- package/dist/assets/shell-BLav31RL.js +1 -1
- package/dist/assets/sieve-r025o_jW.js +1 -1
- package/dist/assets/simple-mode-C3vEBAcb.js +1 -1
- package/dist/assets/slides-component-ji4ZW29g.js +1 -0
- package/dist/assets/smalltalk-C7J3IyEP.js +1 -1
- package/dist/assets/solr-78MBEUkU.js +1 -1
- package/dist/assets/sortBy-Bb9JPW3o.js +1 -0
- package/dist/assets/sparql-BRLJFz69.js +1 -1
- package/dist/assets/spreadsheet-CGlWr0eM.js +1 -1
- package/dist/assets/sql-B3SPsWL6.js +1 -1
- package/dist/assets/stateDiagram-DGXRK772-DBMoid7W.js +1 -0
- package/dist/assets/stateDiagram-v2-YXO3MK2T-C6Yw638v.js +1 -0
- package/dist/assets/step-BwsUM5iJ.js +1 -1
- package/dist/assets/stylus-OdhglgkO.js +1 -1
- package/dist/assets/swift-B_XXVlXX.js +1 -1
- package/dist/assets/tcl-B2fODqDH.js +1 -1
- package/dist/assets/terminal-BvrOH4Uo.js +9 -0
- package/dist/assets/terminal-WqMRJt5Z.css +1 -0
- package/dist/assets/textile-BuVhTOzU.js +1 -1
- package/dist/assets/tiddlywiki-BgR6AEZu.js +1 -1
- package/dist/assets/tiki-CI-ztowC.js +1 -1
- package/dist/assets/time-Dhxp9qd9.js +1 -0
- package/dist/assets/timeline-definition-BDJGKUSR-D3iIxPo0.js +61 -0
- package/dist/assets/timer-DFzT7np-.js +1 -1
- package/dist/assets/toml-BQXy8elZ.js +1 -1
- package/dist/assets/tracing-gp4drB6-.js +2 -0
- package/dist/assets/transform-Cyp0GDF-.js +1 -0
- package/dist/assets/tree-BMOusOrc.js +17 -0
- package/dist/assets/troff-Ce85hlLp.js +1 -1
- package/dist/assets/ttcn-BxnYHtq8.js +1 -1
- package/dist/assets/ttcn-cfg-CKJxb-l2.js +1 -1
- package/dist/assets/turtle-BkSuIpt-.js +1 -1
- package/dist/assets/useMarimoWebSocket-BsUbqg1d.js +27 -0
- package/dist/assets/vb-BHgjm0DN.js +1 -1
- package/dist/assets/vbscript-Dawdd5GZ.js +1 -1
- package/dist/assets/vega-component-DZEBlVKg.js +1 -0
- package/dist/assets/velocity-BdD_26Jv.js +1 -1
- package/dist/assets/verilog-B4LBqg_1.js +1 -1
- package/dist/assets/vhdl-CWWH2SUo.js +1 -1
- package/dist/assets/web-vitals-Buym0gfC.js +1 -0
- package/dist/assets/webidl-CGwyPRYs.js +1 -1
- package/dist/assets/worker--c-Qm4dm.js +1 -0
- package/dist/assets/worker-kTJmA5be.js +1 -0
- package/dist/assets/xquery-CVDBqZPY.js +1 -1
- package/dist/assets/xychartDiagram-VJFVF3MP-lnK1D7Dl.js +7 -0
- package/dist/assets/yacas-I8QjZlxf.js +1 -1
- package/dist/assets/z80-D8p3gKXp.js +1 -1
- package/dist/assets/zoom-COrs4lFh.js +1 -1
- package/dist/index.html +2 -2
- package/package.json +5 -4
- package/dist/assets/ConnectedDataExplorerComponent-DYO4zMqc.js +0 -22
- package/dist/assets/VegaLite-CNKZYR1c.js +0 -11
- package/dist/assets/_baseEach-BOi1xMzz.js +0 -1
- package/dist/assets/_baseMap-D2kyVuny.js +0 -1
- package/dist/assets/_baseUniq-EQxa8zIF.js +0 -1
- package/dist/assets/_createAggregator-Dvx5-qYj.js +0 -1
- package/dist/assets/architectureDiagram-IEHRJDOE-v-T5Y1-p.js +0 -1
- package/dist/assets/blockDiagram-JOT3LUYC-gYxXk9dX.js +0 -1
- package/dist/assets/c4Diagram-VJAJSXHY-DNHzSaJu.js +0 -1
- package/dist/assets/channel-B7Urz9Qw.js +0 -1
- package/dist/assets/chunk-4BMEZGHF-CNlj2iKt.js +0 -1
- package/dist/assets/chunk-A2AXSNBT-CsfD1o8e.js +0 -1
- package/dist/assets/chunk-AEK57VVT-DHti-T9J.js +0 -1
- package/dist/assets/chunk-D6G4REZN-Ca9tCcNK.js +0 -1
- package/dist/assets/chunk-RZ5BOZE2-S4AIQ3i1.js +0 -1
- package/dist/assets/chunk-XZIHB7SX-BcCHvDgC.js +0 -1
- package/dist/assets/classDiagram-GIVACNV2-Dw-L5tk0.js +0 -1
- package/dist/assets/classDiagram-v2-COTLJTTW-Dw-L5tk0.js +0 -1
- package/dist/assets/clone-2VLlfYv8.js +0 -1
- package/dist/assets/compile-DhiD2OIl.js +0 -1
- package/dist/assets/cytoscape.esm-bH-fs5wT.js +0 -9
- package/dist/assets/dagre-OKDRZEBW-D2Qg0Imy.js +0 -1
- package/dist/assets/data-editor-CG3MBzRh.js +0 -1
- package/dist/assets/diagram-SSKATNLV-DxHLKgNC.js +0 -1
- package/dist/assets/diagram-VNBRO52H-D6KRYowD.js +0 -1
- package/dist/assets/edit-page-ByAm3pnm.js +0 -8
- package/dist/assets/erDiagram-Q7BY3M3F-CWDap52H.js +0 -1
- package/dist/assets/flowDiagram-4HSFHLVR-BfiYb11e.js +0 -1
- package/dist/assets/ganttDiagram-APWFNJXF-CQV1P3oH.js +0 -1
- package/dist/assets/gitGraphDiagram-7IBYFJ6S-BkR4L5qA.js +0 -1
- package/dist/assets/graph-DCc8CUpI.js +0 -1
- package/dist/assets/home-page-DBmHL8mR.js +0 -7
- package/dist/assets/index-B6SjbC50.js +0 -1
- package/dist/assets/index-BD18meo4.js +0 -1
- package/dist/assets/index-BbEv2iVN.css +0 -1
- package/dist/assets/index-BkczaLMR.js +0 -1
- package/dist/assets/index-CDrhBJh5.js +0 -1
- package/dist/assets/index-CSvNPv2W.js +0 -1
- package/dist/assets/index-Cm_Gezq1.js +0 -1
- package/dist/assets/index-Cu1YZJKo.js +0 -1
- package/dist/assets/index-Cxi84xou.js +0 -1
- package/dist/assets/index-D-nbCOVY.js +0 -1
- package/dist/assets/index-D0xs4wpq.js +0 -1
- package/dist/assets/index-D25ZVZoz.js +0 -87
- package/dist/assets/index-DXL9W3IU.js +0 -1
- package/dist/assets/index-DZ4-or1K.js +0 -1
- package/dist/assets/index-Dvf3vz4o.js +0 -1
- package/dist/assets/index-W7aBJ9gy.js +0 -1
- package/dist/assets/index-XQJA6HPM.js +0 -1
- package/dist/assets/index-c7qrzQb-.js +0 -1
- package/dist/assets/index-vtzfPcuf.js +0 -1
- package/dist/assets/index-yYteRT7n.js +0 -1
- package/dist/assets/infoDiagram-PH2N3AL5-D-Eqt5lr.js +0 -1
- package/dist/assets/journeyDiagram-U35MCT3I-B_5-obIw.js +0 -1
- package/dist/assets/kanban-definition-NDS4AKOZ-Bc_pNgjQ.js +0 -1
- package/dist/assets/katex-Blph-pX_.js +0 -1
- package/dist/assets/layout-C4Z666Y5.js +0 -1
- package/dist/assets/linear-WjwPNEQl.js +0 -1
- package/dist/assets/mbox-DoeuZPxA.js +0 -1
- package/dist/assets/mermaid-D2SdoFUx.js +0 -7
- package/dist/assets/mhchem-9pkdwevO.js +0 -1
- package/dist/assets/min-Dg--LZAL.js +0 -1
- package/dist/assets/mindmap-definition-ALO5MXBD-DX-U9wBy.js +0 -1
- package/dist/assets/pieDiagram-IB7DONF6-BubIPQJh.js +0 -1
- package/dist/assets/quadrantDiagram-7GDLP6J5-BHeylzWe.js +0 -1
- package/dist/assets/radar-MK3ICKWK-DRTZUi9y.js +0 -1
- package/dist/assets/react-plotly-DKU7Ou4l.js +0 -71
- package/dist/assets/requirementDiagram-KVF5MWMF-BdBi4uFV.js +0 -1
- package/dist/assets/run-page-Shivl0hH.js +0 -1
- package/dist/assets/sankeyDiagram-QLVOVGJD-D5qRjQPK.js +0 -1
- package/dist/assets/save-worker-CQvBUha3.js +0 -1
- package/dist/assets/sequenceDiagram-X6HHIX6F-VDxd_dJn.js +0 -1
- package/dist/assets/slides-component-C53UoNKL.js +0 -1
- package/dist/assets/sortBy-BWYzlL2q.js +0 -1
- package/dist/assets/stateDiagram-DGXRK772-BPFYFRuA.js +0 -1
- package/dist/assets/stateDiagram-v2-YXO3MK2T-CN_rBf9z.js +0 -1
- package/dist/assets/terminal-BMjRJT_H.js +0 -1
- package/dist/assets/terminal-DVzybcfs.css +0 -1
- package/dist/assets/time-J7OIP1Ve.js +0 -1
- package/dist/assets/timeline-definition-BDJGKUSR-DEPlt-q1.js +0 -1
- package/dist/assets/tracing--bLHkrsQ.js +0 -8
- package/dist/assets/transform-DjHZbYKP.js +0 -1
- package/dist/assets/tree-gS-oXpYe.js +0 -8
- package/dist/assets/useMarimoWebSocket-C7Q2pfmw.js +0 -15
- package/dist/assets/vega-component-DYEjmga7.js +0 -1
- package/dist/assets/web-vitals-rCWRSGQR.js +0 -1
- package/dist/assets/worker-DMKWnagd.js +0 -1
- package/dist/assets/worker-DXe6aoib.js +0 -1
- package/dist/assets/xychartDiagram-VJFVF3MP-D7Uukgqz.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e,t,n,r,i,s,a,o,l,c,u,d,h,p=Object.defineProperty,f=(e,t,n)=>((e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);import{ni as m,d9 as g,x as y,cF as T,P as v,cW as R,c$ as E,d0 as A,H as k,K as $,J as x,bQ as S,nj as I,ai as N,d1 as C,cO as w,nk as L,ax as O,cQ as _,au as b,nl as P,cX as M,nm as D,d3 as U,O as G,aw as F,ca as B,nn as K,no as V,np as j,nq as H,ak as W}from"./index-D25ZVZoz.js";import{b as z,a as Y}from"./_baseEach-BOi1xMzz.js";import{g as q,v as X,h as Q,j as J,k as Z,a as ee,c as te,i as ne,r as re,f as ie,n as se}from"./_baseUniq-EQxa8zIF.js";import{m as ae,f as oe,h as le,d as ce,l as ue,c as de}from"./min-Dg--LZAL.js";import{a9 as he}from"./mermaid-D2SdoFUx.js";import{c as pe}from"./clone-2VLlfYv8.js";import{c as fe}from"./_createAggregator-Dvx5-qYj.js";var me=Object.prototype.hasOwnProperty,ge=m((function(e,t){if(g(t)||y(t))T(t,v(t),e);else for(var n in t)me.call(t,n)&&R(e,n,t[n])}));function ye(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var s=e[t];s&&(i[r++]=s)}return i}var Te=k((function(e,t){return $(e)?function(e,t,n,r){var i=-1,s=q,a=!0,o=e.length,l=[],c=t.length;if(!o)return l;t.length>=200&&(s=A,a=!1,t=new E(t));e:for(;++i<o;){var u=e[i],d=u;if(u=0!==u?u:0,a&&d==d){for(var h=c;h--;)if(t[h]===d)continue e;l.push(u)}else s(t,d,r)||l.push(u)}return l}(e,x(t,1,$,!0)):[]}));function ve(e,t,n){var r=null==e?0:e.length;return r?(t=void 0===t?1:S(t),I(e,t<0?0:t,r)):[]}function Re(e,t,n){var r=null==e?0:e.length;return r?(t=void 0===t?1:S(t),I(e,0,(t=r-t)<0?0:t)):[]}function Ee(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Ae(e,t){var n=!0;return z(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function ke(e,t,n){return(N(e)?Ee:Ae)(e,Y(t))}function $e(e){return e&&e.length?e[0]:void 0}function xe(e,t){return x(ae(e,t))}var Se=Object.prototype.hasOwnProperty,Ie=fe((function(e,t,n){Se.call(e,n)?e[n].push(t):C(e,n,[t])}));function Ne(e){return"string"==typeof e||!N(e)&&w(e)&&"[object String]"==L(e)}var Ce=Math.max;function we(e,t,n,r){e=y(e)?e:X(e),n=n?S(n):0;var i=e.length;return n<0&&(n=Ce(i+n,0)),Ne(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&Q(e,t,n)>-1}function Le(e,t,n){if(!(null==e?0:e.length))return-1;return Q(e,t,0)}var Oe=_&&_.isRegExp,_e=Oe?O(Oe):function(e){return w(e)&&"[object RegExp]"==L(e)};function be(e,t){if(null==e)return{};var n=b(J(e),(function(e){return[e]}));return t=Y(t),P(e,n,(function(e,n){return t(e,n[0])}))}function Pe(e,t){return(N(e)?M:Z)(e,function(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}(Y(t)))}function Me(e,t){var n;return z(e,(function(e,r,i){return!(n=t(e,r,i))})),!!n}function De(e,t,n){return(N(e)?D:Me)(e,Y(t))}function Ue(e){return e&&e.length?ee(e):[]}function Ge(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function Fe(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}function Be(e){return"object"==typeof e&&null!==e&&Ge(e.container)&&Fe(e.reference)&&"string"==typeof e.message}class Ke{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return Ge(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});const r=n[t];if(void 0!==r)return r;{const r=this.computeIsSubtype(e,t);return n[t]=r,r}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const t=this.getAllTypes(),n=[];for(const r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}}function Ve(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function je(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function He(e){return Ve(e)&&"string"==typeof e.fullText}class We{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(){const e=this.iterator();return Boolean(e.next().done)}count(){const e=this.iterator();let t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){const e=[],t=this.iterator();let n;do{n=t.next(),void 0!==n.value&&e.push(n.value)}while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){const n=this.map((n=>[e?e(n):n,t?t(n):n]));return new Map(n)}toString(){return this.join()}concat(e){return new We((()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()})),(e=>{let t;if(!e.firstDone){do{if(t=this.nextFn(e.first),!t.done)return t}while(!t.done);e.firstDone=!0}do{if(t=e.iterator.next(),!t.done)return t}while(!t.done);return Xe}))}join(e=","){const t=this.iterator();let n,r="",i=!1;do{n=t.next(),n.done||(i&&(r+=e),r+=ze(n.value)),i=!0}while(!n.done);return r}indexOf(e,t=0){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(e){return new We(this.startFn,(t=>{const{done:n,value:r}=this.nextFn(t);return n?Xe:{done:!1,value:e(r)}}))}filter(e){return new We(this.startFn,(t=>{let n;do{if(n=this.nextFn(t),!n.done&&e(n.value))return n}while(!n.done);return Xe}))}nonNullable(){return this.filter((e=>null!=e))}reduce(e,t){const n=this.iterator();let r=t,i=n.next();for(;!i.done;)r=void 0===r?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const r=e.next();if(r.done)return n;const i=this.recursiveReduce(e,t,n);return void 0===i?r.value:t(i,r.value)}find(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new We((()=>({this:this.startFn()})),(t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}const{done:n,value:r}=this.nextFn(t.this);if(!n){const n=e(r);if(!Ye(n))return{done:!1,value:n};t.iterator=n[Symbol.iterator]()}}while(t.iterator);return Xe}))}flat(e){if(void 0===e&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new We((()=>({this:t.startFn()})),(e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}const{done:n,value:r}=t.nextFn(e.this);if(!n){if(!Ye(r))return{done:!1,value:r};e.iterator=r[Symbol.iterator]()}}while(e.iterator);return Xe}))}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new We((()=>{const t=this.startFn();for(let n=0;n<e;n++){if(this.nextFn(t).done)return t}return t}),this.nextFn)}limit(e){return new We((()=>({size:0,state:this.startFn()})),(t=>(t.size++,t.size>e?Xe:this.nextFn(t.state))))}distinct(e){return new We((()=>({set:new Set,internalState:this.startFn()})),(t=>{let n;do{if(n=this.nextFn(t.internalState),!n.done){const r=e?e(n.value):n.value;if(!t.set.has(r))return t.set.add(r),n}}while(!n.done);return Xe}))}exclude(e,t){const n=new Set;for(const r of e){const e=t?t(r):r;n.add(e)}return this.filter((e=>{const r=t?t(e):e;return!n.has(r)}))}}function ze(e){return"string"==typeof e?e:void 0===e?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function Ye(e){return!!e&&"function"==typeof e[Symbol.iterator]}const qe=new We((()=>{}),(()=>Xe)),Xe=Object.freeze({done:!0,value:void 0});function Qe(...e){if(1===e.length){const t=e[0];if(t instanceof We)return t;if(Ye(t))return new We((()=>t[Symbol.iterator]()),(e=>e.next()));if("number"==typeof t.length)return new We((()=>({index:0})),(e=>e.index<t.length?{done:!1,value:t[e.index++]}:Xe))}return e.length>1?new We((()=>({collIndex:0,arrIndex:0})),(t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){const n=e[t.collIndex++];Ye(n)?t.iterator=n[Symbol.iterator]():n&&"number"==typeof n.length&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return Xe})):qe}class Je extends We{constructor(e,t,n){super((()=>({iterators:(null==n?void 0:n.includeRoot)?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1})),(e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){const n=e.iterators[e.iterators.length-1].next();if(!n.done)return e.iterators.push(t(n.value)[Symbol.iterator]()),n;e.iterators.pop()}return Xe}))}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Ze,et,tt,nt;function rt(e){return new Je(e,(e=>Ve(e)?e.content:[]),{includeRoot:!0})}function it(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function st(e){if(!e)return;const{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}function at(e,t){const n=function(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return tt.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return tt.After;const n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?tt.Inside:n?tt.OverlapBack:r?tt.OverlapFront:tt.Outside}(e,t);return n>tt.After}(et=Ze||(Ze={})).sum=function(e){return e.reduce(((e,t)=>e+t),0)},et.product=function(e){return e.reduce(((e,t)=>e*t),0)},et.min=function(e){return e.reduce(((e,t)=>Math.min(e,t)))},et.max=function(e){return e.reduce(((e,t)=>Math.max(e,t)))},(nt=tt||(tt={}))[nt.Before=0]="Before",nt[nt.After=1]="After",nt[nt.OverlapFront=2]="OverlapFront",nt[nt.OverlapBack=3]="OverlapBack",nt[nt.Inside=4]="Inside",nt[nt.Outside=5]="Outside";const ot=/^[\w\p{L}]$/u;function lt(e,t){return je(e)&&t.includes(e.tokenType.name)}class ct extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function ut(e){throw new Error("Error! The input value was not handled.")}const dt="AbstractRule",ht="AbstractType",pt="Condition",ft="TypeDefinition",mt="ValueLiteral",gt="AbstractElement";const yt="ArrayLiteral",Tt="ArrayType",vt="BooleanLiteral";const Rt="Conjunction";const Et="Disjunction";const At="Grammar",kt="GrammarImport",$t="InferredType";function xt(e){return Tn.isInstance(e,$t)}const St="Interface";function It(e){return Tn.isInstance(e,St)}const Nt="NamedArgument",Ct="Negation";const wt="NumberLiteral",Lt="Parameter",Ot="ParameterReference";const _t="ParserRule";function bt(e){return Tn.isInstance(e,_t)}const Pt="ReferenceType",Mt="ReturnType";const Dt="SimpleType";const Ut="StringLiteral",Gt="TerminalRule";function Ft(e){return Tn.isInstance(e,Gt)}const Bt="Type";function Kt(e){return Tn.isInstance(e,Bt)}const Vt="TypeAttribute",jt="UnionType",Ht="Action";function Wt(e){return Tn.isInstance(e,Ht)}const zt="Alternatives";function Yt(e){return Tn.isInstance(e,zt)}const qt="Assignment";function Xt(e){return Tn.isInstance(e,qt)}const Qt="CharacterRange";const Jt="CrossReference";function Zt(e){return Tn.isInstance(e,Jt)}const en="EndOfFile";const tn="Group";function nn(e){return Tn.isInstance(e,tn)}const rn="Keyword";function sn(e){return Tn.isInstance(e,rn)}const an="NegatedToken";const on="RegexToken";const ln="RuleCall";function cn(e){return Tn.isInstance(e,ln)}const un="TerminalAlternatives";const dn="TerminalGroup";const hn="TerminalRuleCall";const pn="UnorderedGroup";function fn(e){return Tn.isInstance(e,pn)}const mn="UntilToken";const gn="Wildcard";class yn extends Ke{getAllTypes(){return[gt,dt,ht,Ht,zt,yt,Tt,qt,vt,Qt,pt,Rt,Jt,Et,en,At,kt,tn,$t,St,rn,Nt,an,Ct,wt,Lt,Ot,_t,Pt,on,Mt,ln,Dt,Ut,un,dn,Gt,hn,Bt,Vt,ft,jt,pn,mn,mt,gn]}computeIsSubtype(e,t){switch(e){case Ht:case zt:case qt:case Qt:case Jt:case en:case tn:case rn:case an:case on:case ln:case un:case dn:case hn:case pn:case mn:case gn:return this.isSubtype(gt,t);case yt:case wt:case Ut:return this.isSubtype(mt,t);case Tt:case Pt:case Dt:case jt:return this.isSubtype(ft,t);case vt:return this.isSubtype(pt,t)||this.isSubtype(mt,t);case Rt:case Et:case Ct:case Ot:return this.isSubtype(pt,t);case $t:case St:case Bt:return this.isSubtype(ht,t);case _t:return this.isSubtype(dt,t)||this.isSubtype(ht,t);case Gt:return this.isSubtype(dt,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 ht;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return dt;case"Grammar:usedGrammars":return At;case"NamedArgument:parameter":case"ParameterReference:parameter":return Lt;case"TerminalRuleCall:rule":return Gt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case gt:return{name:gt,properties:[{name:"cardinality"},{name:"lookahead"}]};case yt:return{name:yt,properties:[{name:"elements",defaultValue:[]}]};case Tt:return{name:Tt,properties:[{name:"elementType"}]};case vt:return{name:vt,properties:[{name:"true",defaultValue:!1}]};case Rt:return{name:Rt,properties:[{name:"left"},{name:"right"}]};case Et:return{name:Et,properties:[{name:"left"},{name:"right"}]};case At:return{name:At,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 kt:return{name:kt,properties:[{name:"path"}]};case $t:return{name:$t,properties:[{name:"name"}]};case St:return{name:St,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Nt:return{name:Nt,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Ct:return{name:Ct,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"value"}]};case Lt:return{name:Lt,properties:[{name:"name"}]};case Ot:return{name:Ot,properties:[{name:"parameter"}]};case _t:return{name:_t,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 Pt:return{name:Pt,properties:[{name:"referenceType"}]};case Mt:return{name:Mt,properties:[{name:"name"}]};case Dt:return{name:Dt,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Ut:return{name:Ut,properties:[{name:"value"}]};case Gt:return{name:Gt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Bt:return{name:Bt,properties:[{name:"name"},{name:"type"}]};case Vt:return{name:Vt,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case jt:return{name:jt,properties:[{name:"types",defaultValue:[]}]};case Ht:return{name:Ht,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case zt:return{name:zt,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case qt:return{name:qt,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Qt:return{name:Qt,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Jt:return{name:Jt,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case en:return{name:en,properties:[{name:"cardinality"},{name:"lookahead"}]};case tn:return{name:tn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case rn:return{name:rn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case an:return{name:an,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case on:return{name:on,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case ln:return{name:ln,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case un:return{name:un,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case dn:return{name:dn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case hn:return{name:hn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case pn:return{name:pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case mn:return{name:mn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case gn:return{name:gn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const Tn=new yn;function vn(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function Rn(e){const t=En(e).$document;if(!t)throw new Error("AST node has no document.");return t}function En(e){for(;e.$container;)e=e.$container;return e}function An(e,t){if(!e)throw new Error("Node must be an AstNode.");const n=null==t?void 0:t.range;return new We((()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0})),(t=>{for(;t.keyIndex<t.keys.length;){const r=t.keys[t.keyIndex];if(!r.startsWith("$")){const i=e[r];if(Ge(i)){if(t.keyIndex++,xn(i,n))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){const e=i[t.arrayIndex++];if(Ge(e)&&xn(e,n))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return Xe}))}function kn(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new Je(e,(e=>An(e,t)))}function $n(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new Je(e,(e=>An(e,t)),{includeRoot:!0})}function xn(e,t){var n;if(!t)return!0;const r=null===(n=e.$cstNode)||void 0===n?void 0:n.range;return!!r&&at(r,t)}function Sn(e){return new We((()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0})),(t=>{for(;t.keyIndex<t.keys.length;){const n=t.keys[t.keyIndex];if(!n.startsWith("$")){const r=e[n];if(Fe(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){const i=t.arrayIndex++,s=r[i];if(Fe(s))return{done:!1,value:{reference:s,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return Xe}))}function In(e){return Array.isArray(e)?[...e.map(In)]:e}function Nn(e){return e.charCodeAt(0)}function Cn(e,t){Array.isArray(e)?e.forEach((function(e){t.push(e)})):t.push(e)}function wn(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function Ln(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function On(e){return"Character"===e.type}const _n=[];for(let ld=Nn("0");ld<=Nn("9");ld++)_n.push(ld);const bn=[Nn("_")].concat(_n);for(let ld=Nn("a");ld<=Nn("z");ld++)bn.push(ld);for(let ld=Nn("A");ld<=Nn("Z");ld++)bn.push(ld);const Pn=[Nn(" "),Nn("\f"),Nn("\n"),Nn("\r"),Nn("\t"),Nn("\v"),Nn("\t"),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn(" "),Nn("\u2028"),Nn("\u2029"),Nn(" "),Nn(" "),Nn(" "),Nn("\ufeff")],Mn=/[0-9a-fA-F]/,Dn=/[0-9]/,Un=/[1-9]/;class Gn{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":wn(n,"global");break;case"i":wn(n,"ignoreCase");break;case"m":wn(n,"multiLine");break;case"u":wn(n,"unicode");break;case"y":wn(n,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Ln(t);const n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return function(){throw Error("Internal Error - Should never get here!")}()}quantifier(e=!1){let t;const n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;Ln(t)}if(!0!==e||void 0!==t)return Ln(t)?("?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),t):void 0}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}if(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ln(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[Nn("\n"),Nn("\r"),Nn("\u2028"),Nn("\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=_n;break;case"D":e=_n,t=!0;break;case"s":e=Pn;break;case"S":e=Pn,t=!0;break;case"w":e=bn;break;case"W":e=bn,t=!0}if(Ln(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=Nn("\f");break;case"n":e=Nn("\n");break;case"r":e=Nn("\r");break;case"t":e=Nn("\t");break;case"v":e=Nn("\v")}if(Ln(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:Nn("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:Nn(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:Nn(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const t=this.classAtom();if(t.type,On(t)&&this.isRangeDash()){this.consumeChar("-");const n=this.classAtom();if(n.type,On(n)){if(n.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:n.value})}else Cn(t.value,e),e.push(Nn("-")),Cn(n.value,e)}else Cn(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":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:Nn("\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;if(this.consumeChar("("),"?"===this.peekChar(0))this.consumeChar("?"),this.consumeChar(":"),e=!1;else this.groupIdx++;const t=this.disjunction();this.consumeChar(")");const n={type:"Group",capturing:e,value:t};return e&&(n.idx=this.groupIdx),n}positiveInteger(){let e=this.popChar();if(!1===Un.test(e))throw Error("Expecting a positive integer");for(;Dn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===Dn.test(e))throw Error("Expecting an integer");for(;Dn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case"\n":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:Nn(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 Dn.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":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 void 0!==this.quantifier(!0)}catch(t){return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let n=0;n<e;n++){const e=this.popChar();if(!1===Mn.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&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 Fn{visitChildren(e){for(const t in e){const n=e[t];e.hasOwnProperty(t)&&(void 0!==n.type?this.visit(n):Array.isArray(n)&&n.forEach((e=>{this.visit(e)}),this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const Bn=/\r?\n/gm,Kn=new Gn;const Vn=new class extends Fn{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||"\n"!==t||(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const e=zn(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=Boolean("\n".match(n))}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){if("Group"===e.type){if(e.quantifier)return}super.visitChildren(e)}};function jn(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),Vn.reset(e),Vn.visit(Kn.pattern(e)),Vn.multiline}catch(t){return!1}}const Hn="\f\n\r\t\v \u2028\u2029 \ufeff".split("");function Wn(e){const t="string"==typeof e?new RegExp(e):e;return Hn.some((e=>t.test(e)))}function zn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Yn(e,t){const n=function(e){"string"==typeof e&&(e=new RegExp(e));const t=e,n=e.source;let r=0;function i(){let e,s="";function a(e){s+=n.substr(r,e),r+=e}function o(e){s+="(?:"+n.substr(r,e)+"|$)",r+=e}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":o(3);break;case"x":o(4);break;case"u":t.unicode?"{"===n[r+2]?o(n.indexOf("}",r)-r+1):o(6):o(2);break;case"p":case"P":t.unicode?o(n.indexOf("}",r)-r+1):o(2);break;case"k":o(n.indexOf(">",r)-r+1);break;default:o(2)}break;case"[":e=/\[(?:\\.|.)*?\]/g,e.lastIndex=r,e=e.exec(n)||[],o(e[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":e=/\{\d+,?\d*\}/g,e.lastIndex=r,e=e.exec(n),e?a(e[0].length):o(1);break;case"(":if("?"===n[r+1])switch(n[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":e=r,r+=3,i(),s+=n.substr(e,r-e);break;case"<":switch(n[r+3]){case"=":case"!":e=r,r+=4,i(),s+=n.substr(e,r-e);break;default:a(n.indexOf(">",r)-r+1),s+=i()+"|$)"}}else a(1),s+=i()+"|$)";break;case")":return++r,s;default:o(1)}return s}return new RegExp(i(),e.flags)}(e),r=t.match(n);return!!r&&r[0].length>0}function qn(e,t){const n=new Set,r=function(e){return e.rules.find((e=>bt(e)&&e.entry))}(e);if(!r)return new Set(e.rules);const i=[r].concat(function(e){return e.rules.filter((e=>Ft(e)&&e.hidden))}(e));for(const a of i)Xn(a,n,t);const s=new Set;for(const a of e.rules)(n.has(a.name)||Ft(a)&&a.hidden)&&s.add(a);return s}function Xn(e,t,n){t.add(e.name),kn(e).forEach((e=>{if(cn(e)||n){const r=e.rule.ref;r&&!t.has(r.name)&&Xn(r,t,n)}}))}function Qn(e,t,n){if(!e||!t)return;const r=Jn(e,t,e.astNode,!0);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}function Jn(e,t,n,r){if(!r){const n=vn(e.grammarSource,Xt);if(n&&n.feature===t)return[e]}return Ve(e)&&e.astNode===n?e.content.flatMap((e=>Jn(e,t,n,!1))):[]}function Zn(e,t,n){if(!e)return;const r=function(e,t,n){if(e.astNode!==n)return[];if(sn(e.grammarSource)&&e.grammarSource.value===t)return[e];const r=rt(e).iterator();let i;const s=[];do{if(i=r.next(),!i.done){const e=i.value;e.astNode===n?sn(e.grammarSource)&&e.grammarSource.value===t&&s.push(e):r.prune()}}while(!i.done);return s}(e,t,null==e?void 0:e.astNode);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}function er(e){let t=e;return xt(t)&&(Wt(t.$container)?t=t.$container.$container:bt(t.$container)?t=t.$container:ut(t.$container)),tr(e,t,new Map)}function tr(e,t,n){var r,i;function s(t,r){let i;return vn(t,Xt)||(i=tr(r,r,n)),n.set(e,i),i}if(n.has(e))return n.get(e);n.set(e,void 0);for(const a of kn(t)){if(Xt(a)&&"name"===a.feature.toLowerCase())return n.set(e,a),a;if(cn(a)&&bt(a.rule.ref))return s(a,a.rule.ref);if(i=a,Tn.isInstance(i,Dt)&&(null===(r=a.typeRef)||void 0===r?void 0:r.ref))return s(a,a.typeRef.ref)}}function nr(e){return rr(e,new Set)}function rr(e,t){if(t.has(e))return!0;t.add(e);for(const n of kn(e))if(cn(n)){if(!n.rule.ref)return!1;if(bt(n.rule.ref)&&!rr(n.rule.ref,t))return!1}else{if(Xt(n))return!1;if(Wt(n))return!1}return Boolean(e.definition)}function ir(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){const t=e.returnType.ref;if(t){if(bt(t))return t.name;if(It(t)||Kt(t))return t.name}}}function sr(e){var t,n;if(bt(e))return nr(e)?e.name:null!==(t=ir(e))&&void 0!==t?t:e.name;if(It(e)||Kt(e)||(n=e,Tn.isInstance(n,Mt)))return e.name;if(Wt(e)){const t=function(e){var t;if(e.inferredType)return e.inferredType.name;if(null===(t=e.type)||void 0===t?void 0:t.ref)return sr(e.type.ref);return}(e);if(t)return t}else if(xt(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function ar(e){const t={s:!1,i:!1,u:!1},n=lr(e.definition,t),r=Object.entries(t).filter((([,e])=>e)).map((([e])=>e)).join("");return new RegExp(n,r)}const or=/[\s\S]/.source;function lr(e,t){if(a=e,Tn.isInstance(a,un))return ur((s=e).elements.map((e=>lr(e))).join("|"),{cardinality:s.cardinality,lookahead:s.lookahead});if(function(e){return Tn.isInstance(e,dn)}(e))return ur((i=e).elements.map((e=>lr(e))).join(""),{cardinality:i.cardinality,lookahead:i.lookahead});if(function(e){return Tn.isInstance(e,Qt)}(e))return function(e){if(e.right)return ur(`[${cr(e.left)}-${cr(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1});return ur(cr(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}(e);if(function(e){return Tn.isInstance(e,hn)}(e)){const t=e.rule.ref;if(!t)throw new Error("Missing rule reference.");return ur(lr(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}if(function(e){return Tn.isInstance(e,an)}(e))return ur(`(?!${lr((r=e).terminal)})${or}*?`,{cardinality:r.cardinality,lookahead:r.lookahead});if(function(e){return Tn.isInstance(e,mn)}(e))return ur(`${or}*?${lr((n=e).terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead});if(function(e){return Tn.isInstance(e,on)}(e)){const n=e.regex.lastIndexOf("/"),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),ur(r,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}if(function(e){return Tn.isInstance(e,gn)}(e))return ur(or,{cardinality:e.cardinality,lookahead:e.lookahead});throw new Error(`Invalid terminal element: ${null==e?void 0:e.$type}`);var n,r,i,s,a}function cr(e){return zn(e.value)}function ur(e,t){var n;return(!1!==t.wrap||t.lookahead)&&(e=`(${null!==(n=t.lookahead)&&void 0!==n?n:""}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function dr(e){console&&console.error&&console.error(`Error: ${e}`)}function hr(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function pr(e){const t=(new Date).getTime(),n=e();return{time:(new Date).getTime()-t,value:n}}function fr(e){function t(){}t.prototype=e;const n=new t;function r(){return typeof n.bar}return r(),r(),e}function mr(e){return Ne((t=e).LABEL)&&""!==t.LABEL?e.LABEL:e.name;var t}class gr{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),te(this.definition,(t=>{t.accept(e)}))}}class yr extends gr{constructor(e){super([]),this.idx=1,ge(this,be(e,(e=>void 0!==e)))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Tr extends gr{constructor(e){super(e.definition),this.orgText="",ge(this,be(e,(e=>void 0!==e)))}}class vr extends gr{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ge(this,be(e,(e=>void 0!==e)))}}let Rr=class extends gr{constructor(e){super(e.definition),this.idx=1,ge(this,be(e,(e=>void 0!==e)))}};class Er extends gr{constructor(e){super(e.definition),this.idx=1,ge(this,be(e,(e=>void 0!==e)))}}class Ar extends gr{constructor(e){super(e.definition),this.idx=1,ge(this,be(e,(e=>void 0!==e)))}}class kr extends gr{constructor(e){super(e.definition),this.idx=1,ge(this,be(e,(e=>void 0!==e)))}}class $r extends gr{constructor(e){super(e.definition),this.idx=1,ge(this,be(e,(e=>void 0!==e)))}}class xr extends gr{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,ge(this,be(e,(e=>void 0!==e)))}}class Sr{constructor(e){this.idx=1,ge(this,be(e,(e=>void 0!==e)))}accept(e){e.visit(this)}}function Ir(e){function t(e){return ae(e,Ir)}if(e instanceof yr){const t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return Ne(e.label)&&(t.label=e.label),t}if(e instanceof vr)return{type:"Alternative",definition:t(e.definition)};if(e instanceof Rr)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof Er)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof Ar)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:Ir(new Sr({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof $r)return{type:"RepetitionWithSeparator",idx:e.idx,separator:Ir(new Sr({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof kr)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof xr)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof Sr){const t={type:"Terminal",name:e.terminalType.name,label:mr(e.terminalType),idx:e.idx};Ne(e.label)&&(t.terminalLabel=e.label);const n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=_e(n)?n.source:n),t}if(e instanceof Tr)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}class Nr{visit(e){const t=e;switch(t.constructor){case yr:return this.visitNonTerminal(t);case vr:return this.visitAlternative(t);case Rr:return this.visitOption(t);case Er:return this.visitRepetitionMandatory(t);case Ar:return this.visitRepetitionMandatoryWithSeparator(t);case $r:return this.visitRepetitionWithSeparator(t);case kr:return this.visitRepetition(t);case xr:return this.visitAlternation(t);case Sr:return this.visitTerminal(t);case Tr: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 Cr(e,t=[]){return!!(e instanceof Rr||e instanceof kr||e instanceof $r)||(e instanceof xr?De(e.definition,(e=>Cr(e,t))):!(e instanceof yr&&we(t,e))&&(e instanceof gr&&(e instanceof yr&&t.push(e),ke(e.definition,(e=>Cr(e,t))))))}function wr(e){if(e instanceof yr)return"SUBRULE";if(e instanceof Rr)return"OPTION";if(e instanceof xr)return"OR";if(e instanceof Er)return"AT_LEAST_ONE";if(e instanceof Ar)return"AT_LEAST_ONE_SEP";if(e instanceof $r)return"MANY_SEP";if(e instanceof kr)return"MANY";if(e instanceof Sr)return"CONSUME";throw Error("non exhaustive match")}class Lr{walk(e,t=[]){te(e.definition,((n,r)=>{const i=ve(e.definition,r+1);if(n instanceof yr)this.walkProdRef(n,i,t);else if(n instanceof Sr)this.walkTerminal(n,i,t);else if(n instanceof vr)this.walkFlat(n,i,t);else if(n instanceof Rr)this.walkOption(n,i,t);else if(n instanceof Er)this.walkAtLeastOne(n,i,t);else if(n instanceof Ar)this.walkAtLeastOneSep(n,i,t);else if(n instanceof $r)this.walkManySep(n,i,t);else if(n instanceof kr)this.walkMany(n,i,t);else{if(!(n instanceof xr))throw Error("non exhaustive match");this.walkOr(n,i,t)}}))}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){const r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){const r=[new Rr({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){const r=Or(e,t,n);this.walk(e,r)}walkMany(e,t,n){const r=[new Rr({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){const r=Or(e,t,n);this.walk(e,r)}walkOr(e,t,n){const r=t.concat(n);te(e.definition,(e=>{const t=new vr({definition:[e]});this.walk(t,r)}))}}function Or(e,t,n){return[new Rr({definition:[new Sr({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function _r(e){if(e instanceof yr)return _r(e.referencedRule);if(e instanceof Sr)return[e.terminalType];if(function(e){return e instanceof vr||e instanceof Rr||e instanceof kr||e instanceof Er||e instanceof Ar||e instanceof $r||e instanceof Sr||e instanceof Tr}(e))return function(e){let t=[];const n=e.definition;let r,i=0,s=n.length>i,a=!0;for(;s&&a;)r=n[i],a=Cr(r),t=t.concat(_r(r)),i+=1,s=n.length>i;return Ue(t)}(e);if(function(e){return e instanceof xr}(e))return function(e){const t=ae(e.definition,(e=>_r(e)));return Ue(U(t))}(e);throw Error("non exhaustive match")}const br="_~IN~_";class Pr extends Lr{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const r=(i=e.referencedRule,s=e.idx,i.name+s+br+this.topProd.name);var i,s;const a=t.concat(n),o=_r(new vr({definition:a}));this.follows[r]=o}}let Mr={};const Dr=new Gn;function Ur(e){const t=e.toString();if(Mr.hasOwnProperty(t))return Mr[t];{const e=Dr.pattern(t);return Mr[t]=e,e}}const Gr="Complement Sets are not supported for first char optimization",Fr='Unable to use "first char" lexer optimizations:\n';function Br(e,t=!1){try{const t=Ur(e);return Kr(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===Gr)t&&hr(`${Fr}\tUnable to optimize: < ${e.toString()} >\n\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";t&&(n="\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),dr(`${Fr}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function Kr(e,t,n){switch(e.type){case"Disjunction":for(let i=0;i<e.value.length;i++)Kr(e.value[i],t,n);break;case"Alternative":const r=e.value;for(let e=0;e<r.length;e++){const i=r[e];switch(i.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const s=i;switch(s.type){case"Character":Vr(s.value,t,n);break;case"Set":if(!0===s.complement)throw Error(Gr);te(s.value,(e=>{if("number"==typeof e)Vr(e,t,n);else{const r=e;if(!0===n)for(let e=r.from;e<=r.to;e++)Vr(e,t,n);else{for(let e=r.from;e<=r.to&&e<di;e++)Vr(e,t,n);if(r.to>=di){const e=r.from>=di?r.from:di,n=r.to,i=pi(e),s=pi(n);for(let r=i;r<=s;r++)t[r]=r}}}}));break;case"Group":Kr(s.value,t,n);break;default:throw Error("Non Exhaustive Match")}const a=void 0!==s.quantifier&&0===s.quantifier.atLeast;if("Group"===s.type&&!1===Hr(s)||"Group"!==s.type&&!1===a)break}break;default:throw Error("non exhaustive match!")}return X(t)}function Vr(e,t,n){const r=pi(e);t[r]=r,!0===n&&function(e,t){const n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){const e=pi(r.charCodeAt(0));t[e]=e}else{const e=n.toLowerCase();if(e!==n){const n=pi(e.charCodeAt(0));t[n]=n}}}(e,t)}function jr(e,t){return oe(e.value,(e=>{if("number"==typeof e)return we(t,e);{const n=e;return void 0!==oe(t,(e=>n.from<=e&&e<=n.to))}}))}function Hr(e){const t=e.quantifier;return!(!t||0!==t.atLeast)||!!e.value&&(N(e.value)?ke(e.value,Hr):Hr(e.value))}class Wr extends Fn{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){we(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===jr(e,this.targetCharCodes)&&(this.found=!0):void 0!==jr(e,this.targetCharCodes)&&(this.found=!0)}}function zr(e,t){if(t instanceof RegExp){const n=Ur(t),r=new Wr(e);return r.visit(n),r.found}return void 0!==oe(t,(t=>we(e,t.charCodeAt(0))))}const Yr="PATTERN",qr="defaultMode",Xr="modes";let Qr="boolean"==typeof new RegExp("(?:)").sticky;function Jr(e,t){const n=(t=ce(t,{useSticky:Qr,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;let r;n("initCharCodeToOptimizedIndexMap",(()=>{!function(){if(he(hi)){hi=new Array(65536);for(let e=0;e<65536;e++)hi[e]=e>255?255+~~(e/255):e}}()})),n("Reject Lexer.NA",(()=>{r=Pe(e,(e=>e[Yr]===Ii.NA))}));let i,s,a,o,l,c,u,d,h,p,f,m=!1;n("Transform Patterns",(()=>{m=!1,i=ae(r,(e=>{const n=e[Yr];if(_e(n)){const e=n.source;return 1!==e.length||"^"===e||"$"===e||"."===e||n.ignoreCase?2!==e.length||"\\"!==e[0]||we(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?ri(n):ni(n):e[1]:e}if(G(n))return m=!0,{exec:n};if("object"==typeof n)return m=!0,n;if("string"==typeof n){if(1===n.length)return n;{const e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),r=new RegExp(e);return t.useSticky?ri(r):ni(r)}}throw Error("non exhaustive match")}))})),n("misc mapping",(()=>{s=ae(r,(e=>e.tokenTypeIdx)),a=ae(r,(e=>{const t=e.GROUP;if(t!==Ii.SKIPPED){if(Ne(t))return t;if(ne(t))return!1;throw Error("non exhaustive match")}})),o=ae(r,(e=>{const t=e.LONGER_ALT;if(t){return N(t)?ae(t,(e=>Le(r,e))):[Le(r,t)]}})),l=ae(r,(e=>e.PUSH_MODE)),c=ae(r,(e=>le(e,"POP_MODE")))})),n("Line Terminator Handling",(()=>{const e=ci(t.lineTerminatorCharacters);u=ae(r,(e=>!1)),"onlyOffset"!==t.positionTracking&&(u=ae(r,(t=>le(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===li(t,e)&&zr(e,t.PATTERN))))})),n("Misc Mapping #2",(()=>{d=ae(r,si),h=ae(i,ai),p=re(r,((e,t)=>{const n=t.GROUP;return Ne(n)&&n!==Ii.SKIPPED&&(e[n]=[]),e}),{}),f=ae(i,((e,t)=>({pattern:i[t],longerAlt:o[t],canLineTerminator:u[t],isCustom:d[t],short:h[t],group:a[t],push:l[t],pop:c[t],tokenTypeIdx:s[t],tokenType:r[t]})))}));let g=!0,y=[];return t.safeMode||n("First Char Optimization",(()=>{y=re(r,((e,n,r)=>{if("string"==typeof n.PATTERN){const t=pi(n.PATTERN.charCodeAt(0));ui(e,t,f[r])}else if(N(n.START_CHARS_HINT)){let t;te(n.START_CHARS_HINT,(n=>{const i=pi("string"==typeof n?n.charCodeAt(0):n);t!==i&&(t=i,ui(e,i,f[r]))}))}else if(_e(n.PATTERN))if(n.PATTERN.unicode)g=!1,t.ensureOptimizations&&dr(`${Fr}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const i=Br(n.PATTERN,t.ensureOptimizations);he(i)&&(g=!1),te(i,(t=>{ui(e,t,f[r])}))}else t.ensureOptimizations&&dr(`${Fr}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return e}),[])})),{emptyGroups:p,patternIdxToConfig:f,charCodeToPatternIdxToConfig:y,hasCustom:m,canBeOptimized:g}}function Zr(e,t){let n=[];const r=function(e){const t=ie(e,(e=>!le(e,Yr))),n=ae(t,(e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:$i.MISSING_PATTERN,tokenTypes:[e]}))),r=Te(e,t);return{errors:n,valid:r}}(e);n=n.concat(r.errors);const i=function(e){const t=ie(e,(e=>{const t=e[Yr];return!(_e(t)||G(t)||le(t,"exec")||Ne(t))})),n=ae(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:$i.INVALID_PATTERN,tokenTypes:[e]}))),r=Te(e,t);return{errors:n,valid:r}}(r.valid),s=i.valid;return n=n.concat(i.errors),n=n.concat(function(e){let t=[];const n=ie(e,(e=>_e(e[Yr])));return t=t.concat(function(e){class t extends Fn{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}const n=ie(e,(e=>{const n=e.PATTERN;try{const e=Ur(n),r=new t;return r.visit(e),r.found}catch(r){return ei.test(n.source)}})),r=ae(n,(e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:$i.EOI_ANCHOR_FOUND,tokenTypes:[e]})));return r}(n)),t=t.concat(function(e){class t extends Fn{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}const n=ie(e,(e=>{const n=e.PATTERN;try{const e=Ur(n),r=new t;return r.visit(e),r.found}catch(r){return ti.test(n.source)}})),r=ae(n,(e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:$i.SOI_ANCHOR_FOUND,tokenTypes:[e]})));return r}(n)),t=t.concat(function(e){const t=ie(e,(e=>{const t=e[Yr];return t instanceof RegExp&&(t.multiline||t.global)})),n=ae(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:$i.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]})));return n}(n)),t=t.concat(function(e){const t=[];let n=ae(e,(n=>re(e,((e,r)=>(n.PATTERN.source!==r.PATTERN.source||we(t,r)||r.PATTERN===Ii.NA||(t.push(r),e.push(r)),e)),[])));n=ye(n);const r=ie(n,(e=>e.length>1)),i=ae(r,(e=>{const t=ae(e,(e=>e.name));return{message:`The same RegExp pattern ->${$e(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:$i.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}}));return i}(n)),t=t.concat(function(e){const t=ie(e,(e=>e.PATTERN.test(""))),n=ae(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:$i.EMPTY_MATCH_PATTERN,tokenTypes:[e]})));return n}(n)),t}(s)),n=n.concat(function(e){const t=ie(e,(e=>{if(!le(e,"GROUP"))return!1;const t=e.GROUP;return t!==Ii.SKIPPED&&t!==Ii.NA&&!Ne(t)})),n=ae(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:$i.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]})));return n}(s)),n=n.concat(function(e,t){const n=ie(e,(e=>void 0!==e.PUSH_MODE&&!we(t,e.PUSH_MODE))),r=ae(n,(e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:$i.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]})));return r}(s,t)),n=n.concat(function(e){const t=[],n=re(e,((e,t,n)=>{const r=t.PATTERN;return r===Ii.NA||(Ne(r)?e.push({str:r,idx:n,tokenType:t}):_e(r)&&(i=r,void 0===oe([".","\\","[","]","|","^","$","(",")","?","*","+","{"],(e=>-1!==i.source.indexOf(e))))&&e.push({str:r.source,idx:n,tokenType:t})),e;var i}),[]);return te(e,((e,r)=>{te(n,(({str:n,idx:i,tokenType:s})=>{if(r<i&&function(e,t){if(_e(t)){const n=t.exec(e);return null!==n&&0===n.index}if(G(t))return t(e,0,[],{});if(le(t,"exec"))return t.exec(e,0,[],{});if("string"==typeof t)return t===e;throw Error("non exhaustive match")}(n,e.PATTERN)){const n=`Token: ->${s.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:$i.UNREACHABLE_PATTERN,tokenTypes:[e,s]})}}))})),t}(s)),n}const ei=/[^\\][$]/;const ti=/[^\\[][\^]|^\^/;function ni(e){const t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function ri(e){const t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function ii(e,t,n){const r=[];let i=!1;const s=Pe(ye(U(X(e.modes))),(e=>e[Yr]===Ii.NA)),a=ci(n);return t&&te(s,(e=>{const t=li(e,a);if(!1!==t){const n=function(e,t){if(t.issue===$i.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===$i.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.\n\tThe problem is in the <${e.name}> Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}(e,t),i={message:n,type:t.issue,tokenType:e};r.push(i)}else le(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(i=!0):zr(a,e.PATTERN)&&(i=!0)})),t&&!i&&r.push({message:"Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.",type:$i.NO_LINE_BREAKS_FLAGS}),r}function si(e){const t=e.PATTERN;if(_e(t))return!1;if(G(t))return!0;if(le(t,"exec"))return!0;if(Ne(t))return!1;throw Error("non exhaustive match")}function ai(e){return!(!Ne(e)||1!==e.length)&&e.charCodeAt(0)}const oi={test:function(e){const t=e.length;for(let n=this.lastIndex;n<t;n++){const t=e.charCodeAt(n);if(10===t)return this.lastIndex=n+1,!0;if(13===t)return 10===e.charCodeAt(n+1)?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function li(e,t){if(le(e,"LINE_BREAKS"))return!1;if(_e(e.PATTERN)){try{zr(t,e.PATTERN)}catch(n){return{issue:$i.IDENTIFY_TERMINATOR,errMsg:n.message}}return!1}if(Ne(e.PATTERN))return!1;if(si(e))return{issue:$i.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function ci(e){return ae(e,(e=>Ne(e)?e.charCodeAt(0):e))}function ui(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}const di=256;let hi=[];function pi(e){return e<di?e:hi[e]}function fi(e,t){const n=e.tokenTypeIdx;return n===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[n]}function mi(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let gi=1;const yi={};function Ti(e){const t=function(e){let t=pe(e),n=e,r=!0;for(;r;){n=ye(U(ae(n,(e=>e.CATEGORIES))));const e=Te(n,t);t=t.concat(e),he(e)?r=!1:n=e}return t}(e);!function(e){te(e,(e=>{Ri(e)||(yi[gi]=e,e.tokenTypeIdx=gi++),Ei(e)&&!N(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ei(e)||(e.CATEGORIES=[]),le(e,"categoryMatches")||(e.categoryMatches=[]),function(e){return le(e,"categoryMatchesMap")}(e)||(e.categoryMatchesMap={})}))}(t),function(e){te(e,(e=>{vi([],e)}))}(t),function(e){te(e,(e=>{e.categoryMatches=[],te(e.categoryMatchesMap,((t,n)=>{e.categoryMatches.push(yi[n].tokenTypeIdx)}))}))}(t),te(t,(e=>{e.isParent=e.categoryMatches.length>0}))}function vi(e,t){te(e,(e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0})),te(t.CATEGORIES,(n=>{const r=e.concat(t);we(r,n)||vi(r,n)}))}function Ri(e){return le(e,"tokenTypeIdx")}function Ei(e){return le(e,"CATEGORIES")}function Ai(e){return le(e,"tokenTypeIdx")}const ki={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,n,r,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`};var $i,xi;(xi=$i||($i={}))[xi.MISSING_PATTERN=0]="MISSING_PATTERN",xi[xi.INVALID_PATTERN=1]="INVALID_PATTERN",xi[xi.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",xi[xi.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",xi[xi.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",xi[xi.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",xi[xi.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",xi[xi.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",xi[xi.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",xi[xi.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",xi[xi.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",xi[xi.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",xi[xi.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",xi[xi.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",xi[xi.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",xi[xi.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",xi[xi.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",xi[xi.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";const Si={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:ki,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Si);class Ii{constructor(e,t=Si){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--\x3e <${e}>`);const{time:r,value:i}=pr(t),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}return t()},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=ge({},Si,t);const n=this.config.traceInitPerf;!0===n?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof n&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",(()=>{let n,r=!0;this.TRACE_INIT("Lexer Config handling",(()=>{if(this.config.lineTerminatorsPattern===Si.lineTerminatorsPattern)this.config.lineTerminatorsPattern=oi;else if(this.config.lineTerminatorCharacters===Si.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n\tFor 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),N(e)?n={modes:{defaultMode:pe(e)},defaultMode:qr}:(r=!1,n=pe(e))})),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e){const t=[];return le(e,qr)||t.push({message:"A MultiMode Lexer cannot be initialized without a <"+qr+"> property in its definition\n",type:$i.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),le(e,Xr)||t.push({message:"A MultiMode Lexer cannot be initialized without a <modes> property in its definition\n",type:$i.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),le(e,Xr)&&le(e,qr)&&!le(e.modes,e.defaultMode)&&t.push({message:`A MultiMode Lexer cannot be initialized with a ${qr}: <${e.defaultMode}>which does not exist\n`,type:$i.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),le(e,Xr)&&te(e.modes,((e,n)=>{te(e,((r,i)=>{if(ne(r))t.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${n}> at index: <${i}>\n`,type:$i.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(le(r,"LONGER_ALT")){const i=N(r.LONGER_ALT)?r.LONGER_ALT:[r.LONGER_ALT];te(i,(i=>{ne(i)||we(e,i)||t.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${r.name}> outside of mode <${n}>\n`,type:$i.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})}))}}))})),t}(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),this.TRACE_INIT("performWarningRuntimeChecks",(()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(ii(n,this.trackStartLines,this.config.lineTerminatorCharacters))}))),n.modes=n.modes?n.modes:{},te(n.modes,((e,t)=>{n.modes[t]=Pe(e,(e=>ne(e)))}));const i=v(n.modes);if(te(n.modes,((e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,(()=>{if(this.modes.push(n),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Zr(e,i))})),he(this.lexerDefinitionErrors)){let r;Ti(e),this.TRACE_INIT("analyzeTokenTypes",(()=>{r=Jr(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})})),this.patternIdxToConfig[n]=r.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=r.charCodeToPatternIdxToConfig,this.emptyGroups=ge({},this.emptyGroups,r.emptyGroups),this.hasCustom=r.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=r.canBeOptimized}}))})),this.defaultMode=n.defaultMode,!he(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const e=ae(this.lexerDefinitionErrors,(e=>e.message)).join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+e)}te(this.lexerDefinitionWarning,(e=>{hr(e.message)})),this.TRACE_INIT("Choosing sub-methods implementations",(()=>{if(Qr?(this.chopInput=F,this.match=this.matchWithTest):(this.updateLastIndex=se,this.match=this.matchWithExec),r&&(this.handleModes=se),!1===this.trackStartLines&&(this.computeNewColumn=F),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=se),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)})),this.TRACE_INIT("Failed Optimization Warnings",(()=>{const e=re(this.canModeBeOptimized,((e,t,n)=>(!1===t&&e.push(n),e)),[]);if(t.ensureOptimizations&&!he(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)})),this.TRACE_INIT("clearRegExpParserCache",(()=>{Mr={}})),this.TRACE_INIT("toFastProperties",(()=>{fr(this)}))}))}tokenize(e,t=this.defaultMode){if(!he(this.lexerDefinitionErrors)){const e=ae(this.lexerDefinitionErrors,(e=>e.message)).join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,r,i,s,a,o,l,c,u,d,h,p,f,m,g;const y=e,T=y.length;let R=0,E=0;const A=this.hasCustom?0:Math.floor(e.length/10),k=new Array(A),$=[];let x=this.trackStartLines?1:void 0,S=this.trackStartLines?1:void 0;const I=function(e){const t={},n=v(e);return te(n,(n=>{const r=e[n];if(!N(r))throw Error("non exhaustive match");t[n]=[]})),t}(this.emptyGroups),C=this.trackStartLines,w=this.config.lineTerminatorsPattern;let L=0,O=[],_=[];const b=[],P=[];let M;function D(){return O}function U(e){const t=pi(e),n=_[t];return void 0===n?P:n}Object.freeze(P);const G=e=>{if(1===b.length&&void 0===e.tokenType.PUSH_MODE){const t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);$.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{b.pop();const e=ue(b);O=this.patternIdxToConfig[e],_=this.charCodeToPatternIdxToConfig[e],L=O.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;M=_&&t?U:D}};function F(e){b.push(e),_=this.charCodeToPatternIdxToConfig[e],O=this.patternIdxToConfig[e],L=O.length,L=O.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;M=_&&t?U:D}let B;F.call(this,t);const K=this.config.recoveryEnabled;for(;R<T;){o=null;const t=y.charCodeAt(R),v=M(t),A=v.length;for(n=0;n<A;n++){B=v[n];const r=B.pattern;l=null;const u=B.short;if(!1!==u?t===u&&(o=r):!0===B.isCustom?(g=r.exec(y,R,k,I),null!==g?(o=g[0],void 0!==g.payload&&(l=g.payload)):o=null):(this.updateLastIndex(r,R),o=this.match(r,e,R)),null!==o){if(a=B.longerAlt,void 0!==a){const t=a.length;for(i=0;i<t;i++){const t=O[a[i]],n=t.pattern;if(c=null,!0===t.isCustom?(g=n.exec(y,R,k,I),null!==g?(s=g[0],void 0!==g.payload&&(c=g.payload)):s=null):(this.updateLastIndex(n,R),s=this.match(n,e,R)),s&&s.length>o.length){o=s,l=c,B=t;break}}}break}}if(null!==o){if(u=o.length,d=B.group,void 0!==d&&(h=B.tokenTypeIdx,p=this.createTokenInstance(o,R,h,B.tokenType,x,S,u),this.handlePayload(p,l),!1===d?E=this.addToken(k,E,p):I[d].push(p)),e=this.chopInput(e,u),R+=u,S=this.computeNewColumn(S,u),!0===C&&!0===B.canLineTerminator){let e,t,n=0;w.lastIndex=0;do{e=w.test(o),!0===e&&(t=w.lastIndex-1,n++)}while(!0===e);0!==n&&(x+=n,S=u-t,this.updateTokenEndLineColumnLocation(p,d,t,n,x,S,u))}this.handleModes(B,G,F,p)}else{const t=R,n=x,i=S;let s=!1===K;for(;!1===s&&R<T;)for(e=this.chopInput(e,1),R++,r=0;r<L;r++){const t=O[r],n=t.pattern,i=t.short;if(!1!==i?y.charCodeAt(R)===i&&(s=!0):!0===t.isCustom?s=null!==n.exec(y,R,k,I):(this.updateLastIndex(n,R),s=null!==n.exec(e)),!0===s)break}if(f=R-t,S=this.computeNewColumn(S,f),m=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(y,t,f,n,i),$.push({offset:t,line:n,column:i,length:f,message:m}),!1===K)break}}return this.hasCustom||(k.length=E),{tokens:k,groups:I,errors:$}}handleModes(e,t,n,r){if(!0===e.pop){const i=e.push;t(r),void 0!==i&&n.call(this,i)}else void 0!==e.push&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,r,i,s,a){let o,l;void 0!==t&&(o=n===a-1,l=o?-1:0,1===r&&!0===o||(e.endLine=i+l,e.endColumn=s-1-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,r){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:r}}createStartOnlyToken(e,t,n,r,i,s){return{image:e,startOffset:t,startLine:i,startColumn:s,tokenTypeIdx:n,tokenType:r}}createFullToken(e,t,n,r,i,s,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:i,endLine:i,startColumn:s,endColumn:s+a-1,tokenTypeIdx:n,tokenType:r}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}matchWithTest(e,t,n){return!0===e.test(t)?t.substring(n,e.lastIndex):null}matchWithExec(e,t){const n=e.exec(t);return null!==n?n[0]:null}}function Ni(e){return Ci(e)?e.LABEL:e.name}function Ci(e){return Ne(e.LABEL)&&""!==e.LABEL}Ii.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.",Ii.NA=/NOT_APPLICABLE/;const wi="parent",Li="categories",Oi="label",_i="group",bi="push_mode",Pi="pop_mode",Mi="longer_alt",Di="line_breaks",Ui="start_chars_hint";function Gi(e){return function(e){const t=e.pattern,n={};n.name=e.name,ne(t)||(n.PATTERN=t);if(le(e,wi))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";le(e,Li)&&(n.CATEGORIES=e[Li]);Ti([n]),le(e,Oi)&&(n.LABEL=e[Oi]);le(e,_i)&&(n.GROUP=e[_i]);le(e,Pi)&&(n.POP_MODE=e[Pi]);le(e,bi)&&(n.PUSH_MODE=e[bi]);le(e,Mi)&&(n.LONGER_ALT=e[Mi]);le(e,Di)&&(n.LINE_BREAKS=e[Di]);le(e,Ui)&&(n.START_CHARS_HINT=e[Ui]);return n}(e)}const Fi=Gi({name:"EOF",pattern:Ii.NA});function Bi(e,t,n,r,i,s,a,o){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function Ki(e,t){return fi(e,t)}Ti([Fi]);const Vi={buildMismatchTokenMessage:({expected:e,actual:t,previous:n,ruleName:r})=>`Expecting ${Ci(e)?`--\x3e ${Ni(e)} <--`:`token of type --\x3e ${e.name} <--`} but found --\x3e '${t.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:i}){const s="Expecting: ",a="\nbut found: '"+$e(t).image+"'";if(r)return s+r+a;{const t=re(e,((e,t)=>e.concat(t)),[]),n=ae(t,(e=>`[${ae(e,(e=>Ni(e))).join(", ")}]`));return s+`one of these possible Token sequences:\n${ae(n,((e,t)=>` ${t+1}. ${e}`)).join("\n")}`+a}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){const i="Expecting: ",s="\nbut found: '"+$e(t).image+"'";if(n)return i+n+s;return i+`expecting at least one iteration which starts with one of these possible Token sequences::\n <${ae(e,(e=>`[${ae(e,(e=>Ni(e))).join(",")}]`)).join(" ,")}>`+s}};Object.freeze(Vi);const ji={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},Hi={buildDuplicateFoundError(e,t){const n=e.name,r=$e(t),i=r.idx,s=wr(r),a=(o=r)instanceof Sr?o.terminalType.name:o instanceof yr?o.nonTerminalName:"";var o;let l=`->${s}${i>0?i:""}<- ${a?`with argument: ->${a}<-`:""}\n appears more than once (${t.length} times) in the top level rule: ->${n}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;return l=l.replace(/[ \t]+/g," "),l=l.replace(/\s\s+/g,"\n"),l},buildNamespaceConflictError:e=>`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){const t=ae(e.prefixPath,(e=>Ni(e))).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\nin <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){const t=ae(e.prefixPath,(e=>Ni(e))).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r},buildEmptyRepetitionError(e){let t=wr(e.repetition);0!==e.repetition.idx&&(t+=e.repetition.idx);return`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){const t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${`${t} --\x3e ${ae(e.leftRecursionPath,(e=>e.name)).concat([t]).join(" --\x3e ")}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;t=e.topLevelRule instanceof Tr?e.topLevelRule.name:e.topLevelRule;return`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class Wi extends Nr{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){te(X(this.nameToTopRule),(e=>{this.currTopLevel=e,e.accept(this)}))}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:ga.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class zi extends Lr{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=pe(this.path.ruleStack).reverse(),this.occurrenceStack=pe(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){he(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Yi extends zi{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const e=t.concat(n),r=new vr({definition:e});this.possibleTokTypes=_r(r),this.found=!0}}}class qi extends Lr{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 Xi extends qi{walkMany(e,t,n){if(e.idx===this.occurrence){const e=$e(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof Sr&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}}class Qi extends qi{walkManySep(e,t,n){if(e.idx===this.occurrence){const e=$e(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof Sr&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}}class Ji extends qi{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){const e=$e(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof Sr&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}}class Zi extends qi{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){const e=$e(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof Sr&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}}function es(e,t,n=[]){n=pe(n);let r=[],i=0;function s(s){const a=es(s.concat(ve(e,i+1)),t,n);return r.concat(a)}for(;n.length<t&&i<e.length;){const t=e[i];if(t instanceof vr)return s(t.definition);if(t instanceof yr)return s(t.definition);if(t instanceof Rr)r=s(t.definition);else{if(t instanceof Er){return s(t.definition.concat([new kr({definition:t.definition})]))}if(t instanceof Ar){return s([new vr({definition:t.definition}),new kr({definition:[new Sr({terminalType:t.separator})].concat(t.definition)})])}if(t instanceof $r){const e=t.definition.concat([new kr({definition:[new Sr({terminalType:t.separator})].concat(t.definition)})]);r=s(e)}else if(t instanceof kr){const e=t.definition.concat([new kr({definition:t.definition})]);r=s(e)}else{if(t instanceof xr)return te(t.definition,(e=>{!1===he(e.definition)&&(r=s(e.definition))})),r;if(!(t instanceof Sr))throw Error("non exhaustive match");n.push(t.terminalType)}}i++}return r.push({partialPath:n,suffixDef:ve(e,i)}),r}function ts(e,t,n,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=t.length,c=l-r-1,u=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!he(d);){const e=d.pop();if(e===a){o&&ue(d).idx<=c&&d.pop();continue}const r=e.def,h=e.idx,p=e.ruleStack,f=e.occurrenceStack;if(he(r))continue;const m=r[0];if(m===i){const e={idx:h,def:ve(r),ruleStack:Re(p),occurrenceStack:Re(f)};d.push(e)}else if(m instanceof Sr)if(h<l-1){const e=h+1;if(n(t[e],m.terminalType)){const t={idx:e,def:ve(r),ruleStack:p,occurrenceStack:f};d.push(t)}}else{if(h!==l-1)throw Error("non exhaustive match");u.push({nextTokenType:m.terminalType,nextTokenOccurrence:m.idx,ruleStack:p,occurrenceStack:f}),o=!0}else if(m instanceof yr){const e=pe(p);e.push(m.nonTerminalName);const t=pe(f);t.push(m.idx);const n={idx:h,def:m.definition.concat(s,ve(r)),ruleStack:e,occurrenceStack:t};d.push(n)}else if(m instanceof Rr){const e={idx:h,def:ve(r),ruleStack:p,occurrenceStack:f};d.push(e),d.push(a);const t={idx:h,def:m.definition.concat(ve(r)),ruleStack:p,occurrenceStack:f};d.push(t)}else if(m instanceof Er){const e=new kr({definition:m.definition,idx:m.idx}),t={idx:h,def:m.definition.concat([e],ve(r)),ruleStack:p,occurrenceStack:f};d.push(t)}else if(m instanceof Ar){const e=new Sr({terminalType:m.separator}),t=new kr({definition:[e].concat(m.definition),idx:m.idx}),n={idx:h,def:m.definition.concat([t],ve(r)),ruleStack:p,occurrenceStack:f};d.push(n)}else if(m instanceof $r){const e={idx:h,def:ve(r),ruleStack:p,occurrenceStack:f};d.push(e),d.push(a);const t=new Sr({terminalType:m.separator}),n=new kr({definition:[t].concat(m.definition),idx:m.idx}),i={idx:h,def:m.definition.concat([n],ve(r)),ruleStack:p,occurrenceStack:f};d.push(i)}else if(m instanceof kr){const e={idx:h,def:ve(r),ruleStack:p,occurrenceStack:f};d.push(e),d.push(a);const t=new kr({definition:m.definition,idx:m.idx}),n={idx:h,def:m.definition.concat([t],ve(r)),ruleStack:p,occurrenceStack:f};d.push(n)}else if(m instanceof xr)for(let t=m.definition.length-1;t>=0;t--){const e={idx:h,def:m.definition[t].definition.concat(ve(r)),ruleStack:p,occurrenceStack:f};d.push(e),d.push(a)}else if(m instanceof vr)d.push({idx:h,def:m.definition.concat(ve(r)),ruleStack:p,occurrenceStack:f});else{if(!(m instanceof Tr))throw Error("non exhaustive match");d.push(ns(m,h,p,f))}}return u}function ns(e,t,n,r){const i=pe(n);i.push(e.name);const s=pe(r);return s.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:s}}var rs,is;function ss(e){if(e instanceof Rr||"Option"===e)return rs.OPTION;if(e instanceof kr||"Repetition"===e)return rs.REPETITION;if(e instanceof Er||"RepetitionMandatory"===e)return rs.REPETITION_MANDATORY;if(e instanceof Ar||"RepetitionMandatoryWithSeparator"===e)return rs.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof $r||"RepetitionWithSeparator"===e)return rs.REPETITION_WITH_SEPARATOR;if(e instanceof xr||"Alternation"===e)return rs.ALTERNATION;throw Error("non exhaustive match")}function as(e){const{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,s=ss(r);return s===rs.ALTERNATION?ms(t,n,i):gs(t,n,s,i)}function os(e,t,n,r){const i=e.length,s=ke(e,(e=>ke(e,(e=>1===e.length))));if(t)return function(t){const r=ae(t,(e=>e.GATE));for(let s=0;s<i;s++){const t=e[s],i=t.length,a=r[s];if(void 0===a||!1!==a.call(this))e:for(let e=0;e<i;e++){const r=t[e],i=r.length;for(let e=0;e<i;e++){const t=this.LA(e+1);if(!1===n(t,r[e]))continue e}return s}}};if(s&&!r){const t=ae(e,(e=>U(e))),n=re(t,((e,t,n)=>(te(t,(t=>{le(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),te(t.categoryMatches,(t=>{le(e,t)||(e[t]=n)}))})),e)),{});return function(){const e=this.LA(1);return n[e.tokenTypeIdx]}}return function(){for(let t=0;t<i;t++){const r=e[t],i=r.length;e:for(let e=0;e<i;e++){const i=r[e],s=i.length;for(let e=0;e<s;e++){const t=this.LA(e+1);if(!1===n(t,i[e]))continue e}return t}}}}function ls(e,t,n){const r=ke(e,(e=>1===e.length)),i=e.length;if(r&&!n){const t=U(e);if(1===t.length&&he(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=re(t,((e,t,n)=>(e[t.tokenTypeIdx]=!0,te(t.categoryMatches,(t=>{e[t]=!0})),e)),[]);return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){e:for(let n=0;n<i;n++){const r=e[n],i=r.length;for(let e=0;e<i;e++){const n=this.LA(e+1);if(!1===t(n,r[e]))continue e}return!0}return!1}}(is=rs||(rs={}))[is.OPTION=0]="OPTION",is[is.REPETITION=1]="REPETITION",is[is.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",is[is.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",is[is.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",is[is.ALTERNATION=5]="ALTERNATION";class cs extends Lr{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,r){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=n.concat(r),!0)}walkOption(e,t,n){this.checkIsTarget(e,rs.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,rs.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,rs.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,rs.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,rs.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}}class us extends Nr{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx!==this.targetOccurrence||this.targetProdType!==t||void 0!==this.targetRef&&e!==this.targetRef||(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,rs.OPTION)}visitRepetition(e){this.checkIsTarget(e,rs.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,rs.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,rs.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,rs.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,rs.ALTERNATION)}}function ds(e){const t=new Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function hs(e){let t=[""];for(let n=0;n<e.length;n++){const r=e[n],i=[];for(let e=0;e<t.length;e++){const n=t[e];i.push(n+"_"+r.tokenTypeIdx);for(let e=0;e<r.categoryMatches.length;e++){const t="_"+r.categoryMatches[e];i.push(n+t)}}t=i}return t}function ps(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;const i=e[r];for(let e=0;e<t.length;e++){if(!0===i[t[e]])return!1}}return!0}function fs(e,t){const n=ae(e,(e=>es([e],1))),r=ds(n.length),i=ae(n,(e=>{const t={};return te(e,(e=>{const n=hs(e.partialPath);te(n,(e=>{t[e]=!0}))})),t}));let s=n;for(let a=1;a<=t;a++){const e=s;s=ds(e.length);for(let n=0;n<e.length;n++){const o=e[n];for(let e=0;e<o.length;e++){const l=o[e].partialPath,c=o[e].suffixDef,u=hs(l);if(ps(i,u,n)||he(c)||l.length===t){const e=r[n];if(!1===ys(e,l)){e.push(l);for(let e=0;e<u.length;e++){const t=u[e];i[n][t]=!0}}}else{const e=es(c,a+1,l);s[n]=s[n].concat(e),te(e,(e=>{const t=hs(e.partialPath);te(t,(e=>{i[n][e]=!0}))}))}}}}return r}function ms(e,t,n,r){const i=new us(e,rs.ALTERNATION,r);return t.accept(i),fs(i.result,n)}function gs(e,t,n,r){const i=new us(e,n);t.accept(i);const s=i.result,a=new cs(t,e,n).startWalking();return fs([new vr({definition:s}),new vr({definition:a})],r)}function ys(e,t){e:for(let n=0;n<e.length;n++){const r=e[n];if(r.length===t.length){for(let e=0;e<r.length;e++){const n=t[e],i=r[e];if(!1===(n===i||void 0!==i.categoryMatchesMap[n.tokenTypeIdx]))continue e}return!0}}return!1}function Ts(e){return ke(e,(e=>ke(e,(e=>ke(e,(e=>he(e.categoryMatches)))))))}function vs(e,t,n,r){const i=xe(e,(e=>function(e,t){const n=new As;e.accept(n);const r=n.allProductions,i=be(Ie(r,Rs),(e=>e.length>1)),s=ae(X(i),(n=>{const r=$e(n),i=t.buildDuplicateFoundError(e,n),s=wr(r),a={message:i,type:ga.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:s,occurrence:r.idx},o=Es(r);return o&&(a.parameter=o),a}));return s}(e,n))),s=function(e,t,n){const r=[],i=ae(t,(e=>e.name));return te(e,(e=>{const t=e.name;if(we(i,t)){const i=n.buildNamespaceConflictError(e);r.push({message:i,type:ga.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}})),r}(e,t,n),a=xe(e,(e=>function(e,t){const n=new xs;e.accept(n);const r=xe(n.alternations,(n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:ga.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[]));return r}(e,n))),o=xe(e,(t=>function(e,t,n,r){const i=[],s=re(t,((t,n)=>n.name===e.name?t+1:t),0);if(s>1){const t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:t,type:ga.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}(t,e,r,n)));return i.concat(s,a,o)}function Rs(e){return`${wr(e)}_#_${e.idx}_#_${Es(e)}`}function Es(e){return e instanceof Sr?e.terminalType.name:e instanceof yr?e.nonTerminalName:""}class As extends Nr{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 ks(e,t,n,r=[]){const i=[],s=$s(t.definition);if(he(s))return[];{const t=e.name;we(s,e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:ga.LEFT_RECURSION,ruleName:t});const a=xe(Te(s,r.concat([e])),(t=>{const i=pe(r);return i.push(t),ks(e,t,n,i)}));return i.concat(a)}}function $s(e){let t=[];if(he(e))return t;const n=$e(e);if(n instanceof yr)t.push(n.referencedRule);else if(n instanceof vr||n instanceof Rr||n instanceof Er||n instanceof Ar||n instanceof $r||n instanceof kr)t=t.concat($s(n.definition));else if(n instanceof xr)t=U(ae(n.definition,(e=>$s(e.definition))));else if(!(n instanceof Sr))throw Error("non exhaustive match");const r=Cr(n),i=e.length>1;if(r&&i){const n=ve(e);return t.concat($s(n))}return t}class xs extends Nr{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Ss(e,t,n){const r=new xs;e.accept(r);let i=r.alternations;i=Pe(i,(e=>!0===e.ignoreAmbiguities));const s=xe(i,(r=>{const i=r.idx,s=r.maxLookahead||t,a=ms(i,e,s,r),o=function(e,t,n,r){const i=[],s=re(e,((n,r,s)=>(!0===t.definition[s].ignoreAmbiguities||te(r,(r=>{const a=[s];te(e,((e,n)=>{s!==n&&ys(e,r)&&!0!==t.definition[n].ignoreAmbiguities&&a.push(n)})),a.length>1&&!ys(i,r)&&(i.push(r),n.push({alts:a,path:r}))})),n)),[]),a=ae(s,(e=>{const i=ae(e.alts,(e=>e+1));return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:ga.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}}));return a}(a,r,e,n),l=function(e,t,n,r){const i=re(e,((e,t,n)=>{const r=ae(t,(e=>({idx:n,path:e})));return e.concat(r)}),[]),s=ye(xe(i,(e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];const s=e.idx,a=e.path,o=ie(i,(e=>{return!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<s&&(n=e.path,r=a,n.length<r.length&&ke(n,((e,t)=>{const n=r[t];return e===n||n.categoryMatchesMap[e.tokenTypeIdx]})));var n,r}));return ae(o,(e=>{const i=[e.idx+1,s+1],a=0===t.idx?"":t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:ga.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:a,alternatives:i}}))})));return s}(a,r,e,n);return o.concat(l)}));return s}class Is extends Nr{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 Ns(e){const t=ce(e,{errMsgProvider:ji}),n={};return te(e.rules,(e=>{n[e.name]=e})),function(e,t){const n=new Wi(e,t);return n.resolveRefs(),n.errors}(n,t.errMsgProvider)}const Cs="MismatchedTokenException",ws="NoViableAltException",Ls="EarlyExitException",Os="NotAllInputParsedException",_s=[Cs,ws,Ls,Os];function bs(e){return we(_s,e.name)}Object.freeze(_s);class Ps 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 Ms extends Ps{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Cs}}class Ds extends Ps{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=ws}}class Us extends Ps{constructor(e,t){super(e,t),this.name=Os}}class Gs extends Ps{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Ls}}const Fs={},Bs="InRuleRecoveryException";class Ks extends Error{constructor(e){super(e),this.name=Bs}}function Vs(e,t,n,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(void 0===l){const e=this.getCurrRuleFullName();l=new s(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;1===this.RULE_STACK.length&&d&&void 0===c&&(c=Fi,u=1),void 0!==c&&void 0!==u&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(e,t,n,c)}const js=1024,Hs=1280,Ws=1536;function zs(e,t,n){return n|t|e}class Ys{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:fa.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(he(t)){const n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return xe(e,(e=>ks(e,e,Hi)))}validateEmptyOrAlternatives(e){return xe(e,(e=>function(e,t){const n=new xs;return e.accept(n),xe(n.alternations,(n=>xe(Re(n.definition),((r,i)=>{const s=ts([r],[],fi,1);return he(s)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:i}),type:ga.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:i+1}]:[]}))))}(e,Hi)))}validateAmbiguousAlternationAlternatives(e,t){return xe(e,(e=>Ss(e,t,Hi)))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,n){const r=[];return te(e,(e=>{const i=new Is;e.accept(i);const s=i.allProductions;te(s,(i=>{const s=ss(i),a=i.maxLookahead||t,o=gs(i.idx,e,s,a)[0];if(he(U(o))){const t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});r.push({message:t,type:ga.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}}))})),r}(e,t,Hi)}buildLookaheadForAlternation(e){return function(e,t,n,r,i,s){const a=ms(e,t,n);return s(a,r,Ts(a)?mi:fi,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,os)}buildLookaheadForOptional(e){return function(e,t,n,r,i,s){const a=gs(e,t,i,n),o=Ts(a)?mi:fi;return s(a[0],o,r)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,ss(e.prodType),ls)}}const qs=new class extends Nr{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function Xs(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset)}function Qs(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function Js(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function Zs(e,t){const n=v(e),r=n.length;for(let i=0;i<r;i++){const r=e[n[i]],s=r.length;for(let e=0;e<s;e++){const n=r[e];void 0===n.tokenTypeIdx&&this[n.name](n.children,t)}}}function ea(e,t){const n=function(){};Js(n,e+"BaseSemantics");const r={visit:function(e,t){if(N(e)&&(e=e[0]),!ne(e))return this[e.name](e.children,t)},validateVisitor:function(){const e=function(e,t){const n=function(e,t){const n=ie(t,(t=>!1===G(e[t]))),r=ae(n,(t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:ta.MISSING_METHOD,methodName:t})));return ye(r)}(e,t);return n}(this,t);if(!he(e)){const t=ae(e,(e=>e.msg));throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join("\n\n").replace(/\n/g,"\n\t")}`)}}};return(n.prototype=r).constructor=n,n._RULE_NAMES=t,n}var ta,na;(na=ta||(ta={}))[na.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",na[na.MISSING_METHOD=1]="MISSING_METHOD";const ra={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ra);const ia=!0,sa=Math.pow(2,8)-1,aa=Gi({name:"RECORDING_PHASE_TOKEN",pattern:Ii.NA});Ti([aa]);const oa=Bi(aa,"This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(oa);const la={name:"This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};function ca(e,t,n,r=!1){ha(n);const i=ue(this.recordingProdStack),s=G(t)?t:t.DEF,a=new e({definition:[],idx:n});return r&&(a.separator=t.SEP),le(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),ra}function ua(e,t){ha(t);const n=ue(this.recordingProdStack),r=!1===N(e),i=!1===r?e:e.DEF,s=new xr({definition:[],idx:t,ignoreAmbiguities:r&&!0===e.IGNORE_AMBIGUITIES});le(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD);const a=De(i,(e=>G(e.GATE)));return s.hasPredicates=a,n.definition.push(s),te(i,(e=>{const t=new vr({definition:[]});s.definition.push(t),le(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:le(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()})),ra}function da(e){return 0===e?"":`${e}`}function ha(e){if(e<0||e>sa){const t=new Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than ${sa+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}const pa=Bi(Fi,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(pa);const fa=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Vi,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),ma=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var ga,ya,Ta;function va(e=void 0){return function(){return e}}(ya=ga||(ga={}))[ya.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",ya[ya.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",ya[ya.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",ya[ya.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",ya[ya.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",ya[ya.LEFT_RECURSION=5]="LEFT_RECURSION",ya[ya.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",ya[ya.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",ya[ya.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",ya[ya.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",ya[ya.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",ya[ya.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",ya[ya.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",ya[ya.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION";class Ra{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\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",(()=>{fr(this)})),this.TRACE_INIT("Grammar Recording",(()=>{try{this.enableRecording(),te(this.definedRulesNames,(e=>{const t=this[e].originalGrammarAction;let n;this.TRACE_INIT(`${e} Rule`,(()=>{n=this.topLevelRuleRecord(e,t)})),this.gastProductionsCache[e]=n}))}finally{this.disableRecording()}}));let n=[];if(this.TRACE_INIT("Grammar Resolving",(()=>{n=Ns({rules:X(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)})),this.TRACE_INIT("Grammar Validations",(()=>{if(he(n)&&!1===this.skipValidations){const n=(e={rules:X(this.gastProductionsCache),tokenTypes:X(this.tokensMap),errMsgProvider:Hi,grammarName:t},vs((e=ce(e,{errMsgProvider:Hi})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)),r=function(e){const t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return ae(t,(e=>Object.assign({type:ga.CUSTOM_LOOKAHEAD_VALIDATION},e)))}({lookaheadStrategy:this.lookaheadStrategy,rules:X(this.gastProductionsCache),tokenTypes:X(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(n,r)}var e})),he(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",(()=>{const e=function(e){const t={};return te(e,(e=>{const n=new Pr(e).startWalking();ge(t,n)})),t}(X(this.gastProductionsCache));this.resyncFollows=e})),this.TRACE_INIT("ComputeLookaheadFunctions",(()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:X(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(X(this.gastProductionsCache))}))),!Ra.DEFER_DEFINITION_ERRORS_HANDLING&&!he(this.definitionErrors))throw e=ae(this.definitionErrors,(e=>e.message)),new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)}))}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),le(t,"ignoredIssues"))throw new Error("The <ignoredIssues> IParserConfig property has been deprecated.\n\tPlease use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.");this.skipValidations=le(t,"skipValidations")?t.skipValidations:fa.skipValidations}}Ra.DEFER_DEFINITION_ERRORS_HANDLING=!1,Ta=Ra,[class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=le(e,"recoveryEnabled")?e.recoveryEnabled:fa.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Vs)}getTokenToInsert(e){const t=Bi(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){const i=this.findReSyncTokenType(),s=this.exportLexerState(),a=[];let o=!1;const l=this.LA(1);let c=this.LA(1);const u=()=>{const e=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),n=new Ms(t,l,this.LA(0));n.resyncedTokens=Re(a),this.SAVE_ERROR(n)};for(;!o;){if(this.tokenMatcher(c,r))return void u();if(n.call(this))return u(),void e.apply(this,t);this.tokenMatcher(c,i)?o=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,a))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,n){return!1!==n&&!this.tokenMatcher(this.LA(1),e)&&!this.isBackTracking()&&!this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t))}getFollowsForInRuleRecovery(e,t){const n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new Ks("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e))return!1;if(he(t))return!1;const n=this.LA(1);return void 0!==oe(t,(e=>this.tokenMatcher(n,e)))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey();return we(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),n=2;for(;;){const r=oe(e,(e=>Ki(t,e)));if(void 0!==r)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return Fs;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return ae(e,((n,r)=>0===r?Fs:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])}))}flattenFollowSet(){const e=ae(this.buildFullFollowKeyStack(),(e=>this.getFollowSetFromFollowKey(e)));return U(e)}getFollowSetFromFollowKey(e){if(e===Fs)return[Fi];const t=e.ruleName+e.idxInCallingRule+br+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Fi)||t.push(e),t}reSyncTo(e){const t=[];let n=this.LA(1);for(;!1===this.tokenMatcher(n,e);)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return Re(t)}attemptInRepetitionRecovery(e,t,n,r,i,s,a){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:pe(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return ae(this.RULE_STACK,(e=>this.shortRuleNameToFullName(e)))}},class{initLooksAhead(e){this.dynamicTokensEnabled=le(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:fa.dynamicTokensEnabled,this.maxLookahead=le(e,"maxLookahead")?e.maxLookahead:fa.maxLookahead,this.lookaheadStrategy=le(e,"lookaheadStrategy")?e.lookaheadStrategy:new Ys({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){te(e,(e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,(()=>{const{alternation:t,repetition:n,option:r,repetitionMandatory:i,repetitionMandatoryWithSeparator:s,repetitionWithSeparator:a}=function(e){qs.reset(),e.accept(qs);const t=qs.dslMethods;return qs.reset(),t}(e);te(t,(t=>{const n=0===t.idx?"":t.idx;this.TRACE_INIT(`${wr(t)}${n}`,(()=>{const n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=zs(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)}))})),te(n,(t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,wr(t))})),te(r,(t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,wr(t))})),te(i,(t=>{this.computeLookaheadFunc(e,t.idx,js,"RepetitionMandatory",t.maxLookahead,wr(t))})),te(s,(t=>{this.computeLookaheadFunc(e,t.idx,Ws,"RepetitionMandatoryWithSeparator",t.maxLookahead,wr(t))})),te(a,(t=>{this.computeLookaheadFunc(e,t.idx,Hs,"RepetitionWithSeparator",t.maxLookahead,wr(t))}))}))}))}computeLookaheadFunc(e,t,n,r,i,s){this.TRACE_INIT(`${s}${0===t?"":t}`,(()=>{const s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),a=zs(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(a,s)}))}getKeyForAutomaticLookahead(e,t){return zs(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=le(e,"nodeLocationTracking")?e.nodeLocationTracking:fa.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Qs,this.setNodeLocationFromNode=Qs,this.cstPostRule=se,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=se,this.setNodeLocationFromNode=se,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Xs,this.setNodeLocationFromNode=Xs,this.cstPostRule=se,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=se,this.setNodeLocationFromNode=se,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`);this.setNodeLocationFromToken=se,this.setNodeLocationFromNode=se,this.cstPostRule=se,this.setInitialNodeLocation=se}else this.cstInvocationStateUpdate=se,this.cstFinallyStateUpdate=se,this.cstPostTerminal=se,this.cstPostNonTerminal=se,this.cstPostRule=se}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),n=e.location;n.startOffset<=t.startOffset==1?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset==1?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];var r,i,s;i=t,s=e,void 0===(r=n).children[s]?r.children[s]=[i]:r.children[s].push(i),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];!function(e,t,n){void 0===e.children[t]?e.children[t]=[n]:e.children[t].push(n)}(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(ne(this.baseCstVisitorConstructor)){const e=ea(this.className,v(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(ne(this.baseCstVisitorWithDefaultsConstructor)){const e=function(e,t,n){const r=function(){};Js(r,e+"BaseSemanticsWithDefaults");const i=Object.create(n.prototype);return te(t,(e=>{i[e]=Zs})),(r.prototype=i).constructor=r,r}(this.className,v(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{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)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)):pa}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?pa: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{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=mi,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},le(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.");if(N(e)){if(he(e))throw Error("A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.")}if(N(e))this.tokensMap=re(e,((e,t)=>(e[t.name]=t,e)),{});else if(le(e,"modes")&&ke(U(X(e.modes)),Ai)){const t=Ue(U(X(e.modes)));this.tokensMap=re(t,((e,t)=>(e[t.name]=t,e)),{})}else{if(!B(e))throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=pe(e)}this.tokensMap.EOF=Fi;const n=ke(le(e,"modes")?U(X(e.modes)):X(e),(e=>he(e.categoryMatches)));this.tokenMatcher=n?mi:fi,Ti(X(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const r=le(n,"resyncEnabled")?n.resyncEnabled:ma.resyncEnabled,i=le(n,"recoveryValueFunc")?n.recoveryValueFunc:ma.recoveryValueFunc,s=this.ruleShortNameIdx<<12;let a;return this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s,a=!0===this.outputCst?function(...n){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,n);const r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(a){return this.invokeRuleCatch(a,r,i)}finally{this.ruleFinallyStateUpdate()}}:function(...n){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,n)}catch(a){return this.invokeRuleCatch(a,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(a,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){const r=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(bs(e)){const t=e;if(i){const r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r)){if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}return n(e)}if(this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}if(r)return this.moveToTerminatedState(),n(e);throw t}throw e}optionInternal(e,t){const n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof e){r=e.DEF;const t=e.GATE;if(void 0!==t){const e=i;i=()=>t.call(this)&&e.call(this)}}else r=e;if(!0===i.call(this))return r.call(this)}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(js,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;if(!0!==i.call(this))throw this.raiseEarlyExitException(e,rs.REPETITION_MANDATORY,t.ERR_MSG);{let e=this.doSingleRepetition(r);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(r)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,js,e,Ji)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(Ws,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0!==this.getLaFuncFromCache(n).call(this))throw this.raiseEarlyExitException(e,rs.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG);{r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Zi],t,Ws,e,Zi)}}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;let s=!0;for(;!0===i.call(this)&&!0===s;)s=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,Xi,s)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(Hs,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(n).call(this)){r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Qi],t,Hs,e,Qi)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,Ws,e,i)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(256,t),r=N(e)?e:e.DEF,i=this.getLaFuncFromCache(n).call(this,r);if(void 0!==i)return r[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Us(t,e))}}subruleInternal(e,t,n){let r;try{const i=void 0!==n?n.ARGS:void 0;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,void 0!==n&&void 0!==n.LABEL?n.LABEL:e.ruleName),r}catch(i){throw this.subruleInternalError(i,n,e.ruleName)}}subruleInternalError(e,t,n){throw bs(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{const t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(i){r=this.consumeInternalRecovery(e,t,i)}return this.cstPostTerminal(void 0!==n&&void 0!==n.LABEL?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r;const i=this.LA(0);throw r=void 0!==n&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Ms(r,t,i))}consumeInternalRecovery(e,t,n){if(!this.recoveryEnabled||"MismatchedTokenException"!==n.name||this.isBackTracking())throw n;{const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(r){throw r.name===Bs?n:r}}}saveRecogState(){const e=this.errors,t=pe(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Fi)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=ma){if(we(this.definedRulesNames,e)){const t={message:Hi.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:ga.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);const r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=ma){const r=function(e,t,n){const r=[];let i;return we(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:ga.INVALID_RULE_OVERRIDE,ruleName:e})),r}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);const i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const n=this.saveRecogState();try{return e.apply(this,t),!0}catch(r){if(bs(r))return!1;throw r}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return e=X(this.gastProductionsCache),ae(e,Ir);var e}},class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=le(e,"errorMessageProvider")?e.errorMessageProvider:fa.errorMessageProvider}SAVE_ERROR(e){if(bs(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:pe(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return pe(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const r=this.getCurrRuleFullName(),i=gs(e,this.getGAstProductions()[r],t,this.maxLookahead)[0],s=[];for(let o=1;o<=this.maxLookahead;o++)s.push(this.LA(o));const a=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:s,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new Gs(a,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName(),r=ms(e,this.getGAstProductions()[n],this.maxLookahead),i=[];for(let o=1;o<=this.maxLookahead;o++)i.push(this.LA(o));const s=this.LA(0),a=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:r,actual:i,previous:s,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ds(a,this.LA(1),s))}},class{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if(ne(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return ts([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=$e(e.ruleStack),n=this.getGAstProductions()[t];return new Yi(n,e).startWalking()}},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(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD}))}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",(()=>{const e=this;for(let t=0;t<10;t++){const n=t>0?t:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA}))}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return pa}topLevelRuleRecord(e,t){try{const n=new Tr({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(n){if(!0!==n.KNOWN_RECORDER_ERROR)try{n.message=n.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch(r){throw n}throw n}}optionInternalRecord(e,t){return ca.call(this,Rr,e,t)}atLeastOneInternalRecord(e,t){ca.call(this,Er,t,e)}atLeastOneSepFirstInternalRecord(e,t){ca.call(this,Ar,t,e,ia)}manyInternalRecord(e,t){ca.call(this,kr,t,e)}manySepFirstInternalRecord(e,t){ca.call(this,$r,t,e,ia)}orInternalRecord(e,t){return ua.call(this,e,t)}subruleInternalRecord(e,t,n){if(ha(t),!e||!1===le(e,"ruleName")){const n=new Error(`<SUBRULE${da(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=ue(this.recordingProdStack),i=e.ruleName,s=new yr({idx:t,nonTerminalName:i,label:null==n?void 0:n.LABEL,referencedRule:void 0});return r.definition.push(s),this.outputCst?la:ra}consumeInternalRecord(e,t,n){if(ha(t),!Ri(e)){const n=new Error(`<CONSUME${da(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=ue(this.recordingProdStack),i=new Sr({idx:t,terminalType:e,label:null==n?void 0:n.LABEL});return r.definition.push(i),oa}},class{initPerformanceTracer(e){if(le(e,"traceInitPerf")){const t=e.traceInitPerf,n="number"==typeof t;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=fa.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--\x3e <${e}>`);const{time:r,value:i}=pr(t),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}return t()}}].forEach((e=>{const t=e.prototype;Object.getOwnPropertyNames(t).forEach((n=>{if("constructor"===n)return;const r=Object.getOwnPropertyDescriptor(t,n);r&&(r.get||r.set)?Object.defineProperty(Ta.prototype,n,r):Ta.prototype[n]=e.prototype[n]}))}));class Ea extends Ra{constructor(e,t=fa){const n=pe(t);n.outputCst=!1,super(e,n)}}function Aa(e,t,n){return`${e.name}_${t}_${n}`}class ka{constructor(e){this.target=e}isEpsilon(){return!1}}class $a extends ka{constructor(e,t){super(e),this.tokenType=t}}class xa extends ka{constructor(e){super(e)}isEpsilon(){return!0}}class Sa extends ka{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}}function Ia(e){const t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};!function(e,t){const n=t.length;for(let r=0;r<n;r++){const n=t[r],i=Da(e,n,void 0,{type:2}),s=Da(e,n,void 0,{type:7});i.stop=s,e.ruleToStartState.set(n,i),e.ruleToStopState.set(n,s)}}(t,e);const n=e.length;for(let r=0;r<n;r++){const n=e[r],i=Ca(t,n,n);void 0!==i&&Pa(t,n,i)}return t}function Na(e,t,n){return n instanceof Sr?ba(e,t,n.terminalType,n):n instanceof yr?function(e,t,n){const r=n.referencedRule,i=e.ruleToStartState.get(r),s=Da(e,t,n,{type:1}),a=Da(e,t,n,{type:1}),o=new Sa(i,r,a);return Ua(s,o),{left:s,right:a}}(e,t,n):n instanceof xr?function(e,t,n){const r=Da(e,t,n,{type:1});Oa(e,r);const i=ae(n.definition,(n=>Na(e,t,n))),s=_a(e,t,r,n,...i);return s}(e,t,n):n instanceof Rr?function(e,t,n){const r=Da(e,t,n,{type:1});Oa(e,r);const i=_a(e,t,r,n,Ca(e,t,n));return function(e,t,n,r){const i=r.left,s=r.right;return Ma(i,s),e.decisionMap[Aa(t,"Option",n.idx)]=i,r}(e,t,n,i)}(e,t,n):n instanceof kr?function(e,t,n){const r=Da(e,t,n,{type:5});Oa(e,r);const i=_a(e,t,r,n,Ca(e,t,n));return La(e,t,n,i)}(e,t,n):n instanceof $r?function(e,t,n){const r=Da(e,t,n,{type:5});Oa(e,r);const i=_a(e,t,r,n,Ca(e,t,n)),s=ba(e,t,n.separator,n);return La(e,t,n,i,s)}(e,t,n):n instanceof Er?function(e,t,n){const r=Da(e,t,n,{type:4});Oa(e,r);const i=_a(e,t,r,n,Ca(e,t,n));return wa(e,t,n,i)}(e,t,n):n instanceof Ar?function(e,t,n){const r=Da(e,t,n,{type:4});Oa(e,r);const i=_a(e,t,r,n,Ca(e,t,n)),s=ba(e,t,n.separator,n);return wa(e,t,n,i,s)}(e,t,n):Ca(e,t,n)}function Ca(e,t,n){const r=ie(ae(n.definition,(n=>Na(e,t,n))),(e=>void 0!==e));return 1===r.length?r[0]:0===r.length?void 0:function(e,t){const n=t.length;for(let s=0;s<n-1;s++){const n=t[s];let r;1===n.left.transitions.length&&(r=n.left.transitions[0]);const i=r instanceof Sa,a=r,o=t[s+1].left;1===n.left.type&&1===n.right.type&&void 0!==r&&(i&&a.followState===n.right||r.target===n.right)?(i?a.followState=o:r.target=o,Ga(e,n.right)):Ma(n.right,o)}const r=t[0],i=t[n-1];return{left:r.left,right:i.right}}(e,r)}function wa(e,t,n,r,i){const s=r.left,a=r.right,o=Da(e,t,n,{type:11});Oa(e,o);const l=Da(e,t,n,{type:12});return s.loopback=o,l.loopback=o,e.decisionMap[Aa(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=o,Ma(a,o),void 0===i?(Ma(o,s),Ma(o,l)):(Ma(o,l),Ma(o,i.left),Ma(i.right,s)),{left:s,right:l}}function La(e,t,n,r,i){const s=r.left,a=r.right,o=Da(e,t,n,{type:10});Oa(e,o);const l=Da(e,t,n,{type:12}),c=Da(e,t,n,{type:9});return o.loopback=c,l.loopback=c,Ma(o,s),Ma(o,l),Ma(a,c),void 0!==i?(Ma(c,l),Ma(c,i.left),Ma(i.right,s)):Ma(c,o),e.decisionMap[Aa(t,i?"RepetitionWithSeparator":"Repetition",n.idx)]=o,{left:o,right:l}}function Oa(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function _a(e,t,n,r,...i){const s=Da(e,t,r,{type:8,start:n});n.end=s;for(const o of i)void 0!==o?(Ma(n,o.left),Ma(o.right,s)):Ma(n,s);const a={left:n,right:s};return e.decisionMap[Aa(t,function(e){if(e instanceof xr)return"Alternation";if(e instanceof Rr)return"Option";if(e instanceof kr)return"Repetition";if(e instanceof $r)return"RepetitionWithSeparator";if(e instanceof Er)return"RepetitionMandatory";if(e instanceof Ar)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}(r),r.idx)]=n,a}function ba(e,t,n,r){const i=Da(e,t,r,{type:1}),s=Da(e,t,r,{type:1});return Ua(i,new $a(s,n)),{left:i,right:s}}function Pa(e,t,n){const r=e.ruleToStartState.get(t);Ma(r,n.left);const i=e.ruleToStopState.get(t);Ma(n.right,i);return{left:r,right:i}}function Ma(e,t){Ua(e,new xa(t))}function Da(e,t,n,r){const i=Object.assign({atn:e,production:n,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},r);return e.states.push(i),i}function Ua(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function Ga(e,t){e.states.splice(e.states.indexOf(t),1)}const Fa={};class Ba{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Ka(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return ae(this.configs,(e=>e.alt))}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Ka(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map((e=>e.stateNumber.toString())).join("_")}`}function Va(e,t){const n={};return r=>{const i=r.toString();let s=n[i];return void 0!==s||(s={atnStartState:e,decision:t,states:{}},n[i]=s),s}}class ja{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;n<t;n++)e+=!0===this.predicates[n]?"1":"0";return e}}const Ha=new ja;class Wa extends Ys{constructor(e){var t;super(),this.logging=null!==(t=null==e?void 0:e.logging)&&void 0!==t?t:e=>console.log(e)}initialize(e){this.atn=Ia(e.rules),this.dfas=function(e){const t=e.decisionStates.length,n=Array(t);for(let r=0;r<t;r++)n[r]=Va(e.decisionStates[r],r);return n}(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:n,hasPredicates:r,dynamicTokensEnabled:i}=e,s=this.dfas,a=this.logging,o=Aa(n,"Alternation",t),l=this.atn.decisionMap[o].decision,c=ae(as({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),(e=>ae(e,(e=>e[0]))));if(za(c,!1)&&!i){const e=re(c,((e,t,n)=>(te(t,(t=>{t&&(e[t.tokenTypeIdx]=n,te(t.categoryMatches,(t=>{e[t]=n})))})),e)),{});return r?function(t){var n;const r=this.LA(1),i=e[r.tokenTypeIdx];if(void 0!==t&&void 0!==i){const e=null===(n=t[i])||void 0===n?void 0:n.GATE;if(void 0!==e&&!1===e.call(this))return}return i}:function(){const t=this.LA(1);return e[t.tokenTypeIdx]}}return r?function(e){const t=new ja,n=void 0===e?0:e.length;for(let i=0;i<n;i++){const n=null==e?void 0:e[i].GATE;t.set(i,void 0===n||n.call(this))}const r=Ya.call(this,s,l,t,a);return"number"==typeof r?r:void 0}:function(){const e=Ya.call(this,s,l,Ha,a);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:n,prodType:r,dynamicTokensEnabled:i}=e,s=this.dfas,a=this.logging,o=Aa(n,r,t),l=this.atn.decisionMap[o].decision,c=ae(as({maxLookahead:1,occurrence:t,prodType:r,rule:n}),(e=>ae(e,(e=>e[0]))));if(za(c)&&c[0][0]&&!i){const e=c[0],t=U(e);if(1===t.length&&he(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=re(t,((e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,te(t.categoryMatches,(t=>{e[t]=!0}))),e)),{});return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){const e=Ya.call(this,s,l,Ha,a);return"object"!=typeof e&&0===e}}}function za(e,t=!0){const n=new Set;for(const r of e){const e=new Set;for(const i of r){if(void 0===i){if(t)break;return!1}const r=[i.tokenTypeIdx].concat(i.categoryMatches);for(const t of r)if(n.has(t)){if(!e.has(t))return!1}else n.add(t),e.add(t)}}return!0}function Ya(e,t,n,r){const i=e[t](n);let s=i.start;if(void 0===s){s=no(i,eo(function(e){const t=new Ba,n=e.transitions.length;for(let r=0;r<n;r++){ro({state:e.transitions[r].target,alt:r,stack:[]},t)}return t}(i.atnStartState))),i.start=s}return qa.apply(this,[i,s,n,r])}function qa(e,t,n,r){let i=t,s=1;const a=[];let o=this.LA(s++);for(;;){let t=(l=o,i.edges[l.tokenTypeIdx]);if(void 0===t&&(t=Xa.apply(this,[e,i,o,s,n,r])),t===Fa)return Ja(a,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,a.push(o),o=this.LA(s++)}var l}function Xa(e,t,n,r,i,s){const a=function(e,t,n){const r=new Ba,i=[];for(const a of e.elements){if(!1===n.is(a.alt))continue;if(7===a.state.type){i.push(a);continue}const e=a.state.transitions.length;for(let n=0;n<e;n++){const e=Za(a.state.transitions[n],t);void 0!==e&&r.add({state:e,alt:a.alt,stack:a.stack})}}let s;0===i.length&&1===r.size&&(s=r);if(void 0===s){s=new Ba;for(const e of r.elements)ro(e,s)}if(i.length>0&&!function(e){for(const t of e.elements)if(7===t.state.type)return!0;return!1}(s))for(const a of i)s.add(a);return s}(t.configs,n,i);if(0===a.size)return to(e,t,n,Fa),Fa;let o=eo(a);const l=function(e,t){let n;for(const r of e.elements)if(!0===t.is(r.alt))if(void 0===n)n=r.alt;else if(n!==r.alt)return;return n}(a,i);if(void 0!==l)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(function(e){if(function(e){for(const t of e.elements)if(7!==t.state.type)return!1;return!0}(e))return!0;const t=function(e){const t=new Map;for(const n of e){const e=Ka(n,!1);let r=t.get(e);void 0===r&&(r={},t.set(e,r)),r[n.alt]=!0}return t}(e.elements);return function(e){for(const t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}(t)&&!function(e){for(const t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}(t)}(a)){const t=de(a.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,Qa.apply(this,[e,r,a.alts,s])}return o=to(e,t,n,o),o}function Qa(e,t,n,r){const i=[];for(let a=1;a<=t;a++)i.push(this.LA(a).tokenType);const s=e.atnStartState;r(function(e){const t=ae(e.prefixPath,(e=>Ni(e))).join(", "),n=0===e.production.idx?"":e.production.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${function(e){if(e instanceof yr)return"SUBRULE";if(e instanceof Rr)return"OPTION";if(e instanceof xr)return"OR";if(e instanceof Er)return"AT_LEAST_ONE";if(e instanceof Ar)return"AT_LEAST_ONE_SEP";if(e instanceof $r)return"MANY_SEP";if(e instanceof kr)return"MANY";if(e instanceof Sr)return"CONSUME";throw Error("non exhaustive match")}(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r}({topLevelRule:s.rule,ambiguityIndices:n,production:s.production,prefixPath:i}))}function Ja(e,t,n){const r=xe(t.configs.elements,(e=>e.state.transitions));var i,s;return{actualToken:n,possibleTokenTypes:(i=r.filter((e=>e instanceof $a)).map((e=>e.tokenType)),s=e=>e.tokenTypeIdx,i&&i.length?ee(i,Y(s)):[]),tokenPath:e}}function Za(e,t){if(e instanceof $a&&Ki(t,e.tokenType))return e.target}function eo(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function to(e,t,n,r){return r=no(e,r),t.edges[n.tokenTypeIdx]=r,r}function no(e,t){if(t===Fa)return t;const n=t.configs.key,r=e.states[n];return void 0!==r?r:(t.configs.finalize(),e.states[n]=t,t)}function ro(e,t){const n=e.state;if(7===n.type){if(e.stack.length>0){const n=[...e.stack];ro({state:n.pop(),alt:e.alt,stack:n},t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);const r=n.transitions.length;for(let i=0;i<r;i++){const r=io(e,n.transitions[i]);void 0!==r&&ro(r,t)}}function io(e,t){if(t instanceof xa)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof Sa){const n=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:n}}}class so{constructor(){this.nodeStack=[]}get current(){var e;return null!==(e=this.nodeStack[this.nodeStack.length-1])&&void 0!==e?e:this.rootNode}buildRootNode(e){return this.rootNode=new uo(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new lo;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const n=new oo(e.startOffset,e.image.length,it(e),e.tokenType,!t);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){const t=e.container;if(t){const n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}addHiddenNodes(e){const t=[];for(const i of e){const e=new oo(i.startOffset,i.image.length,it(i),i.tokenType,!0);e.root=this.rootNode,t.push(e)}let n=this.current,r=!1;if(n.content.length>0)n.content.push(...t);else{for(;n.container;){const e=n.container.content.indexOf(n);if(e>0){n.container.content.splice(e,0,...t),r=!0;break}n=n.container}r||this.rootNode.content.unshift(...t)}}construct(e){const t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;const n=this.nodeStack.pop();0===(null==n?void 0:n.content.length)&&this.removeNode(n)}}class ao{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const n="string"==typeof(null===(e=this._astNode)||void 0===e?void 0:e.$type)?this._astNode:null===(t=this.container)||void 0===t?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class oo extends ao{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,n,r,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=r,this._length=t,this._range=n}}class lo extends ao{constructor(){super(...arguments),this.content=new co(this)}get children(){return this.content}get offset(){var e,t;return null!==(t=null===(e=this.firstNonHiddenNode)||void 0===e?void 0:e.offset)&&void 0!==t?t:0}get length(){return this.end-this.offset}get end(){var e,t;return null!==(t=null===(e=this.lastNonHiddenNode)||void 0===e?void 0:e.end)&&void 0!==t?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(void 0===this._rangeCache){const{range:n}=e,{range:r}=t;this._rangeCache={start:n.start,end:r.end.line<n.start.line?n.start:r.end}}return this._rangeCache}return{start:K.create(0,0),end:K.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 co extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,co.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(const t of e)t.container=this.parent}}class uo extends lo{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=null!=e?e:""}}const ho=Symbol("Datatype");function po(e){return e.$type===ho}const fo=e=>e.endsWith("")?e:e+"";class mo{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,n="production"===e.LanguageMetaData.mode;this.wrapper=new Eo(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class go extends mo{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new so,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e),r=this.wrapper.DEFINE_RULE(fo(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}computeRuleType(e){if(!e.fragment){if(nr(e))return ho;{const t=ir(e);return null!=t?t:e.name}}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const r=t.rule?this.allRules.get(t.rule):this.mainRule;if(!r)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const i=r.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:i,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const r=!this.isRecording()&&void 0!==e;if(r){const t={$type:e};this.stack.push(t),e===ho&&(t.value="")}let i;try{i=t(n)}catch(s){i=void 0}return void 0===i&&r&&(i=this.construct()),i}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const n=e.startOffset;for(let r=0;r<t.length;r++){if(t[r].startOffset>n)return t.splice(0,r)}return t.splice(0,t.length)}consume(e,t,n){const r=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(r)){const e=this.extractHiddenTokens(r);this.nodeBuilder.addHiddenNodes(e);const t=this.nodeBuilder.buildLeafNode(r,n),{assignment:i,isCrossRef:s}=this.getAssignment(n),a=this.current;if(i){const e=sn(n)?r.image:this.converter.convert(r.image,t);this.assign(i.operator,i.feature,e,t,s)}else if(po(a)){let e=r.image;sn(n)||(e=this.converter.convert(e,t).toString()),a.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,n,r,i){let s;this.isRecording()||n||(s=this.nodeBuilder.buildCompositeNode(r));const a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,r,s)}performSubruleAssignment(e,t,n){const{assignment:r,isCrossRef:i}=this.getAssignment(t);if(r)this.assign(r.operator,r.feature,e,n,i);else if(!r){const t=this.current;if(po(t))t.value+=e.toString();else if("object"==typeof e&&e){const n=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(t.feature&&t.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode);this.nodeBuilder.buildCompositeNode(t).content.push(n.$cstNode);const r={$type:e};this.stack.push(r),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return function(e){for(const[t,n]of Object.entries(e))t.startsWith("$")||(Array.isArray(n)?n.forEach(((n,r)=>{Ge(n)&&(n.$container=e,n.$containerProperty=t,n.$containerIndex=r)})):Ge(n)&&(n.$container=e,n.$containerProperty=t))}(e),this.nodeBuilder.construct(e),this.stack.pop(),po(e)?this.converter.convert(e.value,e.$cstNode):(function(e,t){const n=e.getTypeMetaData(t.$type),r=t;for(const i of n.properties)void 0!==i.defaultValue&&void 0===r[i.name]&&(r[i.name]=In(i.defaultValue))}(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=vn(e,Xt);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&Zt(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,n,r,i){const s=this.current;let a;switch(a=i&&"string"==typeof n?this.linker.buildReference(s,t,r,n):n,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(const[r,i]of Object.entries(t)){const t=e[r];void 0===t?e[r]=i:Array.isArray(t)&&Array.isArray(i)&&(i.push(...t),e[r]=i)}const n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class yo{buildMismatchTokenMessage(e){return Vi.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Vi.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Vi.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Vi.buildEarlyExitMessage(e)}}class To extends yo{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 vo extends mo{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const n=this.wrapper.DEFINE_RULE(fo(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,t,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const Ro={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new To};class Eo extends Ea{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Ro),{lookaheadStrategy:n?new Ys({maxLookahead:t.maxLookahead}):new Wa({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function Ao(e,t,n){return function(e,t){const n=qn(t,!1),r=Qe(t.rules).filter(bt).filter((e=>n.has(e)));for(const i of r){const t=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(i,ko(t,i.definition))}}({parser:t,tokens:n,ruleNames:new Map},e),t}function ko(e,t,n=!1){let r;if(sn(t))r=function(e,t){const n=e.consume++,r=e.tokens[t.value];if(!r)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(n,r,t)}(e,t);else if(Wt(t))r=function(e,t){const n=sr(t);return()=>e.parser.action(n,t)}(e,t);else if(Xt(t))r=ko(e,t.terminal);else if(Zt(t))r=So(e,t);else if(cn(t))r=function(e,t){const n=t.rule.ref;if(bt(n)){const r=e.subrule++,i=n.fragment,s=t.arguments.length>0?function(e,t){const n=t.map((e=>$o(e.value)));return t=>{const r={};for(let i=0;i<n.length;i++){const s=e.parameters[i],a=n[i];r[s.name]=a(t)}return r}}(n,t.arguments):()=>({});return a=>e.parser.subrule(r,No(e,n),i,t,s(a))}if(Ft(n)){const r=e.consume++,i=Co(e,n.name);return()=>e.parser.consume(r,i,t)}if(!n)throw new ct(t.$cstNode,`Undefined rule: ${t.rule.$refText}`);ut()}(e,t);else if(Yt(t))r=function(e,t){if(1===t.elements.length)return ko(e,t.elements[0]);{const n=[];for(const i of t.elements){const t={ALT:ko(e,i,!0)},r=xo(i);r&&(t.GATE=$o(r)),n.push(t)}const r=e.or++;return t=>e.parser.alternatives(r,n.map((e=>{const n={ALT:()=>e.ALT(t)},r=e.GATE;return r&&(n.GATE=()=>r(t)),n})))}}(e,t);else if(fn(t))r=function(e,t){if(1===t.elements.length)return ko(e,t.elements[0]);const n=[];for(const o of t.elements){const t={ALT:ko(e,o,!0)},r=xo(o);r&&(t.GATE=$o(r)),n.push(t)}const r=e.or++,i=(e,t)=>`uGroup_${e}_${t.getRuleStack().join("-")}`,s=t=>e.parser.alternatives(r,n.map(((n,s)=>{const a={ALT:()=>!0},o=e.parser;a.ALT=()=>{if(n.ALT(t),!o.isRecording()){const e=i(r,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);const t=o.unorderedGroups.get(e);void 0===(null==t?void 0:t[s])&&(t[s]=!0)}};const l=n.GATE;return a.GATE=l?()=>l(t):()=>{const e=o.unorderedGroups.get(i(r,o));return!(null==e?void 0:e[s])},a}))),a=Io(e,xo(t),s,"*");return t=>{a(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}(e,t);else if(nn(t))r=function(e,t){const n=t.elements.map((t=>ko(e,t)));return e=>n.forEach((t=>t(e)))}(e,t);else{if(i=t,!Tn.isInstance(i,en))throw new ct(t.$cstNode,`Unexpected element type: ${t.$type}`);{const n=e.consume++;r=()=>e.parser.consume(n,Fi,t)}}var i;return Io(e,n?void 0:xo(t),r,t.cardinality)}function $o(e){if(t=e,Tn.isInstance(t,Et)){const t=$o(e.left),n=$o(e.right);return e=>t(e)||n(e)}if(function(e){return Tn.isInstance(e,Rt)}(e)){const t=$o(e.left),n=$o(e.right);return e=>t(e)&&n(e)}if(function(e){return Tn.isInstance(e,Ct)}(e)){const t=$o(e.value);return e=>!t(e)}if(function(e){return Tn.isInstance(e,Ot)}(e)){const t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(function(e){return Tn.isInstance(e,vt)}(e)){const t=Boolean(e.true);return()=>t}var t;ut()}function xo(e){if(nn(e))return e.guardCondition}function So(e,t,n=t.terminal){if(n){if(cn(n)&&bt(n.rule.ref)){const r=n.rule.ref,i=e.subrule++;return n=>e.parser.subrule(i,No(e,r),!1,t,n)}if(cn(n)&&Ft(n.rule.ref)){const r=e.consume++,i=Co(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}if(sn(n)){const r=e.consume++,i=Co(e,n.value);return()=>e.parser.consume(r,i,t)}throw new Error("Could not build cross reference parser")}{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);const n=er(t.type.ref),r=null==n?void 0:n.terminal;if(!r)throw new Error("Could not find name assignment for type: "+sr(t.type.ref));return So(e,t,r)}}function Io(e,t,n,r){const i=t&&$o(t);if(!r){if(i){const t=e.or++;return r=>e.parser.alternatives(t,[{ALT:()=>n(r),GATE:()=>i(r)},{ALT:va(),GATE:()=>!i(r)}])}return n}if("*"===r){const t=e.many++;return r=>e.parser.many(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}if("+"===r){const t=e.many++;if(i){const r=e.or++;return s=>e.parser.alternatives(r,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>n(s)}),GATE:()=>i(s)},{ALT:va(),GATE:()=>!i(s)}])}return r=>e.parser.atLeastOne(t,{DEF:()=>n(r)})}if("?"===r){const t=e.optional++;return r=>e.parser.optional(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}ut()}function No(e,t){const n=function(e,t){if(bt(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!bt(r);){if(nn(r)||Yt(r)||fn(r)){i=r.elements.indexOf(n).toString()+":"+i}n=r,r=r.$container}return i=r.name+":"+i,e.ruleNames.set(t,i),i}}(e,t),r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function Co(e,t){const n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}function wo(e){const t=function(e){const t=e.Grammar,n=e.parser.Lexer,r=new go(e);return Ao(t,r,n.definition)}(e);return t.finalize(),t}class Lo{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=Qe(qn(e,!1)),r=this.buildTerminalTokens(n),i=this.buildKeywordTokens(n,r,t);return r.forEach((e=>{const t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&Wn(t)?i.unshift(e):i.push(e)})),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Ft).filter((e=>!e.fragment)).map((e=>this.buildTerminalToken(e))).toArray()}buildTerminalToken(e){const t=ar(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,r={name:e.name,PATTERN:n};return"function"==typeof n&&(r.LINE_BREAKS=!0),e.hidden&&(r.GROUP=Wn(t)?Ii.SKIPPED:"hidden"),r}requiresCustomPattern(e){return!(!e.flags.includes("u")&&!e.flags.includes("s"))||!(!e.source.includes("?<=")&&!e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(e,n)=>{t.lastIndex=n;return t.exec(e)}}buildKeywordTokens(e,t,n){return e.filter(bt).flatMap((e=>kn(e).filter(sn))).distinct((e=>e.value)).toArray().sort(((e,t)=>t.value.length-e.value.length)).map((e=>this.buildKeywordToken(e,t,Boolean(null==n?void 0:n.caseInsensitive))))}buildKeywordToken(e,t,n){const r=this.buildKeywordPattern(e,n),i={name:e.value,PATTERN:r,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof r&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?new RegExp(function(e){return Array.prototype.map.call(e,(e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:zn(e))).join("")}(e.value)):e.value}findLongerAlt(e,t){return t.reduce(((t,n)=>{const r=null==n?void 0:n.PATTERN;return(null==r?void 0:r.source)&&Yn("^"+r.source+"$",e.value)&&t.push(n),t}),[])}}class Oo{convert(e,t){let n=t.grammarSource;if(Zt(n)&&(n=function(e){if(e.terminal)return e.terminal;if(e.type.ref){const t=er(e.type.ref);return null==t?void 0:t.terminal}}(n)),cn(n)){const r=n.rule.ref;if(!r)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(r,e,t)}return e}runConverter(e,t,n){var r;switch(e.name.toUpperCase()){case"INT":return _o.convertInt(t);case"STRING":return _o.convertString(t);case"ID":return _o.convertID(t)}switch(null===(r=function(e){var t,n,r;return Ft(e)?null!==(n=null===(t=e.type)||void 0===t?void 0:t.name)&&void 0!==n?n:"string":null!==(r=ir(e))&&void 0!==r?r:e.name}(e))||void 0===r?void 0:r.toLowerCase()){case"number":return _o.convertNumber(t);case"boolean":return _o.convertBoolean(t);case"bigint":return _o.convertBigint(t);case"date":return _o.convertDate(t);default:return t}}}var _o;!function(e){function t(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"0":return"\0";default:return e}}e.convertString=function(e){let n="";for(let r=1;r<e.length-1;r++){const i=e.charAt(r);if("\\"===i){n+=t(e.charAt(++r))}else n+=i}return n},e.convertID=function(e){return"^"===e.charAt(0)?e.substring(1):e},e.convertInt=function(e){return parseInt(e)},e.convertBigint=function(e){return BigInt(e)},e.convertDate=function(e){return new Date(e)},e.convertNumber=function(e){return Number(e)},e.convertBoolean=function(e){return"true"===e.toLowerCase()}}(_o||(_o={}));var bo=V();let Po=0;const Mo=Symbol("OperationCancelled");function Do(e){return e===Mo}async function Uo(e){if(e===bo.CancellationToken.None)return;const t=performance.now();if(t-Po>=10&&(Po=t,await new Promise((e=>{"undefined"==typeof setImmediate?setTimeout(e,0):setImmediate(e)})),Po=performance.now()),e.isCancellationRequested)throw Mo}class Go{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)}))}}class Fo{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const n of e)if(Fo.isIncremental(n)){const e=zo(n.range),t=this.offsetAt(e.start),r=this.offsetAt(e.end);this._content=this._content.substring(0,t)+n.text+this._content.substring(r,this._content.length);const i=Math.max(e.start.line,0),s=Math.max(e.end.line,0);let a=this._lineOffsets;const o=Ho(n.text,!1,t);if(s-i===o.length)for(let n=0,c=o.length;n<c;n++)a[n+i+1]=o[n];else o.length<1e4?a.splice(i+1,s-i,...o):this._lineOffsets=a=a.slice(0,i+1).concat(o,a.slice(s+1));const l=n.text.length-(r-t);if(0!==l)for(let n=i+1+o.length,c=a.length;n<c;n++)a[n]=a[n]+l}else{if(!Fo.isFull(n))throw new Error("Unknown change event received");this._content=n.text,this._lineOffsets=void 0}this._version=t}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=Ho(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){const i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}const i=n-1;return{line:i,character:(e=this.ensureBeforeEOL(e,t[i]))-t[i]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const n=t[e.line];if(e.character<=0)return n;const r=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(n+e.character,r);return this.ensureBeforeEOL(i,n)}ensureBeforeEOL(e,t){for(;e>t&&Wo(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"==typeof t.rangeLength)}static isFull(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength}}var Bo,Ko,Vo;function jo(e,t){if(e.length<=1)return e;const n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);jo(r,t),jo(i,t);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;){const n=t(r[s],i[a]);e[o++]=n<=0?r[s++]:i[a++]}for(;s<r.length;)e[o++]=r[s++];for(;a<i.length;)e[o++]=i[a++];return e}function Ho(e,t,n=0){const r=t?[n]:[];for(let i=0;i<e.length;i++){const t=e.charCodeAt(i);Wo(t)&&(13===t&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function Wo(e){return 13===e||10===e}function zo(e){const t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function Yo(e){const t=zo(e.range);return t!==e.range?{newText:e.newText,range:t}:e}(Ko=Bo||(Bo={})).create=function(e,t,n,r){return new Fo(e,t,n,r)},Ko.update=function(e,t,n){if(e instanceof Fo)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},Ko.applyEdits=function(e,t){const n=e.getText(),r=jo(t.map(Yo),((e,t)=>{const n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n}));let i=0;const s=[];for(const a of r){const t=e.offsetAt(a.range.start);if(t<i)throw new Error("Overlapping edit");t>i&&s.push(n.substring(i,t)),a.newText.length&&s.push(a.newText),i=e.offsetAt(a.range.end)}return s.push(n.substr(i)),s.join("")},(()=>{var e={470:e=>{function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,s=-1,a=0,o=0;o<=e.length;++o){if(o<e.length)n=e.charCodeAt(o);else{if(47===n)break;n=47}if(47===n){if(s===o-1||1===a);else if(s!==o-1&&2===a){if(r.length<2||2!==i||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",i=0):i=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),s=o,a=0;continue}}else if(2===r.length||1===r.length){r="",i=0,s=o,a=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(s+1,o):r=e.slice(s+1,o),i=o-s-1;s=o,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a;s>=0?a=arguments[s]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,i=47===a.charCodeAt(0))}return r=n(r,!i),i?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var i=arguments[n];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var s=e.length,a=s-i,o=1;o<n.length&&47===n.charCodeAt(o);++o);for(var l=n.length-o,c=a<l?a:l,u=-1,d=0;d<=c;++d){if(d===c){if(l>c){if(47===n.charCodeAt(o+d))return n.slice(o+d+1);if(0===d)return n.slice(o+d)}else a>c&&(47===e.charCodeAt(i+d)?u=d:0===d&&(u=0));break}var h=e.charCodeAt(i+d);if(h!==n.charCodeAt(o+d))break;47===h&&(u=d)}var p="";for(d=i+u+1;d<=s;++d)d!==s&&47!==e.charCodeAt(d)||(0===p.length?p+="..":p+="/..");return p.length>0?p+n.slice(o+u):(o+=u,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,s=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!s){i=a;break}}else s=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,s=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var o=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){i=r+1;break}}else-1===l&&(a=!1,l=r+1),o>=0&&(c===n.charCodeAt(o)?-1==--o&&(s=r):(o=-1,s=l))}return i===s?s=l:-1===s&&(s=e.length),e.slice(i,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){i=r+1;break}}else-1===s&&(a=!1,s=r+1);return-1===s?"":e.slice(i,s)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,s=!0,a=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(s=!1,i=o+1),46===l?-1===n?n=o:1!==a&&(a=1):-1!==n&&(a=-1);else if(!s){r=o+1;break}}return-1===n||-1===i||0===a||1===a&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return n=(t=e).dir||t.root,r=t.base||(t.name||"")+(t.ext||""),n?n===t.root?n+r:n+"/"+r:r;var t,n,r},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),s=47===i;s?(n.root="/",r=1):r=0;for(var a=-1,o=0,l=-1,c=!0,u=e.length-1,d=0;u>=r;--u)if(47!==(i=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===i?-1===a?a=u:1!==d&&(d=1):-1!==a&&(d=-1);else if(!c){o=u+1;break}return-1===a||-1===l||0===d||1===d&&a===l-1&&a===o+1?-1!==l&&(n.base=n.name=0===o&&s?e.slice(1,l):e.slice(o,l)):(0===o&&s?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(o,a),n.base=e.slice(o,l)),n.ext=e.slice(a,l)),o>0?n.dir=e.slice(0,o-1):s&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{let e;if(n.r(r),n.d(r,{URI:()=>u,Utils:()=>x}),"object"==typeof process)e="win32"===process.platform;else if("object"==typeof navigator){let t=navigator.userAgent;e=t.indexOf("Windows")>=0}const t=/^\w[\w\d+.-]*$/,i=/^\//,s=/^\/\//;function a(e,n){if(!e.scheme&&n)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!i.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const o="",l="/",c=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class u{constructor(e,t,n,r,i,s=!1){f(this,"scheme"),f(this,"authority"),f(this,"path"),f(this,"query"),f(this,"fragment"),"object"==typeof e?(this.scheme=e.scheme||o,this.authority=e.authority||o,this.path=e.path||o,this.query=e.query||o,this.fragment=e.fragment||o):(this.scheme=function(e,t){return e||t?e:"file"}(e,s),this.authority=t||o,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||o),this.query=r||o,this.fragment=i||o,a(this,s))}static isUri(e){return e instanceof u||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}get fsPath(){return y(this)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=o),void 0===n?n=this.authority:null===n&&(n=o),void 0===r?r=this.path:null===r&&(r=o),void 0===i?i=this.query:null===i&&(i=o),void 0===s?s=this.fragment:null===s&&(s=o),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&s===this.fragment?this:new h(t,n,r,i,s)}static parse(e,t=!1){const n=c.exec(e);return n?new h(n[2]||o,E(n[4]||o),E(n[5]||o),E(n[7]||o),E(n[9]||o),t):new h(o,o,o,o,o)}static file(t){let n=o;if(e&&(t=t.replace(/\\/g,l)),t[0]===l&&t[1]===l){const e=t.indexOf(l,2);-1===e?(n=t.substring(2),t=l):(n=t.substring(2,e),t=t.substring(e)||l)}return new h("file",n,t,o,o)}static from(e){const t=new h(e.scheme,e.authority,e.path,e.query,e.fragment);return a(t,!0),t}toString(e=!1){return T(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof u)return e;{const t=new h(e);return t._formatted=e.external,t._fsPath=e._sep===d?e.fsPath:null,t}}return e}}const d=e?1:void 0;class h extends u{constructor(){super(...arguments),f(this,"_formatted",null),f(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=y(this)),this._fsPath}toString(e=!1){return e?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=d),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const p={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 m(e,t,n){let r,i=-1;for(let s=0;s<e.length;s++){const a=e.charCodeAt(s);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a||n&&91===a||n&&93===a||n&&58===a)-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),void 0!==r&&(r+=e.charAt(s));else{void 0===r&&(r=e.substr(0,s));const t=p[a];void 0!==t?(-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),r+=t):-1===i&&(i=s)}}return-1!==i&&(r+=encodeURIComponent(e.substring(i))),void 0!==r?r:e}function g(e){let t;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function y(t,n){let r;return r=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(r=r.replace(/\//g,"\\")),r}function T(e,t){const n=t?g:m;let r="",{scheme:i,authority:s,path:a,query:o,fragment:c}=e;if(i&&(r+=i,r+=":"),(s||"file"===i)&&(r+=l,r+=l),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.lastIndexOf(":"),-1===e?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=":",r+=n(t.substr(e+1),!1,!0)),r+="@"}s=s.toLowerCase(),e=s.lastIndexOf(":"),-1===e?r+=n(s,!1,!0):(r+=n(s.substr(0,e),!1,!0),r+=s.substr(e))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){const e=a.charCodeAt(1);e>=65&&e<=90&&(a=`/${String.fromCharCode(e+32)}:${a.substr(3)}`)}else if(a.length>=2&&58===a.charCodeAt(1)){const e=a.charCodeAt(0);e>=65&&e<=90&&(a=`${String.fromCharCode(e+32)}:${a.substr(2)}`)}r+=n(a,!0,!1)}return o&&(r+="?",r+=n(o,!1,!1)),c&&(r+="#",r+=t?c:m(c,!1,!1)),r}function v(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+v(e.substr(3)):e}}const R=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match(R)?e.replace(R,(e=>v(e))):e}var A=n(470);const k=A.posix||A,$="/";var x,S;(S=x||(x={})).joinPath=function(e,...t){return e.with({path:k.join(e.path,...t)})},S.resolvePath=function(e,...t){let n=e.path,r=!1;n[0]!==$&&(n=$+n,r=!0);let i=k.resolve(n,...t);return r&&i[0]===$&&!e.authority&&(i=i.substring(1)),e.with({path:i})},S.dirname=function(e){if(0===e.path.length||e.path===$)return e;let t=k.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},S.basename=function(e){return k.basename(e.path)},S.extname=function(e){return k.extname(e.path)}})(),Vo=r})();const{URI:qo,Utils:Xo}=Vo;var Qo,Jo,Zo,el;(Jo=Qo||(Qo={})).basename=Xo.basename,Jo.dirname=Xo.dirname,Jo.extname=Xo.extname,Jo.joinPath=Xo.joinPath,Jo.resolvePath=Xo.resolvePath,Jo.equals=function(e,t){return(null==e?void 0:e.toString())===(null==t?void 0:t.toString())},Jo.relative=function(e,t){const n="string"==typeof e?e:e.path,r="string"==typeof t?t:t.path,i=n.split("/").filter((e=>e.length>0)),s=r.split("/").filter((e=>e.length>0));let a=0;for(;a<i.length&&i[a]===s[a];a++);return"../".repeat(i.length-a)+s.slice(a).join("/")},Jo.normalize=function(e){return qo.parse(e.toString()).toString()},(el=Zo||(Zo={}))[el.Changed=0]="Changed",el[el.Parsed=1]="Parsed",el[el.IndexedContent=2]="IndexedContent",el[el.ComputedScopes=3]="ComputedScopes",el[el.Linked=4]="Linked",el[el.IndexedReferences=5]="IndexedReferences",el[el.Validated=6]="Validated";class tl{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=bo.CancellationToken.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=null!=t?t:qo.parse(e.uri),bo.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return bo.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,n){if("string"==typeof t){const r=this.parse(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}if("$model"in t){const n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}{const r=this.parse(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,n){if("string"==typeof t){const r=await this.parseAsync(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}{const r=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}createLangiumDocument(e,t,n,r){let i;if(n)i={parseResult:e,uri:t,state:Zo.Parsed,references:[],textDocument:n};else{const n=this.createTextDocumentGetter(t,r);i={parseResult:e,uri:t,state:Zo.Parsed,references:[],get textDocument(){return n()}}}return e.value.$document=i,i}async update(e,t){var n,r;const i=null===(n=e.parseResult.value.$cstNode)||void 0===n?void 0:n.root.fullText,s=null===(r=this.textDocuments)||void 0===r?void 0:r.get(e.uri.toString()),a=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{const t=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:t})}return i!==a&&(e.parseResult=await this.parseAsync(e.uri,a,t),e.parseResult.value.$document=e),e.state=Zo.Parsed,e}parse(e,t,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,n)}parseAsync(e,t,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){const n=this.serviceRegistry;let r;return()=>null!=r?r:r=Bo.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,null!=t?t:"")}}class nl{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return Qe(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then((e=>(this.addDocument(e),e)));{const n=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(n),n}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),n=this.documentMap.get(t);if(n){this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=Zo.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0}return n}deleteDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=Zo.Changed,this.documentMap.delete(t)),n}}const rl=Symbol("ref_resolving");class il{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=bo.CancellationToken.None){for(const n of $n(e.parseResult.value))await Uo(t),Sn(n).forEach((t=>this.doLink(t,e)))}doLink(e,t){var n;const r=e.reference;if(void 0===r._ref){r._ref=rl;try{const t=this.getCandidate(e);if(Be(t))r._ref=t;else if(r._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){const n=this.loadAstNode(t);r._ref=null!=n?n:this.createLinkingError(e,t)}else r._ref=void 0}catch(i){console.error(`An error occurred while resolving reference to '${r.$refText}':`,i);const t=null!==(n=i.message)&&void 0!==n?n:String(i);r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${t}`})}t.references.push(r)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const t=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return null!=t?t:this.createLinkingError(e)}buildReference(e,t,n,r){const i=this,s={$refNode:n,$refText:r,get ref(){var n,a;if(Ge(this._ref))return this._ref;if("object"==typeof(a=this._nodeDescription)&&null!==a&&"string"==typeof a.name&&"string"==typeof a.type&&"string"==typeof a.path){const n=i.loadAstNode(this._nodeDescription);this._ref=null!=n?n:i.createLinkingError({reference:s,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=rl;const r=En(e).$document,a=i.getLinkedNode({reference:s,container:e,property:t});if(a.error&&r&&r.state<Zo.ComputedScopes)return this._ref=void 0;this._ref=null!==(n=a.node)&&void 0!==n?n:a.error,this._nodeDescription=a.descr,null==r||r.references.push(this)}else if(this._ref===rl)throw new Error(`Cyclic reference resolution detected: ${i.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`);return Ge(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return Be(this._ref)?this._ref:void 0}};return s}getLinkedNode(e){var t;try{const t=this.getCandidate(e);if(Be(t))return{error:t};const n=this.loadAstNode(t);return n?{node:n,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);const r=null!==(t=n.message)&&void 0!==t?t:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${r}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);return t?this.astNodeLocator.getAstNode(t.parseResult.value,e.path):void 0}createLinkingError(e,t){const n=En(e.container).$document;n&&n.state<Zo.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);const r=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${r} named '${e.reference.$refText}'.`,targetDescription:t})}}class sl{getName(e){if(function(e){return"string"==typeof e.name}(e))return e.name}getNameNode(e){return Qn(e.$cstNode,"name")}}class al{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=function(e){var t;const n=e.astNode;for(;n===(null===(t=e.container)||void 0===t?void 0:t.astNode);){const t=vn(e.grammarSource,Xt);if(t)return t;e=e.container}}(e),n=e.astNode;if(t&&n){const r=n[t.feature];if(Fe(r))return r.ref;if(Array.isArray(r))for(const t of r)if(Fe(t)&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return t.ref}if(n){const t=this.nameProvider.getNameNode(n);if(t&&(t===e||function(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}(e,t)))return n}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(null==t?void 0:t.$cstNode){const e=this.nameProvider.getNameNode(t);return null!=e?e:t.$cstNode}}findReferences(e,t){const n=[];if(t.includeDeclaration){const t=this.getReferenceToSelf(e);t&&n.push(t)}let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(r=r.filter((e=>Qo.equals(e.sourceUri,t.documentUri)))),n.push(...r),Qe(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=Rn(e),r=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:r,targetUri:n.uri,targetPath:r,segment:st(t),local:!0}}}}class ol{constructor(e){if(this.map=new Map,e)for(const[t,n]of e)this.add(t,n)}get size(){return Ze.sum(Qe(this.map.values()).map((e=>e.length)))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{const n=this.map.get(e);if(n){const r=n.indexOf(t);if(r>=0)return 1===n.length?this.map.delete(e):n.splice(r,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{const n=this.map.get(e);return!!n&&n.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach(((t,n)=>t.forEach((t=>e(t,n,this)))))}[Symbol.iterator](){return this.entries().iterator()}entries(){return Qe(this.map.entries()).flatMap((([e,t])=>t.map((t=>[e,t]))))}keys(){return Qe(this.map.keys())}values(){return Qe(this.map.values()).flat()}entriesGroupedByKey(){return Qe(this.map.entries())}}class ll{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}}class cl{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=bo.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=An,r=bo.CancellationToken.None){const i=[];this.exportNode(e,i,t);for(const s of n(e))await Uo(r),this.exportNode(s,i,t);return i}exportNode(e,t,n){const r=this.nameProvider.getName(e);r&&t.push(this.descriptions.createDescription(e,r,n))}async computeLocalScopes(e,t=bo.CancellationToken.None){const n=e.parseResult.value,r=new ol;for(const i of kn(n))await Uo(t),this.processNode(i,e,r);return r}processNode(e,t,n){const r=e.$container;if(r){const i=this.nameProvider.getName(e);i&&n.add(r,this.descriptions.createDescription(e,i,t))}}}class ul{constructor(e,t,n){var r;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find((t=>t.name.toLowerCase()===e.toLowerCase())):this.elements.find((t=>t.name===e));return t||(this.outerScope?this.outerScope.getElement(e):void 0)}}class dl{constructor(e,t,n){var r;this.elements=new Map,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r;for(const i of e){const e=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.set(e,i)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(t);return n||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=Qe(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class hl{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 pl extends hl{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const n=t();return this.cache.set(e,n),n}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class fl extends hl{constructor(e){super(),this.cache=new Map,this.converter=null!=e?e:e=>e}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();const r=this.cacheForContext(e);if(r.has(t))return r.get(t);if(n){const e=n();return r.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}}class ml extends pl{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,(()=>{this.clear()}))),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(((e,t)=>{t.length>0&&this.clear()})))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((()=>{this.clear()})))}}class gl{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 ml(e.shared)}getScope(e){const t=[],n=this.reflection.getReferenceType(e),r=Rn(e.container).precomputedScopes;if(r){let i=e.container;do{const e=r.get(i);e.length>0&&t.push(Qe(e).filter((e=>this.reflection.isSubtype(e.type,n)))),i=i.$container}while(i)}let i=this.getGlobalScope(n,e);for(let s=t.length-1;s>=0;s--)i=this.createScope(t[s],i);return i}createScope(e,t,n){return new ul(Qe(e),t,n)}createScopeForNodes(e,t,n){const r=Qe(e).map((e=>{const t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)})).nonNullable();return new ul(r,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,(()=>new dl(this.indexManager.allElements(e))))}}function yl(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}class Tl{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const n=null!=t?t:{},r=null==t?void 0:t.replacer,i=(e,t)=>this.replacer(e,t,n),s=r?(e,t)=>r(e,t,i):i;try{return this.currentDocument=Rn(e),JSON.stringify(e,s,null==t?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const n=null!=t?t:{},r=JSON.parse(e);return this.linkNode(r,r,n),r}replacer(e,t,{refText:n,sourceText:r,textRegions:i,comments:s,uriConverter:a}){var o,l,c,u;if(!this.ignoreProperties.has(e)){if(Fe(t)){const e=t.ref,r=n?t.$refText:void 0;if(e){const n=Rn(e);let i="";this.currentDocument&&this.currentDocument!==n&&(i=a?a(n.uri,t):n.uri.toString());return{$ref:`${i}#${this.astNodeLocator.getAstNodePath(e)}`,$refText:r}}return{$error:null!==(l=null===(o=t.error)||void 0===o?void 0:o.message)&&void 0!==l?l:"Could not resolve reference",$refText:r}}if(Ge(t)){let n;if(i&&(n=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),e&&!t.$document||!(null==n?void 0:n.$textRegion)||(n.$textRegion.documentURI=null===(c=this.currentDocument)||void 0===c?void 0:c.uri.toString())),r&&!e&&(null!=n||(n=Object.assign({},t)),n.$sourceText=null===(u=t.$cstNode)||void 0===u?void 0:u.text),s){null!=n||(n=Object.assign({},t));const e=this.commentProvider.getComment(t);e&&(n.$comment=e.replace(/\r/g,""))}return null!=n?n:t}return t}}addAstNodeRegionWithAssignmentsTo(e){const t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){const n=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter((e=>!e.startsWith("$"))).forEach((r=>{const i=function(e,t){return e&&t?Jn(e,t,e.astNode,!0):[]}(e.$cstNode,r).map(t);0!==i.length&&(n[r]=i)})),e}}linkNode(e,t,n,r,i,s){for(const[o,l]of Object.entries(e))if(Array.isArray(l))for(let r=0;r<l.length;r++){const i=l[r];yl(i)?l[r]=this.reviveReference(e,o,t,i,n):Ge(i)&&this.linkNode(i,t,n,e,o,r)}else yl(l)?e[o]=this.reviveReference(e,o,t,l,n):Ge(l)&&this.linkNode(l,t,n,e,o);const a=e;a.$container=r,a.$containerProperty=i,a.$containerIndex=s}reviveReference(e,t,n,r,i){let s=r.$refText,a=r.$error;if(r.$ref){const e=this.getRefNode(n,r.$ref,i.uriConverter);if(Ge(e))return s||(s=this.nameProvider.getName(e)),{$refText:null!=s?s:"",ref:e};a=e}if(a){const n={$refText:null!=s?s:""};return n.error={container:e,property:t,message:a,reference:n},n}}getRefNode(e,t,n){try{const r=t.indexOf("#");if(0===r){const n=this.astNodeLocator.getAstNode(e,t.substring(1));return n||"Could not resolve path: "+t}if(r<0){const e=n?n(t):qo.parse(t),r=this.langiumDocuments.getDocument(e);return r?r.parseResult.value:"Could not find document for URI: "+t}const i=n?n(t.substring(0,r)):qo.parse(t.substring(0,r)),s=this.langiumDocuments.getDocument(i);if(!s)return"Could not find document for URI: "+t;if(r===t.length-1)return s.parseResult.value;const a=this.astNodeLocator.getAstNode(s.parseResult.value,t.substring(r+1));return a||"Could not resolve URI: "+t}catch(r){return String(r)}}}class vl{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=null==e?void 0:e.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const n of t.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(n,e);this.languageIdMap.set(t.languageId,e),1===this.languageIdMap.size?this.singleton=e:this.singleton=void 0}getServices(e){var t,n;if(void 0!==this.singleton)return this.singleton;if(0===this.languageIdMap.size)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const r=null===(n=null===(t=this.textDocuments)||void 0===t?void 0:t.get(e))||void 0===n?void 0:n.languageId;if(void 0!==r){const e=this.languageIdMap.get(r);if(e)return e}const i=Qo.extname(e),s=this.fileExtensionMap.get(i);if(!s)throw r?new Error(`The service registry contains no services for the extension '${i}' for language '${r}'.`):new Error(`The service registry contains no services for the extension '${i}'.`);return s}hasServices(e){try{return this.getServices(e),!0}catch(t){return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Rl(e){return{code:e}}var El,Al,kl;(El||(El={})).all=["fast","slow","built-in"];class $l{constructor(e){this.entries=new ol,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,n="fast"){if("built-in"===n)throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[r,i]of Object.entries(e)){const e=i;if(Array.isArray(e))for(const i of e){const e={check:this.wrapValidationException(i,t),category:n};this.addEntry(r,e)}else if("function"==typeof e){const i={check:this.wrapValidationException(e,t),category:n};this.addEntry(r,i)}else ut()}}wrapValidationException(e,t){return async(n,r,i)=>{await this.handleException((()=>e.call(t,n,r,i)),"An error occurred during validation",r,n)}}async handleException(e,t,n,r){try{await e()}catch(i){if(Do(i))throw i;console.error(`${t}:`,i),i instanceof Error&&i.stack&&console.error(i.stack);n("error",`${t}: ${i instanceof Error?i.message:String(i)}`,{node:r})}}addEntry(e,t){if("AstNode"!==e)for(const n of this.reflection.getAllSubTypes(e))this.entries.add(n,t);else this.entries.add("AstNode",t)}getChecks(e,t){let n=Qe(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter((e=>t.includes(e.category)))),n.map((e=>e.check))}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,n){return async(r,i,s,a)=>{await this.handleException((()=>e.call(n,r,i,s,a)),t,i,r)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class xl{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=bo.CancellationToken.None){const r=e.parseResult,i=[];if(await Uo(n),!t.categories||t.categories.includes("built-in")){if(this.processLexingErrors(r,i,t),t.stopAfterLexingErrors&&i.some((e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Al.LexingError})))return i;if(this.processParsingErrors(r,i,t),t.stopAfterParsingErrors&&i.some((e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Al.ParsingError})))return i;if(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some((e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Al.LinkingError})))return i}try{i.push(...await this.validateAst(r.value,t,n))}catch(s){if(Do(s))throw s;console.error("An error occurred during validation:",s)}return await Uo(n),i}processLexingErrors(e,t,n){var r,i,s;const a=[...e.lexerErrors,...null!==(i=null===(r=e.lexerReport)||void 0===r?void 0:r.diagnostics)&&void 0!==i?i:[]];for(const o of a){const e=null!==(s=o.severity)&&void 0!==s?s:"error",n={severity:Il(e),range:{start:{line:o.line-1,character:o.column-1},end:{line:o.line-1,character:o.column+o.length-1}},message:o.message,data:Nl(e),source:this.getSource()};t.push(n)}}processParsingErrors(e,t,n){for(const r of e.parserErrors){let e;if(isNaN(r.token.startOffset)){if("previousToken"in r){const t=r.previousToken;if(isNaN(t.startOffset)){const t={line:0,character:0};e={start:t,end:t}}else{const n={line:t.endLine-1,character:t.endColumn};e={start:n,end:n}}}}else e=it(r.token);if(e){const n={severity:Il("error"),range:e,message:r.message,data:Rl(Al.ParsingError),source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,n){for(const r of e.references){const e=r.error;if(e){const n={node:e.container,property:e.property,index:e.index,data:{code:Al.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,n=bo.CancellationToken.None){const r=[],i=(e,t,n)=>{r.push(this.toDiagnostic(e,t,n))};return await this.validateAstBefore(e,t,i,n),await this.validateAstNodes(e,t,i,n),await this.validateAstAfter(e,t,i,n),r}async validateAstBefore(e,t,n,r=bo.CancellationToken.None){var i;const s=this.validationRegistry.checksBefore;for(const a of s)await Uo(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}async validateAstNodes(e,t,n,r=bo.CancellationToken.None){await Promise.all($n(e).map((async e=>{await Uo(r);const i=this.validationRegistry.getChecks(e.$type,t.categories);for(const t of i)await t(e,n,r)})))}async validateAstAfter(e,t,n,r=bo.CancellationToken.None){var i;const s=this.validationRegistry.checksAfter;for(const a of s)await Uo(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}toDiagnostic(e,t,n){return{message:t,range:Sl(n),severity:Il(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function Sl(e){if(e.range)return e.range;let t;return"string"==typeof e.property?t=Qn(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=Zn(e.node.$cstNode,e.keyword,e.index)),null!=t||(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Il(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function Nl(e){switch(e){case"error":return Rl(Al.LexingError);case"warning":return Rl(Al.LexingWarning);case"info":return Rl(Al.LexingInfo);case"hint":return Rl(Al.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}(kl=Al||(Al={})).LexingError="lexing-error",kl.LexingWarning="lexing-warning",kl.LexingInfo="lexing-info",kl.LexingHint="lexing-hint",kl.ParsingError="parsing-error",kl.LinkingError="linking-error";class Cl{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const r=null!=n?n:Rn(e);null!=t||(t=this.nameProvider.getName(e));const i=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${i} has no name.`);let s;const a=()=>{var t;return null!=s?s:s=st(null!==(t=this.nameProvider.getNameNode(e))&&void 0!==t?t:e.$cstNode)};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:st(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class wl{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=bo.CancellationToken.None){const n=[],r=e.parseResult.value;for(const i of $n(r))await Uo(t),Sn(i).filter((e=>!Be(e))).forEach((e=>{const t=this.createDescription(e);t&&n.push(t)}));return n}createDescription(e){const t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;const r=Rn(e.container).uri;return{sourceUri:r,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:st(n),local:Qo.equals(t.documentUri,r)}}}class Ll{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce(((e,t)=>{if(!e||0===t.length)return e;const n=t.indexOf(this.indexSeparator);if(n>0){const r=t.substring(0,n),i=parseInt(t.substring(n+1)),s=e[r];return null==s?void 0:s[i]}return e[t]}),e)}}var Ol,_l=j();class bl{constructor(e){this._ready=new Go,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new _l.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=null!==(n=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==n&&n}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map((e=>this.toSectionName(e.LanguageMetaData.languageId)))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map((e=>({section:this.toSectionName(e.LanguageMetaData.languageId)}))),n=await e.fetchConfiguration(t);t.forEach(((e,t)=>{this.updateSectionConfiguration(e.section,n[t])}))}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach((t=>{const n=e.settings[t];this.updateSectionConfiguration(t,n),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})}))}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}(Ol||(Ol={})).create=function(e){return{dispose:async()=>await e()}};class Pl{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new ol,this.documentPhaseListeners=new ol,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Zo.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=bo.CancellationToken.None){var r,i;for(const s of e){const e=s.uri.toString();if(s.state===Zo.Validated){if("boolean"==typeof t.validation&&t.validation)s.state=Zo.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){const n=this.buildState.get(e),a=null===(r=null==n?void 0:n.result)||void 0===r?void 0:r.validationChecks;if(a){const r=(null!==(i=t.validation.categories)&&void 0!==i?i:El.all).filter((e=>!a.includes(e)));r.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:r})},result:n.result}),s.state=Zo.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=Zo.Changed,await this.emitUpdate(e.map((e=>e.uri)),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=bo.CancellationToken.None){this.currentState=Zo.Changed;for(const s of t)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(const s of e){if(!this.langiumDocuments.invalidateDocument(s)){const e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);e.state=Zo.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(s.toString())}const r=Qe(e).concat(t).map((e=>e.toString())).toSet();this.langiumDocuments.all.filter((e=>!r.has(e.uri.toString())&&this.shouldRelink(e,r))).forEach((e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,Zo.ComputedScopes),e.diagnostics=void 0})),await this.emitUpdate(e,t),await Uo(n);const i=this.sortDocuments(this.langiumDocuments.all.filter((e=>{var t;return e.state<Zo.Linked||!(null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.completed)})).toArray());await this.buildDocuments(i,this.updateBuildOptions,n)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map((n=>n(e,t))))}sortDocuments(e){let t=0,n=e.length-1;for(;t<n;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;n>=0&&!this.hasTextDocument(e[n]);)n--;t<n&&([e[t],e[n]]=[e[n],e[t]])}return e}hasTextDocument(e){var t;return Boolean(null===(t=this.textDocuments)||void 0===t?void 0:t.get(e.uri))}shouldRelink(e,t){return!!e.references.some((e=>void 0!==e.error))||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Ol.create((()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)}))}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,Zo.Parsed,n,(e=>this.langiumDocumentFactory.update(e,n))),await this.runCancelable(e,Zo.IndexedContent,n,(e=>this.indexManager.updateContent(e,n))),await this.runCancelable(e,Zo.ComputedScopes,n,(async e=>{const t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,n)})),await this.runCancelable(e,Zo.Linked,n,(e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,n))),await this.runCancelable(e,Zo.IndexedReferences,n,(e=>this.indexManager.updateReferences(e,n)));const r=e.filter((e=>this.shouldValidate(e)));await this.runCancelable(r,Zo.Validated,n,(e=>this.validate(e,n)));for(const i of e){const e=this.buildState.get(i.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(const n of e){const e=n.uri.toString(),r=this.buildState.get(e);r&&!r.completed||this.buildState.set(e,{completed:!1,options:t,result:null==r?void 0:r.result})}}async runCancelable(e,t,n,r){const i=e.filter((e=>e.state<t));for(const a of i)await Uo(n),await r(a),a.state=t,await this.notifyDocumentPhase(a,t,n);const s=e.filter((e=>e.state===t));await this.notifyBuildPhase(s,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Ol.create((()=>{this.buildPhaseListeners.delete(e,t)}))}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Ol.create((()=>{this.documentPhaseListeners.delete(e,t)}))}waitUntil(e,t,n){let r;if(t&&"path"in t?r=t:n=t,null!=n||(n=bo.CancellationToken.None),r){const t=this.langiumDocuments.getDocument(r);if(t&&t.state>e)return Promise.resolve(r)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(Mo):new Promise(((t,i)=>{const s=this.onBuildPhase(e,(()=>{if(s.dispose(),a.dispose(),r){const e=this.langiumDocuments.getDocument(r);t(null==e?void 0:e.uri)}else t(void 0)})),a=n.onCancellationRequested((()=>{s.dispose(),a.dispose(),i(Mo)}))}))}async notifyDocumentPhase(e,t,n){const r=this.documentPhaseListeners.get(t).slice();for(const s of r)try{await s(e,n)}catch(i){if(!Do(i))throw i}}async notifyBuildPhase(e,t,n){if(0===e.length)return;const r=this.buildPhaseListeners.get(t).slice();for(const i of r)await Uo(n),await i(e,n)}shouldValidate(e){return Boolean(this.getBuildOptions(e).validation)}async validate(e,t){var n,r;const i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,a="object"==typeof s?s:void 0,o=await i.validateDocument(e,a,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;const l=this.buildState.get(e.uri.toString());if(l){null!==(n=l.result)&&void 0!==n||(l.result={});const e=null!==(r=null==a?void 0:a.categories)&&void 0!==r?r:El.all;l.result.validationChecks?l.result.validationChecks.push(...e):l.result.validationChecks=[...e]}}getBuildOptions(e){var t,n;return null!==(n=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==n?n:{}}}class Ml{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new fl,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const n=Rn(e).uri,r=[];return this.referenceIndex.forEach((e=>{e.forEach((e=>{Qo.equals(e.targetUri,n)&&e.targetPath===t&&r.push(e)}))})),Qe(r)}allElements(e,t){let n=Qe(this.symbolIndex.keys());return t&&(n=n.filter((e=>!t||t.has(e)))),n.map((t=>this.getFileDescriptions(t,e))).flat()}getFileDescriptions(e,t){var n;if(!t)return null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[];return this.symbolByTypeIndex.get(e,t,(()=>{var n;return(null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[]).filter((e=>this.astReflection.isSubtype(e.type,t)))}))}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=bo.CancellationToken.None){const n=this.serviceRegistry.getServices(e.uri),r=await n.references.ScopeComputation.computeExports(e,t),i=e.uri.toString();this.symbolIndex.set(i,r),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=bo.CancellationToken.None){const n=this.serviceRegistry.getServices(e.uri),r=await n.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),r)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());return!!n&&n.some((e=>!e.local&&t.has(e.targetUri.toString())))}}class Dl{constructor(e){this.initialBuildOptions={},this._ready=new Go,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=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write((e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)}))}async initializeWorkspace(e,t=bo.CancellationToken.None){const n=await this.performStartup(e);await Uo(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap((e=>e.LanguageMetaData.fileExtensions)),n=[],r=e=>{n.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,r),await Promise.all(e.map((e=>[e,this.getRootFolder(e)])).map((async e=>this.traverseFolder(...e,t,r)))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return qo.parse(e.uri)}async traverseFolder(e,t,n,r){const i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map((async t=>{if(this.includeEntry(e,t,n))if(t.isDirectory)await this.traverseFolder(e,t.uri,n,r);else if(t.isFile){const e=await this.langiumDocuments.getOrCreateDocument(t.uri);r(e)}})))}includeEntry(e,t,n){const r=Qo.basename(t.uri);if(r.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==r&&"out"!==r;if(t.isFile){const e=Qo.extname(t.uri);return n.includes(e)}return!1}}class Ul{buildUnexpectedCharactersMessage(e,t,n,r,i){return ki.buildUnexpectedCharactersMessage(e,t,n,r,i)}buildUnableToPopLexerModeMessage(e){return ki.buildUnableToPopLexerModeMessage(e)}}const Gl={mode:"full"};class Fl{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=Kl(t)?Object.values(t):t,r="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new Ii(n,{positionTracking:"full",skipValidations:r,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=Gl){var n,r,i;const s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:null!==(n=s.groups.hidden)&&void 0!==n?n:[],report:null===(i=(r=this.tokenBuilder).flushLexingReport)||void 0===i?void 0:i.call(r,e)}}toTokenTypeDictionary(e){if(Kl(e))return e;const t=Bl(e)?Object.values(e.modes).flat():e,n={};return t.forEach((e=>n[e.name]=e)),n}}function Bl(e){return e&&"modes"in e&&"defaultMode"in e}function Kl(e){return!function(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}(e)&&!Bl(e)}function Vl(e,t,n){let r,i;"string"==typeof e?(i=t,r=n):(i=e.range.start,r=t),i||(i=K.create(0,0));const s=function(e){var t,n,r;const i=[];let s=e.position.line,a=e.position.character;for(let o=0;o<e.lines.length;o++){const l=0===o,c=o===e.lines.length-1;let u=e.lines[o],d=0;if(l&&e.options.start){const n=null===(t=e.options.start)||void 0===t?void 0:t.exec(u);n&&(d=n.index+n[0].length)}else{const t=null===(n=e.options.line)||void 0===n?void 0:n.exec(u);t&&(d=t.index+t[0].length)}if(c){const t=null===(r=e.options.end)||void 0===r?void 0:r.exec(u);t&&(u=u.substring(0,t.index))}u=u.substring(0,Ql(u));if(Xl(u,d)>=u.length){if(i.length>0){const e=K.create(s,a);i.push({type:"break",content:"",range:H.create(e,e)})}}else{Hl.lastIndex=d;const e=Hl.exec(u);if(e){const t=e[0],n=e[1],r=K.create(s,a+d),o=K.create(s,a+d+t.length);i.push({type:"tag",content:n,range:H.create(r,o)}),d+=t.length,d=Xl(u,d)}if(d<u.length){const e=u.substring(d),t=Array.from(e.matchAll(Wl));i.push(...zl(t,e,s,a+d))}}s++,a=0}if(i.length>0&&"break"===i[i.length-1].type)return i.slice(0,-1);return i}({lines:jl(e),position:i,options:rc(r)});return function(e){var t,n,r,i;const s=K.create(e.position.line,e.position.character);if(0===e.tokens.length)return new sc([],H.create(s,s));const a=[];for(;e.index<e.tokens.length;){const t=Jl(e,a[a.length-1]);t&&a.push(t)}const o=null!==(n=null===(t=a[0])||void 0===t?void 0:t.range.start)&&void 0!==n?n:s,l=null!==(i=null===(r=a[a.length-1])||void 0===r?void 0:r.range.end)&&void 0!==i?i:s;return new sc(a,H.create(o,l))}({index:0,tokens:s,position:i})}function jl(e){let t="";t="string"==typeof e?e:e.text;return t.split(Bn)}const Hl=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Wl=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function zl(e,t,n,r){const i=[];if(0===e.length){const e=K.create(n,r),s=K.create(n,r+t.length);i.push({type:"text",content:t,range:H.create(e,s)})}else{let s=0;for(const o of e){const e=o.index,a=t.substring(s,e);a.length>0&&i.push({type:"text",content:t.substring(s,e),range:H.create(K.create(n,s+r),K.create(n,e+r))});let l=a.length+1;const c=o[1];if(i.push({type:"inline-tag",content:c,range:H.create(K.create(n,s+l+r),K.create(n,s+l+c.length+r))}),l+=c.length,4===o.length){l+=o[2].length;const e=o[3];i.push({type:"text",content:e,range:H.create(K.create(n,s+l+r),K.create(n,s+l+e.length+r))})}else i.push({type:"text",content:"",range:H.create(K.create(n,s+l+r),K.create(n,s+l+r))});s=e+o[0].length}const a=t.substring(s);a.length>0&&i.push({type:"text",content:a,range:H.create(K.create(n,s+r),K.create(n,s+r+a.length))})}return i}const Yl=/\S/,ql=/\s*$/;function Xl(e,t){const n=e.substring(t).match(Yl);return n?t+n.index:e.length}function Ql(e){const t=e.match(ql);if(t&&"number"==typeof t.index)return t.index}function Jl(e,t){const n=e.tokens[e.index];return"tag"===n.type?tc(e,!1):"text"===n.type||"inline-tag"===n.type?Zl(e):(function(e,t){if(t){const n=new lc("",e.range);"inlines"in t?t.inlines.push(n):t.content.inlines.push(n)}}(n,t),void e.index++)}function Zl(e){let t=e.tokens[e.index];const n=t;let r=t;const i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push(ec(e)),r=t,t=e.tokens[e.index];return new oc(i,H.create(n.range.start,r.range.end))}function ec(e){return"inline-tag"===e.tokens[e.index].type?tc(e,!0):nc(e)}function tc(e,t){const n=e.tokens[e.index++],r=n.content.substring(1),i=e.tokens[e.index];if("text"===(null==i?void 0:i.type)){if(t){const i=nc(e);return new ac(r,new oc([i],i.range),t,H.create(n.range.start,i.range.end))}{const i=Zl(e);return new ac(r,i,t,H.create(n.range.start,i.range.end))}}{const e=n.range;return new ac(r,new oc([],e),t,e)}}function nc(e){const t=e.tokens[e.index++];return new lc(t.content,t.range)}function rc(e){if(!e)return rc({start:"/**",end:"*/",line:"*"});const{start:t,end:n,line:r}=e;return{start:ic(t,!0),end:ic(n,!1),line:ic(r,!0)}}function ic(e,t){if("string"==typeof e||"object"==typeof e){const n="string"==typeof e?zn(e):e.source;return t?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}return e}class sc{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(0===e.length)e=t.toString();else{const n=t.toString();e+=cc(e)+n}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements)if(0===t.length)t=n.toMarkdown(e);else{const r=n.toMarkdown(e);t+=cc(t)+r}return t.trim()}}class ac{constructor(e,t,n,r){this.name=e,this.content=t,this.inline=n,this.range=r}toString(){let e=`@${this.name}`;const t=this.content.toString();return 1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}\n${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return null!==(n=null===(t=null==e?void 0:e.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==n?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const n=function(e,t,n){var r,i;if("linkplain"===e||"linkcode"===e||"link"===e){const s=t.indexOf(" ");let a=t;if(s>0){const e=Xl(t,s);a=t.substring(e),t=t.substring(0,s)}("linkcode"===e||"link"===e&&"code"===n.link)&&(a=`\`${a}\``);const o=null!==(i=null===(r=n.renderLink)||void 0===r?void 0:r.call(n,t,a))&&void 0!==i?i:function(e,t){try{return qo.parse(e,!0),`[${t}](${e})`}catch(r){return e}}(t,a);return o}return}(this.name,t,null!=e?e:{});if("string"==typeof n)return n}let n="";"italic"===(null==e?void 0:e.tag)||void 0===(null==e?void 0:e.tag)?n="*":"bold"===(null==e?void 0:e.tag)?n="**":"bold-italic"===(null==e?void 0:e.tag)&&(n="***");let r=`${n}@${this.name}${n}`;return 1===this.content.inlines.length?r=`${r} — ${t}`:this.content.inlines.length>1&&(r=`${r}\n${t}`),this.inline?`{${r}}`:r}}class oc{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const n=this.inlines[t],r=this.inlines[t+1];e+=n.toString(),r&&r.range.start.line>n.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let n=0;n<this.inlines.length;n++){const r=this.inlines[n],i=this.inlines[n+1];t+=r.toMarkdown(e),i&&i.range.start.line>r.range.start.line&&(t+="\n")}return t}}class lc{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function cc(e){return e.endsWith("\n")?"\n":"\n\n"}class uc{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&function(e,t){const n=rc(t),r=jl(e);if(0===r.length)return!1;const i=r[0],s=r[r.length-1],a=n.start,o=n.end;return Boolean(null==a?void 0:a.exec(i))&&Boolean(null==o?void 0:o.exec(s))}(t)){return Vl(t).toMarkdown({renderLink:(t,n)=>this.documentationLinkRenderer(e,t,n),renderTag:t=>this.documentationTagRenderer(e,t)})}}documentationLinkRenderer(e,t,n){var r;const i=null!==(r=this.findNameInPrecomputedScopes(e,t))&&void 0!==r?r:this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){const e=i.nameSegment.range.start.line+1,t=i.nameSegment.range.start.character+1;return`[${n}](${i.documentUri.with({fragment:`L${e},${t}`}).toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const n=Rn(e).precomputedScopes;if(!n)return;let r=e;do{const e=n.get(r).find((e=>e.name===t));if(e)return e;r=r.$container}while(r)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find((e=>e.name===t))}}class dc{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return function(e){return"string"==typeof e.$comment}(e)?e.$comment:null===(t=function(e,t){if(e){const n=function(e,t=!0){for(;e.container;){const n=e.container;let r=n.content.indexOf(e);for(;r>0;){r--;const e=n.content[r];if(t||!e.hidden)return e}e=n}}(e,!0);if(n&<(n,t))return n;if(He(e))for(let r=e.content.findIndex((e=>!e.hidden))-1;r>=0;r--){const n=e.content[r];if(lt(n,t))return n}}}(e.$cstNode,this.grammarConfig().multilineCommentRules))||void 0===t?void 0:t.text}}class hc{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class pc{constructor(){this.previousTokenSource=new bo.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=(Po=performance.now(),new bo.CancellationTokenSource);return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=bo.CancellationToken.None){const r=new Go,i={action:t,deferred:r,cancellationToken:n};return e.push(i),this.performNextOperation(),r.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map((async({action:e,deferred:t,cancellationToken:n})=>{try{const r=await Promise.resolve().then((()=>e(n)));t.resolve(r)}catch(r){Do(r)?t.resolve(void 0):t.reject(r)}}))),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class fc{constructor(e){this.grammarElementIdMap=new ll,this.tokenTypeIdMap=new ll,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map((e=>Object.assign(Object.assign({},e),{message:e.message}))),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,n=new Map;for(const r of $n(e))t.set(r,{});if(e.$cstNode)for(const r of rt(e.$cstNode))n.set(r,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[r,i]of Object.entries(e))if(!r.startsWith("$"))if(Array.isArray(i)){const e=[];n[r]=e;for(const n of i)Ge(n)?e.push(this.dehydrateAstNode(n,t)):Fe(n)?e.push(this.dehydrateReference(n,t)):e.push(n)}else Ge(i)?n[r]=this.dehydrateAstNode(i,t):Fe(i)?n[r]=this.dehydrateReference(i,t):void 0!==i&&(n[r]=i);return n}dehydrateReference(e,t){const n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){const n=t.cstNodes.get(e);return He(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),Ve(e)?n.content=e.content.map((e=>this.dehydrateCstNode(e,t))):je(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){const t=e.value,n=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){const t=new Map,n=new Map;for(const i of $n(e))t.set(i,{});let r;if(e.$cstNode)for(const i of rt(e.$cstNode)){let e;"fullText"in i?(e=new uo(i.fullText),r=e):"content"in i?e=new lo:"tokenType"in i&&(e=this.hydrateCstLeafNode(i)),e&&(n.set(i,e),e.root=r)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=t.cstNodes.get(e.$cstNode));for(const[r,i]of Object.entries(e))if(!r.startsWith("$"))if(Array.isArray(i)){const e=[];n[r]=e;for(const s of i)Ge(s)?e.push(this.setParent(this.hydrateAstNode(s,t),n)):Fe(s)?e.push(this.hydrateReference(s,n,r,t)):e.push(s)}else Ge(i)?n[r]=this.setParent(this.hydrateAstNode(i,t),n):Fe(i)?n[r]=this.hydrateReference(i,n,r,t):void 0!==i&&(n[r]=i);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,r){return this.linker.buildReference(t,n,r.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){const r=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(r.grammarSource=this.getGrammarElement(e.grammarSource)),r.astNode=t.astNodes.get(e.astNode),Ve(r))for(const i of e.content){const e=this.hydrateCstNode(i,t,n++);r.content.push(e)}return r}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),n=e.offset,r=e.length,i=e.startLine,s=e.startColumn,a=e.endLine,o=e.endColumn,l=e.hidden;return new oo(n,r,{start:{line:i,character:s},end:{line:a,character:o}},t,l)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap();return this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const n of $n(this.grammar))t=n,Tn.isInstance(t,gt)&&this.grammarElementIdMap.set(n,e++);var t}}function mc(e){return{documentation:{CommentProvider:e=>new dc(e),DocumentationProvider:e=>new uc(e)},parser:{AsyncParser:e=>new hc(e),GrammarConfig:e=>function(e){const t=[],n=e.Grammar;for(const i of n.rules)Ft(i)&&(r=i).hidden&&!Wn(ar(r))&&jn(ar(i))&&t.push(i.name);var r;return{multilineCommentRules:t,nameRegexp:ot}}(e),LangiumParser:e=>wo(e),CompletionParser:e=>function(e){const t=e.Grammar,n=e.parser.Lexer,r=new vo(e);return Ao(t,r,n.definition),r.finalize(),r}(e),ValueConverter:()=>new Oo,TokenBuilder:()=>new Lo,Lexer:e=>new Fl(e),ParserErrorMessageProvider:()=>new To,LexerErrorMessageProvider:()=>new Ul},workspace:{AstNodeLocator:()=>new Ll,AstNodeDescriptionProvider:e=>new Cl(e),ReferenceDescriptionProvider:e=>new wl(e)},references:{Linker:e=>new il(e),NameProvider:()=>new sl,ScopeProvider:e=>new gl(e),ScopeComputation:e=>new cl(e),References:e=>new al(e)},serializer:{Hydrator:e=>new fc(e),JsonSerializer:e=>new Tl(e)},validation:{DocumentValidator:e=>new xl(e),ValidationRegistry:e=>new $l(e)},shared:()=>e.shared}}function gc(e){return{ServiceRegistry:e=>new vl(e),workspace:{LangiumDocuments:e=>new nl(e),LangiumDocumentFactory:e=>new tl(e),DocumentBuilder:e=>new Pl(e),IndexManager:e=>new Ml(e),WorkspaceManager:e=>new Dl(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new pc,ConfigurationProvider:e=>new bl(e)}}}var yc;function Tc(e,t,n,r,i,s,a,o,l){return Rc([e,t,n,r,i,s,a,o,l].reduce(kc,{}))}(yc||(yc={})).merge=(e,t)=>kc(kc({},e),t);const vc=Symbol("isProxy");function Rc(e,t){const n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===vc||Ac(r,i,e,t||n),getOwnPropertyDescriptor:(r,i)=>(Ac(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(t,n)=>n in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}const Ec=Symbol();function Ac(e,t,n,r){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===Ec)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in n){const s=n[t];e[t]=Ec;try{e[t]="function"==typeof s?s(r):Rc(s,r)}catch(i){throw e[t]=i instanceof Error?i:void 0,i}return e[t]}}function kc(e,t){if(t)for(const[n,r]of Object.entries(t))if(void 0!==r){const t=e[n];e[n]=null!==t&&null!==r&&"object"==typeof t&&"object"==typeof r?kc(t,r):r}return e}class $c{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const xc={fileSystemProvider:()=>new $c},Sc={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Ic={AstReflection:()=>new yn};function Nc(e){var t;const n=function(){const e=Tc(gc(xc),Ic),t=Tc(mc({shared:e}),Sc);return e.ServiceRegistry.register(t),t}(),r=n.serializer.JsonSerializer.deserialize(e);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,qo.parse(`memory://${null!==(t=r.name)&&void 0!==t?t:"grammar"}.langium`)),r}var Cc=Object.defineProperty,wc=(e,t)=>Cc(e,"name",{value:t,configurable:!0}),Lc="Statement",Oc="Architecture";wc((function(e){return lu.isInstance(e,Oc)}),"isArchitecture");var _c="Axis",bc="Branch";wc((function(e){return lu.isInstance(e,bc)}),"isBranch");var Pc="Checkout",Mc="CherryPicking",Dc="Commit";wc((function(e){return lu.isInstance(e,Dc)}),"isCommit");var Uc="Common";wc((function(e){return lu.isInstance(e,Uc)}),"isCommon");var Gc="Curve",Fc="Edge",Bc="Entry",Kc="GitGraph";wc((function(e){return lu.isInstance(e,Kc)}),"isGitGraph");var Vc="Group",jc="Info";wc((function(e){return lu.isInstance(e,jc)}),"isInfo");var Hc="Junction",Wc="Merge";wc((function(e){return lu.isInstance(e,Wc)}),"isMerge");var zc="Option",Yc="Packet";wc((function(e){return lu.isInstance(e,Yc)}),"isPacket");var qc="PacketBlock";wc((function(e){return lu.isInstance(e,qc)}),"isPacketBlock");var Xc="Pie";wc((function(e){return lu.isInstance(e,Xc)}),"isPie");var Qc="PieSection";wc((function(e){return lu.isInstance(e,Qc)}),"isPieSection");var Jc,Zc,eu,tu,nu,ru,iu="Radar",su="Service",au="Direction",ou=(wc(e=class extends Ke{getAllTypes(){return[Oc,_c,bc,Pc,Mc,Dc,Uc,Gc,au,Fc,Bc,Kc,Vc,jc,Hc,Wc,zc,Yc,qc,Xc,Qc,iu,su,Lc]}computeIsSubtype(e,t){switch(e){case bc:case Pc:case Mc:case Dc:case Wc:return this.isSubtype(Lc,t);case au:return this.isSubtype(Kc,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if("Entry:axis"===t)return _c;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case Oc:return{name:Oc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case _c:return{name:_c,properties:[{name:"label"},{name:"name"}]};case bc:return{name:bc,properties:[{name:"name"},{name:"order"}]};case Pc:return{name:Pc,properties:[{name:"branch"}]};case Mc:return{name:Mc,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Dc:return{name:Dc,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Uc:return{name:Uc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case Gc:return{name:Gc,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Fc:return{name:Fc,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 Bc:return{name:Bc,properties:[{name:"axis"},{name:"value"}]};case Kc:return{name:Kc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case Vc:return{name:Vc,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case jc:return{name:jc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case Hc:return{name:Hc,properties:[{name:"id"},{name:"in"}]};case Wc:return{name:Wc,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case zc:return{name:zc,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case Yc:return{name:Yc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case qc:return{name:qc,properties:[{name:"end"},{name:"label"},{name:"start"}]};case Xc:return{name:Xc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case Qc:return{name:Qc,properties:[{name:"label"},{name:"value"}]};case iu:return{name:iu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case su:return{name:su,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case au:return{name:au,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},"MermaidAstReflection"),e),lu=new ou,cu=wc((()=>Jc??(Jc=Nc('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"InfoGrammar"),uu=wc((()=>Zc??(Zc=Nc('{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"PacketGrammar"),du=wc((()=>eu??(eu=Nc('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"PieGrammar"),hu=wc((()=>tu??(tu=Nc('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"ArchitectureGrammar"),pu=wc((()=>nu??(nu=Nc('{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}'))),"GitGraphGrammar"),fu=wc((()=>ru??(ru=Nc('{"$type":"Grammar","isDeclared":true,"name":"Radar","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@12"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@12"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9\\\\-_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}'))),"RadarGrammar"),mu={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},gu={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},yu={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Tu={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},vu={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ru={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eu={AstReflection:wc((()=>new ou),"AstReflection")},Au={Grammar:wc((()=>cu()),"Grammar"),LanguageMetaData:wc((()=>mu),"LanguageMetaData"),parser:{}},ku={Grammar:wc((()=>uu()),"Grammar"),LanguageMetaData:wc((()=>gu),"LanguageMetaData"),parser:{}},$u={Grammar:wc((()=>du()),"Grammar"),LanguageMetaData:wc((()=>yu),"LanguageMetaData"),parser:{}},xu={Grammar:wc((()=>hu()),"Grammar"),LanguageMetaData:wc((()=>Tu),"LanguageMetaData"),parser:{}},Su={Grammar:wc((()=>pu()),"Grammar"),LanguageMetaData:wc((()=>vu),"LanguageMetaData"),parser:{}},Iu={Grammar:wc((()=>fu()),"Grammar"),LanguageMetaData:wc((()=>Ru),"LanguageMetaData"),parser:{}},Nu={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},Cu=(wc(t=class extends Oo{runConverter(e,t,n){let r=this.runCommonConverter(e,t,n);return void 0===r&&(r=this.runCustomConverter(e,t,n)),void 0===r?super.runConverter(e,t,n):r}runCommonConverter(e,t,n){const r=Nu[e.name];if(void 0===r)return;const i=r.exec(t);return null!==i?void 0!==i[1]?i[1].trim().replace(/[\t ]{2,}/gm," "):void 0!==i[2]?i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n"):void 0:void 0}},"AbstractMermaidValueConverter"),t),wu=(wc(n=class extends Cu{runCustomConverter(e,t,n){}},"CommonValueConverter"),n),Lu=(wc(r=class extends Lo{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,n){const r=super.buildKeywordTokens(e,t,n);return r.forEach((e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=new RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))})),r}},"AbstractMermaidTokenBuilder"),r);wc(class extends Lu{},"CommonTokenBuilder");var Ou=(wc(i=class extends Lu{constructor(){super(["gitGraph"])}},"GitGraphTokenBuilder"),i),_u={parser:{TokenBuilder:wc((()=>new Ou),"TokenBuilder"),ValueConverter:wc((()=>new wu),"ValueConverter")}};function bu(e=xc){const t=Tc(gc(e),Eu),n=Tc(mc({shared:t}),Su,_u);return t.ServiceRegistry.register(n),{shared:t,GitGraph:n}}wc(bu,"createGitGraphServices");var Pu=(wc(s=class extends Lu{constructor(){super(["info","showInfo"])}},"InfoTokenBuilder"),s),Mu={parser:{TokenBuilder:wc((()=>new Pu),"TokenBuilder"),ValueConverter:wc((()=>new wu),"ValueConverter")}};function Du(e=xc){const t=Tc(gc(e),Eu),n=Tc(mc({shared:t}),Au,Mu);return t.ServiceRegistry.register(n),{shared:t,Info:n}}wc(Du,"createInfoServices");var Uu=(wc(a=class extends Lu{constructor(){super(["packet-beta"])}},"PacketTokenBuilder"),a),Gu={parser:{TokenBuilder:wc((()=>new Uu),"TokenBuilder"),ValueConverter:wc((()=>new wu),"ValueConverter")}};function Fu(e=xc){const t=Tc(gc(e),Eu),n=Tc(mc({shared:t}),ku,Gu);return t.ServiceRegistry.register(n),{shared:t,Packet:n}}wc(Fu,"createPacketServices");var Bu=(wc(o=class extends Lu{constructor(){super(["pie","showData"])}},"PieTokenBuilder"),o),Ku=(wc(l=class extends Cu{runCustomConverter(e,t,n){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},"PieValueConverter"),l),Vu={parser:{TokenBuilder:wc((()=>new Bu),"TokenBuilder"),ValueConverter:wc((()=>new Ku),"ValueConverter")}};function ju(e=xc){const t=Tc(gc(e),Eu),n=Tc(mc({shared:t}),$u,Vu);return t.ServiceRegistry.register(n),{shared:t,Pie:n}}wc(ju,"createPieServices");var Hu=(wc(c=class extends Lu{constructor(){super(["architecture"])}},"ArchitectureTokenBuilder"),c),Wu=(wc(u=class extends Cu{runCustomConverter(e,t,n){return"ARCH_ICON"===e.name?t.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===e.name?t.replace(/["()]/g,""):"ARCH_TITLE"===e.name?t.replace(/[[\]]/g,"").trim():void 0}},"ArchitectureValueConverter"),u),zu={parser:{TokenBuilder:wc((()=>new Hu),"TokenBuilder"),ValueConverter:wc((()=>new Wu),"ValueConverter")}};function Yu(e=xc){const t=Tc(gc(e),Eu),n=Tc(mc({shared:t}),xu,zu);return t.ServiceRegistry.register(n),{shared:t,Architecture:n}}wc(Yu,"createArchitectureServices");var qu=(wc(d=class extends Lu{constructor(){super(["radar-beta"])}},"RadarTokenBuilder"),d),Xu={parser:{TokenBuilder:wc((()=>new qu),"TokenBuilder"),ValueConverter:wc((()=>new wu),"ValueConverter")}};function Qu(e=xc){const t=Tc(gc(e),Eu),n=Tc(mc({shared:t}),Iu,Xu);return t.ServiceRegistry.register(n),{shared:t,Radar:n}}wc(Qu,"createRadarServices");var Ju={},Zu={info:wc((async()=>{const{createInfoServices:e}=await W((async()=>{const{createInfoServices:e}=await Promise.resolve().then((()=>nd));return{createInfoServices:e}}),void 0,import.meta.url),t=e().Info.parser.LangiumParser;Ju.info=t}),"info"),packet:wc((async()=>{const{createPacketServices:e}=await W((async()=>{const{createPacketServices:e}=await Promise.resolve().then((()=>rd));return{createPacketServices:e}}),void 0,import.meta.url),t=e().Packet.parser.LangiumParser;Ju.packet=t}),"packet"),pie:wc((async()=>{const{createPieServices:e}=await W((async()=>{const{createPieServices:e}=await Promise.resolve().then((()=>id));return{createPieServices:e}}),void 0,import.meta.url),t=e().Pie.parser.LangiumParser;Ju.pie=t}),"pie"),architecture:wc((async()=>{const{createArchitectureServices:e}=await W((async()=>{const{createArchitectureServices:e}=await Promise.resolve().then((()=>sd));return{createArchitectureServices:e}}),void 0,import.meta.url),t=e().Architecture.parser.LangiumParser;Ju.architecture=t}),"architecture"),gitGraph:wc((async()=>{const{createGitGraphServices:e}=await W((async()=>{const{createGitGraphServices:e}=await Promise.resolve().then((()=>ad));return{createGitGraphServices:e}}),void 0,import.meta.url),t=e().GitGraph.parser.LangiumParser;Ju.gitGraph=t}),"gitGraph"),radar:wc((async()=>{const{createRadarServices:e}=await W((async()=>{const{createRadarServices:e}=await Promise.resolve().then((()=>od));return{createRadarServices:e}}),void 0,import.meta.url),t=e().Radar.parser.LangiumParser;Ju.radar=t}),"radar")};async function ed(e,t){const n=Zu[e];if(!n)throw new Error(`Unknown diagram type: ${e}`);Ju[e]||await n();const r=Ju[e].parse(t);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new td(r);return r.value}wc(ed,"parse");var td=(wc(h=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map((e=>e.message)).join("\n")} ${e.parserErrors.map((e=>e.message)).join("\n")}`),this.result=e}},"MermaidParseError"),h);const nd=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:Mu,createInfoServices:Du},Symbol.toStringTag,{value:"Module"})),rd=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:Gu,createPacketServices:Fu},Symbol.toStringTag,{value:"Module"})),id=Object.freeze(Object.defineProperty({__proto__:null,PieModule:Vu,createPieServices:ju},Symbol.toStringTag,{value:"Module"})),sd=Object.freeze(Object.defineProperty({__proto__:null,ArchitectureModule:zu,createArchitectureServices:Yu},Symbol.toStringTag,{value:"Module"})),ad=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:_u,createGitGraphServices:bu},Symbol.toStringTag,{value:"Module"})),od=Object.freeze(Object.defineProperty({__proto__:null,RadarModule:Xu,createRadarServices:Qu},Symbol.toStringTag,{value:"Module"}));export{ed as p};
|