@sme.up/ketchup2 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/dist/{_basePickBy-DaYAjwaD.js → _basePickBy-DLc0xS6g.js} +43 -44
  2. package/dist/_basePickBy-hU15nnuu.cjs +1 -0
  3. package/dist/_baseUniq-Bn1jRtDY.js +614 -0
  4. package/dist/_baseUniq-v0HaTFyU.cjs +1 -0
  5. package/dist/{arc-iP-iR4iy.cjs → arc-BN7cLDvU.cjs} +1 -1
  6. package/dist/{arc-Cbowbc-5.js → arc-aCClK8cT.js} +1 -1
  7. package/dist/{architecture-U656AL7Q-CJqkeE6i.cjs → architecture-U656AL7Q-BlzcZYj0.cjs} +1 -1
  8. package/dist/{architecture-U656AL7Q-BT3xXsaU.js → architecture-U656AL7Q-CGK9HO5M.js} +1 -1
  9. package/dist/{architectureDiagram-VXUJARFQ-BnZiAhjd.js → architectureDiagram-VXUJARFQ-CDlmghav.js} +3 -3
  10. package/dist/{architectureDiagram-VXUJARFQ-D18f521a.cjs → architectureDiagram-VXUJARFQ-CxXB06ya.cjs} +1 -1
  11. package/dist/assets/imageListAssets.d.ts +14 -0
  12. package/dist/assets/imageListAssets.d.ts.map +1 -0
  13. package/dist/assets/layoutAssets.d.ts +1 -0
  14. package/dist/assets/layoutAssets.d.ts.map +1 -1
  15. package/dist/assets/svg/fullscreen_exit.svg +1 -0
  16. package/dist/assets/svg/remove.svg +1 -0
  17. package/dist/basic-components/autocomplete/autocomplete.d.ts.map +1 -1
  18. package/dist/basic-components/button/button-types.d.ts +4 -0
  19. package/dist/basic-components/button/button-types.d.ts.map +1 -1
  20. package/dist/basic-components/button-group/button-group.d.ts.map +1 -1
  21. package/dist/basic-components/cell/cell-types.d.ts +7 -6
  22. package/dist/basic-components/cell/cell-types.d.ts.map +1 -1
  23. package/dist/basic-components/cell/cell-utils.d.ts +8 -0
  24. package/dist/basic-components/cell/cell-utils.d.ts.map +1 -1
  25. package/dist/basic-components/cell/cell.d.ts.map +1 -1
  26. package/dist/basic-components/checkbox/checkbox.d.ts.map +1 -1
  27. package/dist/basic-components/icon/icon.d.ts.map +1 -1
  28. package/dist/basic-components/image/image-types.d.ts +58 -3
  29. package/dist/basic-components/image/image-types.d.ts.map +1 -1
  30. package/dist/basic-components/image/image-utils.d.ts +4 -1
  31. package/dist/basic-components/image/image-utils.d.ts.map +1 -1
  32. package/dist/basic-components/image/image.d.ts.map +1 -1
  33. package/dist/basic-components/image-cell/image-cell-types.d.ts +20 -0
  34. package/dist/basic-components/image-cell/image-cell-types.d.ts.map +1 -0
  35. package/dist/basic-components/image-cell/image-cell.d.ts +3 -0
  36. package/dist/basic-components/image-cell/image-cell.d.ts.map +1 -0
  37. package/dist/basic-components/input-number/input-number-types.d.ts +2 -1
  38. package/dist/basic-components/input-number/input-number-types.d.ts.map +1 -1
  39. package/dist/basic-components/input-number/input-number.d.ts.map +1 -1
  40. package/dist/basic-components/list/list-types.d.ts +1 -0
  41. package/dist/basic-components/list/list-types.d.ts.map +1 -1
  42. package/dist/basic-components/list/list.d.ts.map +1 -1
  43. package/dist/basic-components/multiple-select/multiple-select.d.ts.map +1 -1
  44. package/dist/basic-components/select/select.d.ts.map +1 -1
  45. package/dist/basic-components/slider/slider-types.d.ts +8 -0
  46. package/dist/basic-components/slider/slider-types.d.ts.map +1 -0
  47. package/dist/basic-components/slider/slider.d.ts +4 -0
  48. package/dist/basic-components/slider/slider.d.ts.map +1 -0
  49. package/dist/basic-components/text/text-types.d.ts +3 -0
  50. package/dist/basic-components/text/text-types.d.ts.map +1 -1
  51. package/dist/basic-components/text/text.d.ts.map +1 -1
  52. package/dist/basic-components/text-editor/text-editor-types.d.ts +0 -65
  53. package/dist/basic-components/text-editor/text-editor-types.d.ts.map +1 -1
  54. package/dist/basic-components/text-editor/text-editor-utils.d.ts +13 -23
  55. package/dist/basic-components/text-editor/text-editor-utils.d.ts.map +1 -1
  56. package/dist/basic-components/text-editor/text-editor.d.ts.map +1 -1
  57. package/dist/basic-components/textarea/textarea.d.ts.map +1 -1
  58. package/dist/basic-components/textfield/textfield.d.ts.map +1 -1
  59. package/dist/basic-components/time-picker/time-picker.d.ts.map +1 -1
  60. package/dist/basic-components/time-picker/time-utils.d.ts +1 -1
  61. package/dist/basic-components/time-picker/time-utils.d.ts.map +1 -1
  62. package/dist/{blockDiagram-VD42YOAC-B55mPKua.cjs → blockDiagram-VD42YOAC-DaEdiOdS.cjs} +1 -1
  63. package/dist/{blockDiagram-VD42YOAC-wDySglDu.js → blockDiagram-VD42YOAC-otiz2gnO.js} +5 -5
  64. package/dist/{c4Diagram-YG6GDRKO-DjBFG-JS.cjs → c4Diagram-YG6GDRKO-B_M0pXDI.cjs} +1 -1
  65. package/dist/{c4Diagram-YG6GDRKO-BC0Wpsyx.js → c4Diagram-YG6GDRKO-BqtunVbe.js} +2 -2
  66. package/dist/{channel-Dx9i3vCP.js → channel-B3xNo1hN.js} +1 -1
  67. package/dist/channel-BWzBcvC1.cjs +1 -0
  68. package/dist/{chunk-4BX2VUAB-OFih-SVK.js → chunk-4BX2VUAB-D0ckS2Js.js} +1 -1
  69. package/dist/{chunk-4BX2VUAB-BiIRR12o.cjs → chunk-4BX2VUAB-jQAMlkG5.cjs} +1 -1
  70. package/dist/{chunk-55IACEB6-Ci8lQrba.js → chunk-55IACEB6-4k6jNTPh.js} +1 -1
  71. package/dist/{chunk-55IACEB6-5cFwCu9G.cjs → chunk-55IACEB6-CYP5QeDP.cjs} +1 -1
  72. package/dist/{chunk-B4BG7PRW-Br09zvFH.cjs → chunk-B4BG7PRW-40wFwe2_.cjs} +1 -1
  73. package/dist/{chunk-B4BG7PRW-BKVozipd.js → chunk-B4BG7PRW-C5a0R2TF.js} +4 -4
  74. package/dist/{chunk-DI55MBZ5-BC6LLziw.cjs → chunk-DI55MBZ5-D46Nxv4C.cjs} +1 -1
  75. package/dist/{chunk-DI55MBZ5-2iIK9cGZ.js → chunk-DI55MBZ5-Xs_EvPU9.js} +3 -3
  76. package/dist/{chunk-FMBD7UC4-6IkqlaCK.cjs → chunk-FMBD7UC4-JwXIwsff.cjs} +1 -1
  77. package/dist/{chunk-FMBD7UC4-C5LdwLLI.js → chunk-FMBD7UC4-sbfIyVl_.js} +1 -1
  78. package/dist/{chunk-QN33PNHL-B6jssVTN.js → chunk-QN33PNHL-CZLTe-5X.js} +1 -1
  79. package/dist/{chunk-QN33PNHL-CGZrzSBB.cjs → chunk-QN33PNHL-D89dqsY7.cjs} +1 -1
  80. package/dist/{chunk-QZHKN3VN-C4xVo3en.js → chunk-QZHKN3VN-Bym_staK.js} +1 -1
  81. package/dist/{chunk-QZHKN3VN-BgTxUHVI.cjs → chunk-QZHKN3VN-CnB6OkgR.cjs} +1 -1
  82. package/dist/{chunk-TZMSLE5B-BxgV5j7R.cjs → chunk-TZMSLE5B-CzF1p6NC.cjs} +1 -1
  83. package/dist/{chunk-TZMSLE5B-CtxV03nX.js → chunk-TZMSLE5B-Dp0YIOCM.js} +1 -1
  84. package/dist/{classDiagram-v2-WZHVMYZB-CZpmcSlb.js → classDiagram-2ON5EDUG-Bckc28LC.js} +2 -2
  85. package/dist/{classDiagram-2ON5EDUG-BuS2b4J0.cjs → classDiagram-2ON5EDUG-FQVyK433.cjs} +1 -1
  86. package/dist/{classDiagram-2ON5EDUG-CZpmcSlb.js → classDiagram-v2-WZHVMYZB-Bckc28LC.js} +2 -2
  87. package/dist/{classDiagram-v2-WZHVMYZB-BuS2b4J0.cjs → classDiagram-v2-WZHVMYZB-FQVyK433.cjs} +1 -1
  88. package/dist/clone-BuJ6ESdC.cjs +1 -0
  89. package/dist/{clone-DkJx__A-.js → clone-gnQjFue0.js} +1 -1
  90. package/dist/components/box-list/box-list-types.d.ts +1 -3
  91. package/dist/components/box-list/box-list-types.d.ts.map +1 -1
  92. package/dist/components/box-list/box-list.d.ts.map +1 -1
  93. package/dist/components/data-table/filtering/data-table-filter-utils.d.ts +3 -3
  94. package/dist/components/data-table/filtering/data-table-filter-utils.d.ts.map +1 -1
  95. package/dist/components/field/field-types.d.ts +0 -1
  96. package/dist/components/field/field-types.d.ts.map +1 -1
  97. package/dist/components/field/field.d.ts.map +1 -1
  98. package/dist/components/image-list/components/error-boundary.d.ts +16 -0
  99. package/dist/components/image-list/components/error-boundary.d.ts.map +1 -0
  100. package/dist/components/image-list/components/image-list-catalog.d.ts +5 -0
  101. package/dist/components/image-list/components/image-list-catalog.d.ts.map +1 -0
  102. package/dist/components/image-list/components/image-list-compact.d.ts +5 -0
  103. package/dist/components/image-list/components/image-list-compact.d.ts.map +1 -0
  104. package/dist/components/image-list/components/image-list-drill-down.d.ts +4 -0
  105. package/dist/components/image-list/components/image-list-drill-down.d.ts.map +1 -0
  106. package/dist/components/image-list/components/image-list-explorer.d.ts +5 -0
  107. package/dist/components/image-list/components/image-list-explorer.d.ts.map +1 -0
  108. package/dist/components/image-list/components/image-list-modal.d.ts +5 -0
  109. package/dist/components/image-list/components/image-list-modal.d.ts.map +1 -0
  110. package/dist/components/image-list/components/image-list-slideshow.d.ts +5 -0
  111. package/dist/components/image-list/components/image-list-slideshow.d.ts.map +1 -0
  112. package/dist/components/image-list/components/image-list-tree.d.ts +5 -0
  113. package/dist/components/image-list/components/image-list-tree.d.ts.map +1 -0
  114. package/dist/components/image-list/hooks/useNavigation.d.ts +16 -0
  115. package/dist/components/image-list/hooks/useNavigation.d.ts.map +1 -0
  116. package/dist/components/image-list/hooks/useSelection.d.ts +10 -0
  117. package/dist/components/image-list/hooks/useSelection.d.ts.map +1 -0
  118. package/dist/components/image-list/image-list-types.d.ts +95 -0
  119. package/dist/components/image-list/image-list-types.d.ts.map +1 -0
  120. package/dist/components/image-list/image-list-utils.d.ts +13 -0
  121. package/dist/components/image-list/image-list-utils.d.ts.map +1 -0
  122. package/dist/components/image-list/image-list.d.ts +5 -0
  123. package/dist/components/image-list/image-list.d.ts.map +1 -0
  124. package/dist/components/input-panel/assets/data.d.ts.map +1 -1
  125. package/dist/components/input-panel/input-panel.d.ts +2 -1
  126. package/dist/components/input-panel/input-panel.d.ts.map +1 -1
  127. package/dist/components/mind-map/components/MindMapCanvas.d.ts +13 -1
  128. package/dist/components/mind-map/components/MindMapCanvas.d.ts.map +1 -1
  129. package/dist/components/mind-map/components/MindMapNode.d.ts +10 -4
  130. package/dist/components/mind-map/components/MindMapNode.d.ts.map +1 -1
  131. package/dist/components/mind-map/hooks/useMindMapAutofit.d.ts +45 -0
  132. package/dist/components/mind-map/hooks/useMindMapAutofit.d.ts.map +1 -0
  133. package/dist/components/mind-map/hooks/useMindMapLayout.d.ts +4 -3
  134. package/dist/components/mind-map/hooks/useMindMapLayout.d.ts.map +1 -1
  135. package/dist/components/mind-map/hooks/useMindMapNodeDimensions.d.ts +23 -0
  136. package/dist/components/mind-map/hooks/useMindMapNodeDimensions.d.ts.map +1 -0
  137. package/dist/components/mind-map/hooks/useMindMapState.d.ts +2 -2
  138. package/dist/components/mind-map/hooks/useMindMapState.d.ts.map +1 -1
  139. package/dist/components/mind-map/hooks/useMindMapViewport.d.ts +33 -0
  140. package/dist/components/mind-map/hooks/useMindMapViewport.d.ts.map +1 -0
  141. package/dist/components/mind-map/hooks/useViewportBounds.d.ts +27 -0
  142. package/dist/components/mind-map/hooks/useViewportBounds.d.ts.map +1 -0
  143. package/dist/components/mind-map/layouts/radial-layout.d.ts +3 -0
  144. package/dist/components/mind-map/layouts/radial-layout.d.ts.map +1 -0
  145. package/dist/components/mind-map/layouts/vertical-layout.d.ts +3 -0
  146. package/dist/components/mind-map/layouts/vertical-layout.d.ts.map +1 -0
  147. package/dist/components/mind-map/{types/index.d.ts → mind-map-types.d.ts} +54 -11
  148. package/dist/components/mind-map/mind-map-types.d.ts.map +1 -0
  149. package/dist/components/mind-map/mind-map.d.ts +3 -2
  150. package/dist/components/mind-map/mind-map.d.ts.map +1 -1
  151. package/dist/components/mind-map/utils/coordinates.d.ts +1 -1
  152. package/dist/components/mind-map/utils/coordinates.d.ts.map +1 -1
  153. package/dist/components/mind-map/utils/geometry-utils.d.ts +27 -0
  154. package/dist/components/mind-map/utils/geometry-utils.d.ts.map +1 -0
  155. package/dist/components/mind-map/utils/graph-utils.d.ts +88 -0
  156. package/dist/components/mind-map/utils/graph-utils.d.ts.map +1 -0
  157. package/dist/components/mind-map/utils/layout.d.ts +1 -1
  158. package/dist/components/mind-map/utils/layout.d.ts.map +1 -1
  159. package/dist/components/mind-map/utils/tree.d.ts +4 -2
  160. package/dist/components/mind-map/utils/tree.d.ts.map +1 -1
  161. package/dist/components/mind-map/utils/validation.d.ts +1 -1
  162. package/dist/components/mind-map/utils/validation.d.ts.map +1 -1
  163. package/dist/components/toolbar/toolbar-node.d.ts.map +1 -1
  164. package/dist/{cose-bilkent-S5V4N54A-C00aP448.js → cose-bilkent-S5V4N54A-Df1US9MJ.js} +5 -5
  165. package/dist/{cose-bilkent-S5V4N54A-BJ6Tuyyj.cjs → cose-bilkent-S5V4N54A-DsOyNFsG.cjs} +1 -1
  166. package/dist/{dagre-6UL2VRFP-JMTi_XHD.js → dagre-6UL2VRFP-COacgFYc.js} +6 -6
  167. package/dist/{dagre-6UL2VRFP-BrXTKrJq.cjs → dagre-6UL2VRFP-CXVsDZys.cjs} +1 -1
  168. package/dist/{diagram-PSM6KHXK-fvIjUcFM.js → diagram-PSM6KHXK-Blv6GFOJ.js} +4 -4
  169. package/dist/{diagram-PSM6KHXK-LkgNpU18.cjs → diagram-PSM6KHXK-D1gDIrxH.cjs} +1 -1
  170. package/dist/{diagram-QEK2KX5R-BQNAJB1W.cjs → diagram-QEK2KX5R-DGRRWbUu.cjs} +1 -1
  171. package/dist/{diagram-QEK2KX5R-BcuMWz8M.js → diagram-QEK2KX5R-DvB0VrfT.js} +3 -3
  172. package/dist/{diagram-S2PKOQOG-DT8r8nnd.cjs → diagram-S2PKOQOG--lHmHnKW.cjs} +1 -1
  173. package/dist/{diagram-S2PKOQOG-BGEqeYnW.js → diagram-S2PKOQOG-DxIEa6jg.js} +3 -3
  174. package/dist/{erDiagram-Q2GNP2WA-DYRIEzOM.js → erDiagram-Q2GNP2WA-B--ZupT4.js} +4 -4
  175. package/dist/{erDiagram-Q2GNP2WA-CJoyV-_s.cjs → erDiagram-Q2GNP2WA-BZ1GgS-i.cjs} +1 -1
  176. package/dist/{flowDiagram-NV44I4VS-B2Zj_x6B.js → flowDiagram-NV44I4VS-82EN5frg.js} +5 -5
  177. package/dist/{flowDiagram-NV44I4VS-BqXm80wW.cjs → flowDiagram-NV44I4VS-BjclDOwK.cjs} +1 -1
  178. package/dist/functional-components/badge/badge-types.d.ts +16 -16
  179. package/dist/functional-components/badge/badge-types.d.ts.map +1 -1
  180. package/dist/functional-components/badge/badge-utils.d.ts +28 -3
  181. package/dist/functional-components/badge/badge-utils.d.ts.map +1 -1
  182. package/dist/functional-components/badge/badge.d.ts.map +1 -1
  183. package/dist/functional-components/layout/layout-utils.d.ts.map +1 -1
  184. package/dist/functional-components/layout/layout-utils.test.d.ts +2 -0
  185. package/dist/functional-components/layout/layout-utils.test.d.ts.map +1 -0
  186. package/dist/functional-components/layout/layout.d.ts.map +1 -1
  187. package/dist/{ganttDiagram-JELNMOA3-08_dE0Q5.js → ganttDiagram-JELNMOA3-D8bgGv3W.js} +2 -2
  188. package/dist/{ganttDiagram-JELNMOA3-DCEQry87.cjs → ganttDiagram-JELNMOA3-Dg3gcgGP.cjs} +1 -1
  189. package/dist/{gitGraph-F6HP7TQM-Y9JkwqbB.js → gitGraph-F6HP7TQM-CYYpWdGq.js} +1 -1
  190. package/dist/{gitGraph-F6HP7TQM-4Bs7cINB.cjs → gitGraph-F6HP7TQM-DAOdDfOa.cjs} +1 -1
  191. package/dist/{gitGraphDiagram-NY62KEGX-BvyOJS_E.cjs → gitGraphDiagram-NY62KEGX-CACSicRn.cjs} +1 -1
  192. package/dist/{gitGraphDiagram-NY62KEGX-B1DItGjE.js → gitGraphDiagram-NY62KEGX-CM2Vxzlx.js} +4 -4
  193. package/dist/{graph-ZrTDk0Hg.js → graph-B-keMiTZ.js} +6 -7
  194. package/dist/graph-Mv2qv5SB.cjs +1 -0
  195. package/dist/{index-tQish5_K.js → index-D5NyASqq.js} +32498 -31190
  196. package/dist/index-dhfrnDvJ.cjs +386 -0
  197. package/dist/index.d.ts +6 -0
  198. package/dist/index.d.ts.map +1 -1
  199. package/dist/{info-NVLQJR56-CHsZUaj2.cjs → info-NVLQJR56-BlLr9dLS.cjs} +1 -1
  200. package/dist/info-NVLQJR56-CuxiCK8q.js +5 -0
  201. package/dist/{infoDiagram-WHAUD3N6-jVuB8rdT.js → infoDiagram-WHAUD3N6-BdRjW-aL.js} +2 -2
  202. package/dist/{infoDiagram-WHAUD3N6-i83aw0dt.cjs → infoDiagram-WHAUD3N6-DFw2Z3_-.cjs} +1 -1
  203. package/dist/{journeyDiagram-XKPGCS4Q-cTUhYkyL.cjs → journeyDiagram-XKPGCS4Q-DkjuGmmU.cjs} +1 -1
  204. package/dist/{journeyDiagram-XKPGCS4Q-C0xONv2Z.js → journeyDiagram-XKPGCS4Q-DlpDeIYp.js} +4 -4
  205. package/dist/{kanban-definition-3W4ZIXB7-gAgaqJpb.js → kanban-definition-3W4ZIXB7-51Pnrmuv.js} +2 -2
  206. package/dist/{kanban-definition-3W4ZIXB7-BZbVKwOt.cjs → kanban-definition-3W4ZIXB7-aQx57fCW.cjs} +1 -1
  207. package/dist/ketchup2.cjs.js +1 -1
  208. package/dist/ketchup2.css +1 -1
  209. package/dist/ketchup2.es.js +25 -23
  210. package/dist/{layout-CvVc3iSj.js → layout-DN-p0Ppz.js} +250 -247
  211. package/dist/layout-TZOoqACN.cjs +1 -0
  212. package/dist/{linear-jeDn-4pB.cjs → linear-K9FI-N_R.cjs} +1 -1
  213. package/dist/{linear-BFKUXJJJ.js → linear-SvFy3H5R.js} +5 -5
  214. package/dist/locale/en/translation.json.d.ts +7 -3
  215. package/dist/locale/it/translation.json.d.ts +7 -3
  216. package/dist/{mermaid-parser.core-CKYvvyAq.js → mermaid-parser.core-C0aPfQrd.js} +208 -209
  217. package/dist/{mermaid-parser.core-KMjRAYYm.cjs → mermaid-parser.core-DrvvGvos.cjs} +64 -64
  218. package/dist/{mindmap-definition-VGOIOE7T-Dthy0WmT.js → mindmap-definition-VGOIOE7T-B-XcJ1QB.js} +3 -3
  219. package/dist/{mindmap-definition-VGOIOE7T-DmaEElVQ.cjs → mindmap-definition-VGOIOE7T-CQBoNmIj.cjs} +1 -1
  220. package/dist/{packet-BFZMPI3H-CpS-F5a_.js → packet-BFZMPI3H-C96MlUhq.js} +1 -1
  221. package/dist/{packet-BFZMPI3H-DywTQVQ_.cjs → packet-BFZMPI3H-CFs8sQKO.cjs} +1 -1
  222. package/dist/pie-7BOR55EZ-B7H6T2nu.js +5 -0
  223. package/dist/{pie-7BOR55EZ-ChNKQdbq.cjs → pie-7BOR55EZ-D1z_FiDQ.cjs} +1 -1
  224. package/dist/{pieDiagram-ADFJNKIX-CvGdCgan.js → pieDiagram-ADFJNKIX-Btipy1Yg.js} +13 -13
  225. package/dist/{pieDiagram-ADFJNKIX-DivYnpIG.cjs → pieDiagram-ADFJNKIX-DITgkzrb.cjs} +1 -1
  226. package/dist/{quadrantDiagram-AYHSOK5B-DMcJ8r-L.js → quadrantDiagram-AYHSOK5B-0REjJWXf.js} +2 -2
  227. package/dist/{quadrantDiagram-AYHSOK5B-Bf9-HbUq.cjs → quadrantDiagram-AYHSOK5B-DUvmRtA9.cjs} +1 -1
  228. package/dist/radar-NHE76QYJ-BBThtHed.js +5 -0
  229. package/dist/{radar-NHE76QYJ-DZuF23ek.cjs → radar-NHE76QYJ-buBWFcX8.cjs} +1 -1
  230. package/dist/{requirementDiagram-UZGBJVZJ-Bl2E6Fyl.js → requirementDiagram-UZGBJVZJ-3qREmHHw.js} +3 -3
  231. package/dist/{requirementDiagram-UZGBJVZJ-C617ntCl.cjs → requirementDiagram-UZGBJVZJ-D5HKHjuR.cjs} +1 -1
  232. package/dist/{sankeyDiagram-TZEHDZUN-DPYxVtOl.js → sankeyDiagram-TZEHDZUN-CB7aU9wG.js} +1 -1
  233. package/dist/{sankeyDiagram-TZEHDZUN-DJMSsNjh.cjs → sankeyDiagram-TZEHDZUN-DDHq92cR.cjs} +1 -1
  234. package/dist/{sequenceDiagram-WL72ISMW-CGkxXC50.cjs → sequenceDiagram-WL72ISMW-CrGNKfm7.cjs} +1 -1
  235. package/dist/{sequenceDiagram-WL72ISMW-V7RqENZQ.js → sequenceDiagram-WL72ISMW-Dp9D1kc1.js} +3 -3
  236. package/dist/{stateDiagram-FKZM4ZOC-qkCLTpNh.js → stateDiagram-FKZM4ZOC-Dg2jwdvB.js} +4 -4
  237. package/dist/{stateDiagram-FKZM4ZOC-COnDROTh.cjs → stateDiagram-FKZM4ZOC-TVfktX-m.cjs} +1 -1
  238. package/dist/{stateDiagram-v2-4FDKWEC3-corE_iho.js → stateDiagram-v2-4FDKWEC3-BeDflo8x.js} +2 -2
  239. package/dist/{stateDiagram-v2-4FDKWEC3-DVl2lm_B.cjs → stateDiagram-v2-4FDKWEC3-CVw7R7Sy.cjs} +1 -1
  240. package/dist/{timeline-definition-IT6M3QCI-CyuUeVWe.js → timeline-definition-IT6M3QCI-DPYD0-yi.js} +2 -2
  241. package/dist/{timeline-definition-IT6M3QCI-7sh02DJC.cjs → timeline-definition-IT6M3QCI-QaW1rM2C.cjs} +1 -1
  242. package/dist/{treemap-KMMF4GRG-C78aS1uB.cjs → treemap-KMMF4GRG-B3ovpU-a.cjs} +1 -1
  243. package/dist/{treemap-KMMF4GRG-BxfekPoY.js → treemap-KMMF4GRG-BtzlMHus.js} +1 -1
  244. package/dist/types/data-structures.d.ts +9 -2
  245. package/dist/types/data-structures.d.ts.map +1 -1
  246. package/dist/types/translation.d.ts +7 -3
  247. package/dist/types/translation.d.ts.map +1 -1
  248. package/dist/utils/display-value.d.ts.map +1 -1
  249. package/dist/utils/wrapper-types/date.d.ts.map +1 -1
  250. package/dist/utils/wrapper-types/time/time-utils.d.ts +8 -0
  251. package/dist/utils/wrapper-types/time/time-utils.d.ts.map +1 -1
  252. package/dist/utils/wrapper-types/time/time.d.ts +1 -1
  253. package/dist/utils/wrapper-types/time/time.d.ts.map +1 -1
  254. package/dist/{xychartDiagram-PRI3JC2R-vfxLXpzQ.js → xychartDiagram-PRI3JC2R-6W3NRZoh.js} +12 -12
  255. package/dist/{xychartDiagram-PRI3JC2R-wzZbTURO.cjs → xychartDiagram-PRI3JC2R-9Qn35IaK.cjs} +1 -1
  256. package/package.json +11 -12
  257. package/dist/_baseIsEqual-BrnlrwQv.js +0 -330
  258. package/dist/_baseIsEqual-zRt14Ap0.cjs +0 -1
  259. package/dist/_basePickBy-BwchXmnn.cjs +0 -1
  260. package/dist/_baseUniq-CJjUNseB.js +0 -292
  261. package/dist/_baseUniq-j7VEd75I.cjs +0 -1
  262. package/dist/channel-CwKSkgJF.cjs +0 -1
  263. package/dist/clone-DPavQMkb.cjs +0 -1
  264. package/dist/cloneDeep-DQDCvru6.cjs +0 -1
  265. package/dist/cloneDeep-Dq3F6jwh.js +0 -8
  266. package/dist/components/mind-map/hooks/useMindMapPan.d.ts +0 -14
  267. package/dist/components/mind-map/hooks/useMindMapPan.d.ts.map +0 -1
  268. package/dist/components/mind-map/types/index.d.ts.map +0 -1
  269. package/dist/graph-QS_Q5MPp.cjs +0 -1
  270. package/dist/index-CT8MFfo6.cjs +0 -379
  271. package/dist/info-NVLQJR56-COZxNJP_.js +0 -5
  272. package/dist/layout-9wrCML1i.cjs +0 -1
  273. package/dist/pie-7BOR55EZ-B-Fv4j6j.js +0 -5
  274. package/dist/quill-DQZOmBqc.cjs +0 -49
  275. package/dist/quill-i2umgPvo.js +0 -6687
  276. package/dist/radar-NHE76QYJ-DEY-dBFC.js +0 -5
  277. package/dist/time-picker-dropdown-B_7NChVW.cjs +0 -1
  278. package/dist/time-picker-dropdown-CTaNEXXR.js +0 -122
@@ -1,66 +1,66 @@
1
- "use strict";const $=require("./index-CT8MFfo6.cjs"),Ce=require("./_baseIsEqual-zRt14Ap0.cjs"),g=require("./_baseUniq-j7VEd75I.cjs"),m=require("./_basePickBy-BwchXmnn.cjs"),Z=require("./clone-DPavQMkb.cjs");var ac=Object.prototype,oc=ac.hasOwnProperty,Te=$.createAssigner(function(n,e){if($.isPrototype(e)||$.isArrayLike(e)){$.copyObject(e,Ce.keys(e),n);return}for(var t in e)oc.call(e,t)&&$.assignValue(n,t,e[t])});function al(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function Un(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function lc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function uc(n,e,t,r){return g.baseEach(n,function(i,s,a){e(r,i,t(i),a)}),r}function cc(n,e){return function(t,r){var i=$.isArray(t)?lc:uc,s=e?e():{};return i(t,n,g.baseIteratee(r),s)}}var dc=200;function fc(n,e,t,r){var i=-1,s=g.arrayIncludes,a=!0,o=n.length,l=[],u=e.length;if(!o)return l;e.length>=dc&&(s=Ce.cacheHas,a=!1,e=new Ce.SetCache(e));e:for(;++i<o;){var c=n[i],d=c;if(c=c!==0?c:0,a&&d===d){for(var h=u;h--;)if(e[h]===d)continue e;l.push(c)}else s(e,d,r)||l.push(c)}return l}var ei=$.baseRest(function(n,e){return $.isArrayLikeObject(n)?fc(n,g.baseFlatten(e,1,$.isArrayLikeObject,!0)):[]});function Y(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:m.toInteger(e),al(n,e<0?0:e,r)):[]}function Mn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:m.toInteger(e),e=r-e,al(n,0,e<0?0:e)):[]}function hc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function pc(n,e){var t=!0;return g.baseEach(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function Ie(n,e,t){var r=$.isArray(n)?hc:pc;return r(n,g.baseIteratee(e))}function Ne(n){return n&&n.length?n[0]:void 0}function ye(n,e){return g.baseFlatten(m.map(n,e))}var mc=Object.prototype,gc=mc.hasOwnProperty,yc=cc(function(n,e,t){gc.call(n,t)?n[t].push(e):$.baseAssignValue(n,t,[e])}),Tc="[object String]";function le(n){return typeof n=="string"||!$.isArray(n)&&$.isObjectLike(n)&&$.baseGetTag(n)==Tc}var Rc=Math.max;function ae(n,e,t,r){n=$.isArrayLike(n)?n:g.values(n),t=t?m.toInteger(t):0;var i=n.length;return t<0&&(t=Rc(i+t,0)),le(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&g.baseIndexOf(n,e,t)>-1}function ea(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return g.baseIndexOf(n,e,i)}var vc="[object RegExp]";function Ec(n){return $.isObjectLike(n)&&$.baseGetTag(n)==vc}var ta=$.nodeUtil&&$.nodeUtil.isRegExp,Ke=ta?$.baseUnary(ta):Ec,Ac="Expected a function";function kc(n){if(typeof n!="function")throw new TypeError(Ac);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function we(n,e){if(n==null)return{};var t=g.arrayMap(Ce.getAllKeysIn(n),function(r){return[r]});return e=g.baseIteratee(e),m.basePickBy(n,t,function(r,i){return e(r,i[0])})}function ti(n,e){var t=$.isArray(n)?Ce.arrayFilter:g.baseFilter;return t(n,kc(g.baseIteratee(e)))}function $c(n,e){var t;return g.baseEach(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function ol(n,e,t){var r=$.isArray(n)?Ce.arraySome:$c;return r(n,g.baseIteratee(e))}function Is(n){return n&&n.length?g.baseUniq(n):[]}function xc(n,e){return n&&n.length?g.baseUniq(n,g.baseIteratee(e)):[]}function ne(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Oe(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function Sc(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function gr(n){return typeof n=="object"&&n!==null&&ne(n.container)&&Oe(n.reference)&&typeof n.message=="string"}class ll{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ne(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Dn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function ul(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function cl(n){return Dn(n)&&typeof n.fullText=="string"}class X{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new X(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return me})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Ic(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new X(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?me:{done:!1,value:e(i)}})}filter(e){return new X(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return me})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new X(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Lr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return me})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new X(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Lr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return me})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new X(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new X(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?me:this.nextFn(t.state)))}distinct(e){return new X(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return me})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Ic(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Lr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Cc=new X(()=>{},()=>me),me=Object.freeze({done:!0,value:void 0});function J(...n){if(n.length===1){const e=n[0];if(e instanceof X)return e;if(Lr(e))return new X(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new X(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:me)}return n.length>1?new X(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];Lr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return me}):Cc}class Cs extends X{constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return me})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Hi;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(Hi||(Hi={}));function ji(n){return new Cs(n,e=>Dn(e)?e.content:[],{includeRoot:!0})}function Nc(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function zi(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function _r(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var Ue;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(Ue||(Ue={}));function wc(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return Ue.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return Ue.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?Ue.Inside:t?Ue.OverlapBack:r?Ue.OverlapFront:Ue.Outside}function Lc(n,e){return wc(n,e)>Ue.After}const _c=/^[\w\p{L}]$/u;function bc(n,e){if(n){const t=Oc(n,!0);if(t&&na(t,e))return t;if(cl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(na(s,e))return s}}}}function na(n,e){return ul(n)&&e.includes(n.tokenType.name)}function Oc(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class dl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Bn(n){throw new Error("Error! The input value was not handled.")}const qn="AbstractRule",Yn="AbstractType",yi="Condition",ra="TypeDefinition",Ti="ValueLiteral",Qt="AbstractElement";function Pc(n){return M.isInstance(n,Qt)}const Xn="ArrayLiteral",Jn="ArrayType",Zt="BooleanLiteral";function Mc(n){return M.isInstance(n,Zt)}const en="Conjunction";function Dc(n){return M.isInstance(n,en)}const tn="Disjunction";function Fc(n){return M.isInstance(n,tn)}const Qn="Grammar",Ri="GrammarImport",nn="InferredType";function fl(n){return M.isInstance(n,nn)}const rn="Interface";function hl(n){return M.isInstance(n,rn)}const vi="NamedArgument",sn="Negation";function Gc(n){return M.isInstance(n,sn)}const Zn="NumberLiteral",er="Parameter",an="ParameterReference";function Uc(n){return M.isInstance(n,an)}const on="ParserRule";function ke(n){return M.isInstance(n,on)}const tr="ReferenceType",yr="ReturnType";function Bc(n){return M.isInstance(n,yr)}const ln="SimpleType";function Vc(n){return M.isInstance(n,ln)}const nr="StringLiteral",vt="TerminalRule";function pt(n){return M.isInstance(n,vt)}const un="Type";function pl(n){return M.isInstance(n,un)}const Ei="TypeAttribute",rr="UnionType",cn="Action";function ni(n){return M.isInstance(n,cn)}const dn="Alternatives";function ml(n){return M.isInstance(n,dn)}const fn="Assignment";function lt(n){return M.isInstance(n,fn)}const hn="CharacterRange";function Kc(n){return M.isInstance(n,hn)}const pn="CrossReference";function Ns(n){return M.isInstance(n,pn)}const mn="EndOfFile";function Wc(n){return M.isInstance(n,mn)}const gn="Group";function ws(n){return M.isInstance(n,gn)}const yn="Keyword";function ut(n){return M.isInstance(n,yn)}const Tn="NegatedToken";function Hc(n){return M.isInstance(n,Tn)}const Rn="RegexToken";function jc(n){return M.isInstance(n,Rn)}const vn="RuleCall";function ct(n){return M.isInstance(n,vn)}const En="TerminalAlternatives";function zc(n){return M.isInstance(n,En)}const An="TerminalGroup";function qc(n){return M.isInstance(n,An)}const kn="TerminalRuleCall";function Yc(n){return M.isInstance(n,kn)}const $n="UnorderedGroup";function gl(n){return M.isInstance(n,$n)}const xn="UntilToken";function Xc(n){return M.isInstance(n,xn)}const Sn="Wildcard";function Jc(n){return M.isInstance(n,Sn)}class yl extends ll{getAllTypes(){return[Qt,qn,Yn,cn,dn,Xn,Jn,fn,Zt,hn,yi,en,pn,tn,mn,Qn,Ri,gn,nn,rn,yn,vi,Tn,sn,Zn,er,an,on,tr,Rn,yr,vn,ln,nr,En,An,vt,kn,un,Ei,ra,rr,$n,xn,Ti,Sn]}computeIsSubtype(e,t){switch(e){case cn:case dn:case fn:case hn:case pn:case mn:case gn:case yn:case Tn:case Rn:case vn:case En:case An:case kn:case $n:case xn:case Sn:return this.isSubtype(Qt,t);case Xn:case Zn:case nr:return this.isSubtype(Ti,t);case Jn:case tr:case ln:case rr:return this.isSubtype(ra,t);case Zt:return this.isSubtype(yi,t)||this.isSubtype(Ti,t);case en:case tn:case sn:case an:return this.isSubtype(yi,t);case nn:case rn:case un:return this.isSubtype(Yn,t);case on:return this.isSubtype(qn,t)||this.isSubtype(Yn,t);case vt:return this.isSubtype(qn,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 Yn;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return qn;case"Grammar:usedGrammars":return Qn;case"NamedArgument:parameter":case"ParameterReference:parameter":return er;case"TerminalRuleCall:rule":return vt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Qt:return{name:Qt,properties:[{name:"cardinality"},{name:"lookahead"}]};case Xn:return{name:Xn,properties:[{name:"elements",defaultValue:[]}]};case Jn:return{name:Jn,properties:[{name:"elementType"}]};case Zt:return{name:Zt,properties:[{name:"true",defaultValue:!1}]};case en:return{name:en,properties:[{name:"left"},{name:"right"}]};case tn:return{name:tn,properties:[{name:"left"},{name:"right"}]};case Qn:return{name:Qn,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 Ri:return{name:Ri,properties:[{name:"path"}]};case nn:return{name:nn,properties:[{name:"name"}]};case rn:return{name:rn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case vi:return{name:vi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case sn:return{name:sn,properties:[{name:"value"}]};case Zn:return{name:Zn,properties:[{name:"value"}]};case er:return{name:er,properties:[{name:"name"}]};case an:return{name:an,properties:[{name:"parameter"}]};case on:return{name:on,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 tr:return{name:tr,properties:[{name:"referenceType"}]};case yr:return{name:yr,properties:[{name:"name"}]};case ln:return{name:ln,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case nr:return{name:nr,properties:[{name:"value"}]};case vt:return{name:vt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case un:return{name:un,properties:[{name:"name"},{name:"type"}]};case Ei:return{name:Ei,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case rr:return{name:rr,properties:[{name:"types",defaultValue:[]}]};case cn:return{name:cn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case dn:return{name:dn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case fn:return{name:fn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case hn:return{name:hn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case pn:return{name:pn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case mn:return{name:mn,properties:[{name:"cardinality"},{name:"lookahead"}]};case gn:return{name:gn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case yn:return{name:yn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Tn:return{name:Tn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Rn:return{name:Rn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case vn:return{name:vn,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case An:return{name:An,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new yl;function Qc(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ne(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ne(t)&&(t.$container=n,t.$containerProperty=e))}function ri(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function je(n){const t=qi(n).$document;if(!t)throw new Error("AST node has no document.");return t}function qi(n){for(;n.$container;)n=n.$container;return n}function Ls(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new X(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(ne(s)){if(r.keyIndex++,ia(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(ne(o)&&ia(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return me})}function Vn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Cs(n,t=>Ls(t,e))}function At(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Cs(n,t=>Ls(t,e),{includeRoot:!0})}function ia(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Lc(r,e):!1}function Tl(n){return new X(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Oe(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Oe(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return me})}function Zc(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Rl(i.defaultValue))}function Rl(n){return Array.isArray(n)?[...n.map(Rl)]:n}function w(n){return n.charCodeAt(0)}function Ai(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function Yt(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Rt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function ed(){throw Error("Internal Error - Should never get here!")}function sa(n){return n.type==="Character"}const br=[];for(let n=w("0");n<=w("9");n++)br.push(n);const Or=[w("_")].concat(br);for(let n=w("a");n<=w("z");n++)Or.push(n);for(let n=w("A");n<=w("Z");n++)Or.push(n);const aa=[w(" "),w("\f"),w(`
2
- `),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],td=/[0-9a-fA-F]/,ir=/[0-9]/,nd=/[1-9]/;class vl{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Yt(r,"global");break;case"i":Yt(r,"ignoreCase");break;case"m":Yt(r,"multiLine");break;case"u":Yt(r,"unicode");break;case"y":Yt(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Rt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return ed()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Rt(t);break}if(!(e===!0&&t===void 0)&&Rt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Rt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
3
- `),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=br;break;case"D":e=br,t=!0;break;case"s":e=aa;break;case"S":e=aa,t=!0;break;case"w":e=Or;break;case"W":e=Or,t=!0;break}if(Rt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
4
- `);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Rt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
5
- `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:w(e)}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,sa(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,sa(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Ai(r.value,e),e.push(w("-")),Ai(i.value,e)}else Ai(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
6
- `:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:w("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),this.peekChar(0)==="?"?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;const t=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(nd.test(e)===!1)throw Error("Expecting a positive integer");for(;ir.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(ir.test(e)===!1)throw Error("Expecting an integer");for(;ir.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
7
- `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:w(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 ir.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
1
+ "use strict";const $=require("./index-dhfrnDvJ.cjs"),m=require("./_baseUniq-v0HaTFyU.cjs"),g=require("./_basePickBy-hU15nnuu.cjs"),Z=require("./clone-BuJ6ESdC.cjs");var sc=Object.prototype,ac=sc.hasOwnProperty,Te=$.createAssigner(function(n,e){if($.isPrototype(e)||$.isArrayLike(e)){$.copyObject(e,m.keys(e),n);return}for(var t in e)ac.call(e,t)&&$.assignValue(n,t,e[t])});function sl(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function Gn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function oc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function lc(n,e,t,r){return m.baseEach(n,function(i,s,a){e(r,i,t(i),a)}),r}function uc(n,e){return function(t,r){var i=$.isArray(t)?oc:lc,s=e?e():{};return i(t,n,m.baseIteratee(r),s)}}var cc=200;function dc(n,e,t,r){var i=-1,s=m.arrayIncludes,a=!0,o=n.length,l=[],u=e.length;if(!o)return l;e.length>=cc&&(s=m.cacheHas,a=!1,e=new m.SetCache(e));e:for(;++i<o;){var c=n[i],d=c;if(c=c!==0?c:0,a&&d===d){for(var h=u;h--;)if(e[h]===d)continue e;l.push(c)}else s(e,d,r)||l.push(c)}return l}var Zr=$.baseRest(function(n,e){return $.isArrayLikeObject(n)?dc(n,m.baseFlatten(e,1,$.isArrayLikeObject,!0)):[]});function Y(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:g.toInteger(e),sl(n,e<0?0:e,r)):[]}function Pn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:g.toInteger(e),e=r-e,sl(n,0,e<0?0:e)):[]}function fc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function hc(n,e){var t=!0;return m.baseEach(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function Ie(n,e,t){var r=$.isArray(n)?fc:hc;return r(n,m.baseIteratee(e))}function Ce(n){return n&&n.length?n[0]:void 0}function ye(n,e){return m.baseFlatten(g.map(n,e))}var pc=Object.prototype,mc=pc.hasOwnProperty,gc=uc(function(n,e,t){mc.call(n,t)?n[t].push(e):$.baseAssignValue(n,t,[e])}),yc="[object String]";function le(n){return typeof n=="string"||!$.isArray(n)&&$.isObjectLike(n)&&$.baseGetTag(n)==yc}var Tc=Math.max;function ae(n,e,t,r){n=$.isArrayLike(n)?n:m.values(n),t=t?g.toInteger(t):0;var i=n.length;return t<0&&(t=Tc(i+t,0)),le(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&m.baseIndexOf(n,e,t)>-1}function Zs(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return m.baseIndexOf(n,e,i)}var Rc="[object RegExp]";function vc(n){return $.isObjectLike(n)&&$.baseGetTag(n)==Rc}var ea=$.nodeUtil&&$.nodeUtil.isRegExp,Ve=ea?$.baseUnary(ea):vc,Ec="Expected a function";function Ac(n){if(typeof n!="function")throw new TypeError(Ec);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Ne(n,e){if(n==null)return{};var t=m.arrayMap(m.getAllKeysIn(n),function(r){return[r]});return e=m.baseIteratee(e),g.basePickBy(n,t,function(r,i){return e(r,i[0])})}function ei(n,e){var t=$.isArray(n)?m.arrayFilter:m.baseFilter;return t(n,Ac(m.baseIteratee(e)))}function kc(n,e){var t;return m.baseEach(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function al(n,e,t){var r=$.isArray(n)?m.arraySome:kc;return r(n,m.baseIteratee(e))}function Ss(n){return n&&n.length?m.baseUniq(n):[]}function $c(n,e){return n&&n.length?m.baseUniq(n,m.baseIteratee(e)):[]}function ne(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function be(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function xc(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function mr(n){return typeof n=="object"&&n!==null&&ne(n.container)&&be(n.reference)&&typeof n.message=="string"}class ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ne(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Mn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function ll(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function ul(n){return Mn(n)&&typeof n.fullText=="string"}class X{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new X(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return me})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Sc(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new X(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?me:{done:!1,value:e(i)}})}filter(e){return new X(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return me})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new X(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(wr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return me})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new X(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(wr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return me})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new X(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new X(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?me:this.nextFn(t.state)))}distinct(e){return new X(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return me})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Sc(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function wr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Ic=new X(()=>{},()=>me),me=Object.freeze({done:!0,value:void 0});function J(...n){if(n.length===1){const e=n[0];if(e instanceof X)return e;if(wr(e))return new X(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new X(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:me)}return n.length>1?new X(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];wr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return me}):Ic}class Is extends X{constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return me})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Wi;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(Wi||(Wi={}));function Hi(n){return new Is(n,e=>Mn(e)?e.content:[],{includeRoot:!0})}function Cc(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function ji(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Lr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var Ge;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(Ge||(Ge={}));function Nc(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return Ge.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return Ge.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?Ge.Inside:t?Ge.OverlapBack:r?Ge.OverlapFront:Ge.Outside}function wc(n,e){return Nc(n,e)>Ge.After}const Lc=/^[\w\p{L}]$/u;function _c(n,e){if(n){const t=bc(n,!0);if(t&&ta(t,e))return t;if(ul(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(ta(s,e))return s}}}}function ta(n,e){return ll(n)&&e.includes(n.tokenType.name)}function bc(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class cl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Un(n){throw new Error("Error! The input value was not handled.")}const zn="AbstractRule",qn="AbstractType",gi="Condition",na="TypeDefinition",yi="ValueLiteral",Jt="AbstractElement";function Oc(n){return M.isInstance(n,Jt)}const Yn="ArrayLiteral",Xn="ArrayType",Qt="BooleanLiteral";function Pc(n){return M.isInstance(n,Qt)}const Zt="Conjunction";function Mc(n){return M.isInstance(n,Zt)}const en="Disjunction";function Dc(n){return M.isInstance(n,en)}const Jn="Grammar",Ti="GrammarImport",tn="InferredType";function dl(n){return M.isInstance(n,tn)}const nn="Interface";function fl(n){return M.isInstance(n,nn)}const Ri="NamedArgument",rn="Negation";function Fc(n){return M.isInstance(n,rn)}const Qn="NumberLiteral",Zn="Parameter",sn="ParameterReference";function Gc(n){return M.isInstance(n,sn)}const an="ParserRule";function ke(n){return M.isInstance(n,an)}const er="ReferenceType",gr="ReturnType";function Uc(n){return M.isInstance(n,gr)}const on="SimpleType";function Bc(n){return M.isInstance(n,on)}const tr="StringLiteral",Rt="TerminalRule";function ht(n){return M.isInstance(n,Rt)}const ln="Type";function hl(n){return M.isInstance(n,ln)}const vi="TypeAttribute",nr="UnionType",un="Action";function ti(n){return M.isInstance(n,un)}const cn="Alternatives";function pl(n){return M.isInstance(n,cn)}const dn="Assignment";function ot(n){return M.isInstance(n,dn)}const fn="CharacterRange";function Vc(n){return M.isInstance(n,fn)}const hn="CrossReference";function Cs(n){return M.isInstance(n,hn)}const pn="EndOfFile";function Kc(n){return M.isInstance(n,pn)}const mn="Group";function Ns(n){return M.isInstance(n,mn)}const gn="Keyword";function lt(n){return M.isInstance(n,gn)}const yn="NegatedToken";function Wc(n){return M.isInstance(n,yn)}const Tn="RegexToken";function Hc(n){return M.isInstance(n,Tn)}const Rn="RuleCall";function ut(n){return M.isInstance(n,Rn)}const vn="TerminalAlternatives";function jc(n){return M.isInstance(n,vn)}const En="TerminalGroup";function zc(n){return M.isInstance(n,En)}const An="TerminalRuleCall";function qc(n){return M.isInstance(n,An)}const kn="UnorderedGroup";function ml(n){return M.isInstance(n,kn)}const $n="UntilToken";function Yc(n){return M.isInstance(n,$n)}const xn="Wildcard";function Xc(n){return M.isInstance(n,xn)}class gl extends ol{getAllTypes(){return[Jt,zn,qn,un,cn,Yn,Xn,dn,Qt,fn,gi,Zt,hn,en,pn,Jn,Ti,mn,tn,nn,gn,Ri,yn,rn,Qn,Zn,sn,an,er,Tn,gr,Rn,on,tr,vn,En,Rt,An,ln,vi,na,nr,kn,$n,yi,xn]}computeIsSubtype(e,t){switch(e){case un:case cn:case dn:case fn:case hn:case pn:case mn:case gn:case yn:case Tn:case Rn:case vn:case En:case An:case kn:case $n:case xn:return this.isSubtype(Jt,t);case Yn:case Qn:case tr:return this.isSubtype(yi,t);case Xn:case er:case on:case nr:return this.isSubtype(na,t);case Qt:return this.isSubtype(gi,t)||this.isSubtype(yi,t);case Zt:case en:case rn:case sn:return this.isSubtype(gi,t);case tn:case nn:case ln:return this.isSubtype(qn,t);case an:return this.isSubtype(zn,t)||this.isSubtype(qn,t);case Rt:return this.isSubtype(zn,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return qn;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return zn;case"Grammar:usedGrammars":return Jn;case"NamedArgument:parameter":case"ParameterReference:parameter":return Zn;case"TerminalRuleCall:rule":return Rt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Jt:return{name:Jt,properties:[{name:"cardinality"},{name:"lookahead"}]};case Yn:return{name:Yn,properties:[{name:"elements",defaultValue:[]}]};case Xn:return{name:Xn,properties:[{name:"elementType"}]};case Qt:return{name:Qt,properties:[{name:"true",defaultValue:!1}]};case Zt:return{name:Zt,properties:[{name:"left"},{name:"right"}]};case en:return{name:en,properties:[{name:"left"},{name:"right"}]};case Jn:return{name:Jn,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 Ti:return{name:Ti,properties:[{name:"path"}]};case tn:return{name:tn,properties:[{name:"name"}]};case nn:return{name:nn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Ri:return{name:Ri,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case rn:return{name:rn,properties:[{name:"value"}]};case Qn:return{name:Qn,properties:[{name:"value"}]};case Zn:return{name:Zn,properties:[{name:"name"}]};case sn:return{name:sn,properties:[{name:"parameter"}]};case an:return{name:an,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 er:return{name:er,properties:[{name:"referenceType"}]};case gr:return{name:gr,properties:[{name:"name"}]};case on:return{name:on,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case tr:return{name:tr,properties:[{name:"value"}]};case Rt:return{name:Rt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case ln:return{name:ln,properties:[{name:"name"},{name:"type"}]};case vi:return{name:vi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case nr:return{name:nr,properties:[{name:"types",defaultValue:[]}]};case un:return{name:un,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case cn:return{name:cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case dn:return{name:dn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case fn:return{name:fn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case hn:return{name:hn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case pn:return{name:pn,properties:[{name:"cardinality"},{name:"lookahead"}]};case mn:return{name:mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case gn:return{name:gn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case yn:return{name:yn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Tn:return{name:Tn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Rn:return{name:Rn,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case An:return{name:An,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new gl;function Jc(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ne(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ne(t)&&(t.$container=n,t.$containerProperty=e))}function ni(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function He(n){const t=zi(n).$document;if(!t)throw new Error("AST node has no document.");return t}function zi(n){for(;n.$container;)n=n.$container;return n}function ws(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new X(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(ne(s)){if(r.keyIndex++,ra(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(ne(o)&&ra(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return me})}function Bn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Is(n,t=>ws(t,e))}function Et(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Is(n,t=>ws(t,e),{includeRoot:!0})}function ra(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?wc(r,e):!1}function yl(n){return new X(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(be(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(be(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return me})}function Qc(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Tl(i.defaultValue))}function Tl(n){return Array.isArray(n)?[...n.map(Tl)]:n}function w(n){return n.charCodeAt(0)}function Ei(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function qt(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Tt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function Zc(){throw Error("Internal Error - Should never get here!")}function ia(n){return n.type==="Character"}const _r=[];for(let n=w("0");n<=w("9");n++)_r.push(n);const br=[w("_")].concat(_r);for(let n=w("a");n<=w("z");n++)br.push(n);for(let n=w("A");n<=w("Z");n++)br.push(n);const sa=[w(" "),w("\f"),w(`
2
+ `),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],ed=/[0-9a-fA-F]/,rr=/[0-9]/,td=/[1-9]/;class Rl{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":qt(r,"global");break;case"i":qt(r,"ignoreCase");break;case"m":qt(r,"multiLine");break;case"u":qt(r,"unicode");break;case"y":qt(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Tt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return Zc()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Tt(t);break}if(!(e===!0&&t===void 0)&&Tt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Tt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
3
+ `),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=_r;break;case"D":e=_r,t=!0;break;case"s":e=sa;break;case"S":e=sa,t=!0;break;case"w":e=br;break;case"W":e=br,t=!0;break}if(Tt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
4
+ `);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Tt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
5
+ `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:w(e)}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,ia(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,ia(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Ei(r.value,e),e.push(w("-")),Ei(i.value,e)}else Ei(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
6
+ `:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:w("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),this.peekChar(0)==="?"?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;const t=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(td.test(e)===!1)throw Error("Expecting a positive integer");for(;rr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(rr.test(e)===!1)throw Error("Expecting an integer");for(;rr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
7
+ `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:w(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 rr.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
8
8
  `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){const e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
9
- `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let i=0;i<e;i++){const s=this.popChar();if(td.test(s)===!1)throw Error("Expecting a HexDecimal digits");t+=s}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class ii{visitChildren(e){for(const t in e){const r=e[t];e.hasOwnProperty(t)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const rd=/\r?\n/gm,id=new vl;class sd extends ii{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&t===`
10
- `&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=si(t);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!`
11
- `.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const ki=new sd;function ad(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),ki.reset(n),ki.visit(id.pattern(n)),ki.multiline}catch{return!1}}const od=`\f
12
- \r \v              \u2028\u2029   \uFEFF`.split("");function Yi(n){const e=typeof n=="string"?new RegExp(n):n;return od.some(t=>e.test(t))}function si(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ld(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:si(e)).join("")}function ud(n,e){const t=cd(n),r=e.match(t);return!!r&&r[0].length>0}function cd(n){typeof n=="string"&&(n=new RegExp(n));const e=n,t=n.source;let r=0;function i(){let s="",a;function o(u){s+=t.substr(r,u),r+=u}function l(u){s+="(?:"+t.substr(r,u)+"|$)",r+=u}for(;r<t.length;)switch(t[r]){case"\\":switch(t[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[r+2]==="{"?l(t.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",r)-r+1):l(2);break;case"k":l(t.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[r+1]==="?")switch(t[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":a=r,r+=3,i(),s+=t.substr(a,r-a);break;case"<":switch(t[r+3]){case"=":case"!":a=r,r+=4,i(),s+=t.substr(a,r-a);break;default:o(t.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++r,s;default:l(1);break}return s}return new RegExp(i(),n.flags)}function dd(n){return n.rules.find(e=>ke(e)&&e.entry)}function fd(n){return n.rules.filter(e=>pt(e)&&e.hidden)}function El(n,e){const t=new Set,r=dd(n);if(!r)return new Set(n.rules);const i=[r].concat(fd(n));for(const a of i)Al(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||pt(a)&&a.hidden)&&s.add(a);return s}function Al(n,e,t){e.add(n.name),Vn(n).forEach(r=>{if(ct(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&Al(i,e,t)}})}function hd(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=$l(n.type.ref);return e?.terminal}}function pd(n){return n.hidden&&!Yi(Ps(n))}function md(n,e){return!n||!e?[]:_s(n,e,n.astNode,!0)}function kl(n,e,t){if(!n||!e)return;const r=_s(n,e,n.astNode,!0);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function _s(n,e,t,r){if(!r){const i=ri(n.grammarSource,lt);if(i&&i.feature===e)return[n]}return Dn(n)&&n.astNode===t?n.content.flatMap(i=>_s(i,e,t,!1)):[]}function gd(n,e,t){if(!n)return;const r=yd(n,e,n?.astNode);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function yd(n,e,t){if(n.astNode!==t)return[];if(ut(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=ji(n).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===t?ut(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function Td(n){var e;const t=n.astNode;for(;t===((e=n.container)===null||e===void 0?void 0:e.astNode);){const r=ri(n.grammarSource,lt);if(r)return r;n=n.container}}function $l(n){let e=n;return fl(e)&&(ni(e.$container)?e=e.$container.$container:ke(e.$container)?e=e.$container:Bn(e.$container)),xl(n,e,new Map)}function xl(n,e,t){var r;function i(s,a){let o;return ri(s,lt)||(o=xl(a,a,t)),t.set(n,o),o}if(t.has(n))return t.get(n);t.set(n,void 0);for(const s of Vn(e)){if(lt(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(ct(s)&&ke(s.rule.ref))return i(s,s.rule.ref);if(Vc(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function Sl(n){return Il(n,new Set)}function Il(n,e){if(e.has(n))return!0;e.add(n);for(const t of Vn(n))if(ct(t)){if(!t.rule.ref||ke(t.rule.ref)&&!Il(t.rule.ref,e))return!1}else{if(lt(t))return!1;if(ni(t))return!1}return!!n.definition}function bs(n){if(n.inferredType)return n.inferredType.name;if(n.dataType)return n.dataType;if(n.returnType){const e=n.returnType.ref;if(e){if(ke(e))return e.name;if(hl(e)||pl(e))return e.name}}}function Os(n){var e;if(ke(n))return Sl(n)?n.name:(e=bs(n))!==null&&e!==void 0?e:n.name;if(hl(n)||pl(n)||Bc(n))return n.name;if(ni(n)){const t=Rd(n);if(t)return t}else if(fl(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Rd(n){var e;if(n.inferredType)return n.inferredType.name;if(!((e=n.type)===null||e===void 0)&&e.ref)return Os(n.type.ref)}function vd(n){var e,t,r;return pt(n)?(t=(e=n.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(r=bs(n))!==null&&r!==void 0?r:n.name}function Ps(n){const e={s:!1,i:!1,u:!1},t=Ht(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const Ms=/[\s\S]/.source;function Ht(n,e){if(zc(n))return Ed(n);if(qc(n))return Ad(n);if(Kc(n))return xd(n);if(Yc(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return Ve(Ht(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(Hc(n))return $d(n);if(Xc(n))return kd(n);if(jc(n)){const t=n.regex.lastIndexOf("/"),r=n.regex.substring(1,t),i=n.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Ve(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(Jc(n))return Ve(Ms,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n?.$type}`)}}}function Ed(n){return Ve(n.elements.map(e=>Ht(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function Ad(n){return Ve(n.elements.map(e=>Ht(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function kd(n){return Ve(`${Ms}*?${Ht(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function $d(n){return Ve(`(?!${Ht(n.terminal)})${Ms}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function xd(n){return n.right?Ve(`[${$i(n.left)}-${$i(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):Ve($i(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function $i(n){return si(n.value)}function Ve(n,e){var t;return(e.wrap!==!1||e.lookahead)&&(n=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${n})`),e.cardinality?`${n}${e.cardinality}`:n}function Sd(n){const e=[],t=n.Grammar;for(const r of t.rules)pt(r)&&pd(r)&&ad(Ps(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:_c}}function Xi(n){console&&console.error&&console.error(`Error: ${n}`)}function Cl(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function Nl(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function wl(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function Id(n){return Cd(n)?n.LABEL:n.name}function Cd(n){return le(n.LABEL)&&n.LABEL!==""}class Pe{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),g.forEach(this.definition,t=>{t.accept(e)})}}class ie extends Pe{constructor(e){super([]),this.idx=1,Te(this,we(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class jt extends Pe{constructor(e){super(e.definition),this.orgText="",Te(this,we(e,t=>t!==void 0))}}class ue extends Pe{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Te(this,we(e,t=>t!==void 0))}}let Q=class extends Pe{constructor(e){super(e.definition),this.idx=1,Te(this,we(e,t=>t!==void 0))}};class Re extends Pe{constructor(e){super(e.definition),this.idx=1,Te(this,we(e,t=>t!==void 0))}}class ve extends Pe{constructor(e){super(e.definition),this.idx=1,Te(this,we(e,t=>t!==void 0))}}class K extends Pe{constructor(e){super(e.definition),this.idx=1,Te(this,we(e,t=>t!==void 0))}}class ce extends Pe{constructor(e){super(e.definition),this.idx=1,Te(this,we(e,t=>t!==void 0))}}class de extends Pe{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,Te(this,we(e,t=>t!==void 0))}}class F{constructor(e){this.idx=1,Te(this,we(e,t=>t!==void 0))}accept(e){e.visit(this)}}function Nd(n){return m.map(n,Tr)}function Tr(n){function e(t){return m.map(t,Tr)}if(n instanceof ie){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return le(n.label)&&(t.label=n.label),t}else{if(n instanceof ue)return{type:"Alternative",definition:e(n.definition)};if(n instanceof Q)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof Re)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof ve)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:Tr(new F({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof ce)return{type:"RepetitionWithSeparator",idx:n.idx,separator:Tr(new F({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof K)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof de)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof F){const t={type:"Terminal",name:n.terminalType.name,label:Id(n.terminalType),idx:n.idx};le(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=Ke(r)?r.source:r),t}else{if(n instanceof jt)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}class zt{visit(e){const t=e;switch(t.constructor){case ie:return this.visitNonTerminal(t);case ue:return this.visitAlternative(t);case Q:return this.visitOption(t);case Re:return this.visitRepetitionMandatory(t);case ve:return this.visitRepetitionMandatoryWithSeparator(t);case ce:return this.visitRepetitionWithSeparator(t);case K:return this.visitRepetition(t);case de:return this.visitAlternation(t);case F:return this.visitTerminal(t);case jt: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 wd(n){return n instanceof ue||n instanceof Q||n instanceof K||n instanceof Re||n instanceof ve||n instanceof ce||n instanceof F||n instanceof jt}function Pr(n,e=[]){return n instanceof Q||n instanceof K||n instanceof ce?!0:n instanceof de?ol(n.definition,r=>Pr(r,e)):n instanceof ie&&ae(e,n)?!1:n instanceof Pe?(n instanceof ie&&e.push(n),Ie(n.definition,r=>Pr(r,e))):!1}function Ld(n){return n instanceof de}function be(n){if(n instanceof ie)return"SUBRULE";if(n instanceof Q)return"OPTION";if(n instanceof de)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ve)return"AT_LEAST_ONE_SEP";if(n instanceof ce)return"MANY_SEP";if(n instanceof K)return"MANY";if(n instanceof F)return"CONSUME";throw Error("non exhaustive match")}class ai{walk(e,t=[]){g.forEach(e.definition,(r,i)=>{const s=Y(e.definition,i+1);if(r instanceof ie)this.walkProdRef(r,s,t);else if(r instanceof F)this.walkTerminal(r,s,t);else if(r instanceof ue)this.walkFlat(r,s,t);else if(r instanceof Q)this.walkOption(r,s,t);else if(r instanceof Re)this.walkAtLeastOne(r,s,t);else if(r instanceof ve)this.walkAtLeastOneSep(r,s,t);else if(r instanceof ce)this.walkManySep(r,s,t);else if(r instanceof K)this.walkMany(r,s,t);else if(r instanceof de)this.walkOr(r,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){const i=t.concat(r);this.walk(e,i)}walkOption(e,t,r){const i=t.concat(r);this.walk(e,i)}walkAtLeastOne(e,t,r){const i=[new Q({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=oa(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new Q({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=oa(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);g.forEach(e.definition,s=>{const a=new ue({definition:[s]});this.walk(a,i)})}}function oa(n,e,t){return[new Q({definition:[new F({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function Kn(n){if(n instanceof ie)return Kn(n.referencedRule);if(n instanceof F)return Od(n);if(wd(n))return _d(n);if(Ld(n))return bd(n);throw Error("non exhaustive match")}function _d(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=Pr(s),e=e.concat(Kn(s)),r=r+1,i=t.length>r;return Is(e)}function bd(n){const e=m.map(n.definition,t=>Kn(t));return Is(m.flatten(e))}function Od(n){return[n.terminalType]}const Ll="_~IN~_";class Pd extends ai{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){const i=Dd(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new ue({definition:s}),o=Kn(a);this.follows[i]=o}}function Md(n){const e={};return g.forEach(n,t=>{const r=new Pd(t).startWalking();Te(e,r)}),e}function Dd(n,e){return n.name+e+Ll}let Rr={};const Fd=new vl;function oi(n){const e=n.toString();if(Rr.hasOwnProperty(e))return Rr[e];{const t=Fd.pattern(e);return Rr[e]=t,t}}function Gd(){Rr={}}const _l="Complement Sets are not supported for first char optimization",Mr=`Unable to use "first char" lexer optimizations:
13
- `;function Ud(n,e=!1){try{const t=oi(n);return Ji(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===_l)e&&Cl(`${Mr} Unable to optimize: < ${n.toString()} >
9
+ `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let i=0;i<e;i++){const s=this.popChar();if(ed.test(s)===!1)throw Error("Expecting a HexDecimal digits");t+=s}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class ri{visitChildren(e){for(const t in e){const r=e[t];e.hasOwnProperty(t)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const nd=/\r?\n/gm,rd=new Rl;class id extends ri{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&t===`
10
+ `&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=ii(t);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!`
11
+ `.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const Ai=new id;function sd(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),Ai.reset(n),Ai.visit(rd.pattern(n)),Ai.multiline}catch{return!1}}const ad=`\f
12
+ \r \v              \u2028\u2029   \uFEFF`.split("");function qi(n){const e=typeof n=="string"?new RegExp(n):n;return ad.some(t=>e.test(t))}function ii(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function od(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ii(e)).join("")}function ld(n,e){const t=ud(n),r=e.match(t);return!!r&&r[0].length>0}function ud(n){typeof n=="string"&&(n=new RegExp(n));const e=n,t=n.source;let r=0;function i(){let s="",a;function o(u){s+=t.substr(r,u),r+=u}function l(u){s+="(?:"+t.substr(r,u)+"|$)",r+=u}for(;r<t.length;)switch(t[r]){case"\\":switch(t[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[r+2]==="{"?l(t.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",r)-r+1):l(2);break;case"k":l(t.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[r+1]==="?")switch(t[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":a=r,r+=3,i(),s+=t.substr(a,r-a);break;case"<":switch(t[r+3]){case"=":case"!":a=r,r+=4,i(),s+=t.substr(a,r-a);break;default:o(t.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++r,s;default:l(1);break}return s}return new RegExp(i(),n.flags)}function cd(n){return n.rules.find(e=>ke(e)&&e.entry)}function dd(n){return n.rules.filter(e=>ht(e)&&e.hidden)}function vl(n,e){const t=new Set,r=cd(n);if(!r)return new Set(n.rules);const i=[r].concat(dd(n));for(const a of i)El(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||ht(a)&&a.hidden)&&s.add(a);return s}function El(n,e,t){e.add(n.name),Bn(n).forEach(r=>{if(ut(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&El(i,e,t)}})}function fd(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=kl(n.type.ref);return e?.terminal}}function hd(n){return n.hidden&&!qi(Os(n))}function pd(n,e){return!n||!e?[]:Ls(n,e,n.astNode,!0)}function Al(n,e,t){if(!n||!e)return;const r=Ls(n,e,n.astNode,!0);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function Ls(n,e,t,r){if(!r){const i=ni(n.grammarSource,ot);if(i&&i.feature===e)return[n]}return Mn(n)&&n.astNode===t?n.content.flatMap(i=>Ls(i,e,t,!1)):[]}function md(n,e,t){if(!n)return;const r=gd(n,e,n?.astNode);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function gd(n,e,t){if(n.astNode!==t)return[];if(lt(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=Hi(n).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===t?lt(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function yd(n){var e;const t=n.astNode;for(;t===((e=n.container)===null||e===void 0?void 0:e.astNode);){const r=ni(n.grammarSource,ot);if(r)return r;n=n.container}}function kl(n){let e=n;return dl(e)&&(ti(e.$container)?e=e.$container.$container:ke(e.$container)?e=e.$container:Un(e.$container)),$l(n,e,new Map)}function $l(n,e,t){var r;function i(s,a){let o;return ni(s,ot)||(o=$l(a,a,t)),t.set(n,o),o}if(t.has(n))return t.get(n);t.set(n,void 0);for(const s of Bn(e)){if(ot(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(ut(s)&&ke(s.rule.ref))return i(s,s.rule.ref);if(Bc(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function xl(n){return Sl(n,new Set)}function Sl(n,e){if(e.has(n))return!0;e.add(n);for(const t of Bn(n))if(ut(t)){if(!t.rule.ref||ke(t.rule.ref)&&!Sl(t.rule.ref,e))return!1}else{if(ot(t))return!1;if(ti(t))return!1}return!!n.definition}function _s(n){if(n.inferredType)return n.inferredType.name;if(n.dataType)return n.dataType;if(n.returnType){const e=n.returnType.ref;if(e){if(ke(e))return e.name;if(fl(e)||hl(e))return e.name}}}function bs(n){var e;if(ke(n))return xl(n)?n.name:(e=_s(n))!==null&&e!==void 0?e:n.name;if(fl(n)||hl(n)||Uc(n))return n.name;if(ti(n)){const t=Td(n);if(t)return t}else if(dl(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Td(n){var e;if(n.inferredType)return n.inferredType.name;if(!((e=n.type)===null||e===void 0)&&e.ref)return bs(n.type.ref)}function Rd(n){var e,t,r;return ht(n)?(t=(e=n.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(r=_s(n))!==null&&r!==void 0?r:n.name}function Os(n){const e={s:!1,i:!1,u:!1},t=Wt(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const Ps=/[\s\S]/.source;function Wt(n,e){if(jc(n))return vd(n);if(zc(n))return Ed(n);if(Vc(n))return $d(n);if(qc(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return Be(Wt(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(Wc(n))return kd(n);if(Yc(n))return Ad(n);if(Hc(n)){const t=n.regex.lastIndexOf("/"),r=n.regex.substring(1,t),i=n.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Be(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(Xc(n))return Be(Ps,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n?.$type}`)}}}function vd(n){return Be(n.elements.map(e=>Wt(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function Ed(n){return Be(n.elements.map(e=>Wt(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function Ad(n){return Be(`${Ps}*?${Wt(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function kd(n){return Be(`(?!${Wt(n.terminal)})${Ps}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function $d(n){return n.right?Be(`[${ki(n.left)}-${ki(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):Be(ki(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function ki(n){return ii(n.value)}function Be(n,e){var t;return(e.wrap!==!1||e.lookahead)&&(n=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${n})`),e.cardinality?`${n}${e.cardinality}`:n}function xd(n){const e=[],t=n.Grammar;for(const r of t.rules)ht(r)&&hd(r)&&sd(Os(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:Lc}}function Yi(n){console&&console.error&&console.error(`Error: ${n}`)}function Il(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function Cl(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function Nl(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function Sd(n){return Id(n)?n.LABEL:n.name}function Id(n){return le(n.LABEL)&&n.LABEL!==""}class Oe{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),m.forEach(this.definition,t=>{t.accept(e)})}}class ie extends Oe{constructor(e){super([]),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Ht extends Oe{constructor(e){super(e.definition),this.orgText="",Te(this,Ne(e,t=>t!==void 0))}}class ue extends Oe{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Te(this,Ne(e,t=>t!==void 0))}}let Q=class extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}};class Re extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class ve extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class K extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class ce extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class de extends Oe{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,Te(this,Ne(e,t=>t!==void 0))}}class F{constructor(e){this.idx=1,Te(this,Ne(e,t=>t!==void 0))}accept(e){e.visit(this)}}function Cd(n){return g.map(n,yr)}function yr(n){function e(t){return g.map(t,yr)}if(n instanceof ie){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return le(n.label)&&(t.label=n.label),t}else{if(n instanceof ue)return{type:"Alternative",definition:e(n.definition)};if(n instanceof Q)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof Re)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof ve)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:yr(new F({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof ce)return{type:"RepetitionWithSeparator",idx:n.idx,separator:yr(new F({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof K)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof de)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof F){const t={type:"Terminal",name:n.terminalType.name,label:Sd(n.terminalType),idx:n.idx};le(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=Ve(r)?r.source:r),t}else{if(n instanceof Ht)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}class jt{visit(e){const t=e;switch(t.constructor){case ie:return this.visitNonTerminal(t);case ue:return this.visitAlternative(t);case Q:return this.visitOption(t);case Re:return this.visitRepetitionMandatory(t);case ve:return this.visitRepetitionMandatoryWithSeparator(t);case ce:return this.visitRepetitionWithSeparator(t);case K:return this.visitRepetition(t);case de:return this.visitAlternation(t);case F:return this.visitTerminal(t);case Ht: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 Nd(n){return n instanceof ue||n instanceof Q||n instanceof K||n instanceof Re||n instanceof ve||n instanceof ce||n instanceof F||n instanceof Ht}function Or(n,e=[]){return n instanceof Q||n instanceof K||n instanceof ce?!0:n instanceof de?al(n.definition,r=>Or(r,e)):n instanceof ie&&ae(e,n)?!1:n instanceof Oe?(n instanceof ie&&e.push(n),Ie(n.definition,r=>Or(r,e))):!1}function wd(n){return n instanceof de}function _e(n){if(n instanceof ie)return"SUBRULE";if(n instanceof Q)return"OPTION";if(n instanceof de)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ve)return"AT_LEAST_ONE_SEP";if(n instanceof ce)return"MANY_SEP";if(n instanceof K)return"MANY";if(n instanceof F)return"CONSUME";throw Error("non exhaustive match")}class si{walk(e,t=[]){m.forEach(e.definition,(r,i)=>{const s=Y(e.definition,i+1);if(r instanceof ie)this.walkProdRef(r,s,t);else if(r instanceof F)this.walkTerminal(r,s,t);else if(r instanceof ue)this.walkFlat(r,s,t);else if(r instanceof Q)this.walkOption(r,s,t);else if(r instanceof Re)this.walkAtLeastOne(r,s,t);else if(r instanceof ve)this.walkAtLeastOneSep(r,s,t);else if(r instanceof ce)this.walkManySep(r,s,t);else if(r instanceof K)this.walkMany(r,s,t);else if(r instanceof de)this.walkOr(r,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){const i=t.concat(r);this.walk(e,i)}walkOption(e,t,r){const i=t.concat(r);this.walk(e,i)}walkAtLeastOne(e,t,r){const i=[new Q({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=aa(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new Q({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=aa(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);m.forEach(e.definition,s=>{const a=new ue({definition:[s]});this.walk(a,i)})}}function aa(n,e,t){return[new Q({definition:[new F({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function Vn(n){if(n instanceof ie)return Vn(n.referencedRule);if(n instanceof F)return bd(n);if(Nd(n))return Ld(n);if(wd(n))return _d(n);throw Error("non exhaustive match")}function Ld(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=Or(s),e=e.concat(Vn(s)),r=r+1,i=t.length>r;return Ss(e)}function _d(n){const e=g.map(n.definition,t=>Vn(t));return Ss(g.flatten(e))}function bd(n){return[n.terminalType]}const wl="_~IN~_";class Od extends si{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){const i=Md(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new ue({definition:s}),o=Vn(a);this.follows[i]=o}}function Pd(n){const e={};return m.forEach(n,t=>{const r=new Od(t).startWalking();Te(e,r)}),e}function Md(n,e){return n.name+e+wl}let Tr={};const Dd=new Rl;function ai(n){const e=n.toString();if(Tr.hasOwnProperty(e))return Tr[e];{const t=Dd.pattern(e);return Tr[e]=t,t}}function Fd(){Tr={}}const Ll="Complement Sets are not supported for first char optimization",Pr=`Unable to use "first char" lexer optimizations:
13
+ `;function Gd(n,e=!1){try{const t=ai(n);return Xi(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===Ll)e&&Il(`${Pr} Unable to optimize: < ${n.toString()} >
14
14
  Complement Sets cannot be automatically optimized.
15
15
  This will disable the lexer's first char optimizations.
16
16
  See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=`
17
17
  This will disable the lexer's first char optimizations.
18
- See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Xi(`${Mr}
18
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Yi(`${Pr}
19
19
  Failed parsing: < ${n.toString()} >
20
20
  Using the @chevrotain/regexp-to-ast library
21
- Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function Ji(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)Ji(n.value[i],e,t);break;case"Alternative":const r=n.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":sr(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(_l);g.forEach(a.value,l=>{if(typeof l=="number")sr(l,e,t);else{const u=l;if(t===!0)for(let c=u.from;c<=u.to;c++)sr(c,e,t);else{for(let c=u.from;c<=u.to&&c<Cn;c++)sr(c,e,t);if(u.to>=Cn){const c=u.from>=Cn?u.from:Cn,d=u.to,h=ze(c),f=ze(d);for(let y=h;y<=f;y++)e[y]=y}}}});break;case"Group":Ji(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&Qi(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return g.values(e)}function sr(n,e,t){const r=ze(n);e[r]=r,t===!0&&Bd(n,e)}function Bd(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=ze(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=ze(i.charCodeAt(0));e[s]=s}}}function la(n,e){return m.find(n.value,t=>{if(typeof t=="number")return ae(e,t);{const r=t;return m.find(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function Qi(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?$.isArray(n.value)?Ie(n.value,Qi):Qi(n.value):!1}class Vd extends ii{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){ae(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?la(e,this.targetCharCodes)===void 0&&(this.found=!0):la(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function Ds(n,e){if(e instanceof RegExp){const t=oi(e),r=new Vd(n);return r.visit(t),r.found}else return m.find(e,t=>ae(n,t.charCodeAt(0)))!==void 0}const dt="PATTERN",In="defaultMode",ar="modes";let bl=typeof new RegExp("(?:)").sticky=="boolean";function Kd(n,e){e=m.defaults(e,{useSticky:bl,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
- `],tracer:(x,E)=>E()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{hf()});let r;t("Reject Lexer.NA",()=>{r=ti(n,x=>x[dt]===oe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=m.map(r,x=>{const E=x[dt];if(Ke(E)){const N=E.source;return N.length===1&&N!=="^"&&N!=="$"&&N!=="."&&!E.ignoreCase?N:N.length===2&&N[0]==="\\"&&!ae(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],N[1])?N[1]:e.useSticky?ca(E):ua(E)}else{if($.isFunction(E))return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{const N=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),D=new RegExp(N);return e.useSticky?ca(D):ua(D)}}else throw Error("non exhaustive match")}})});let a,o,l,u,c;t("misc mapping",()=>{a=m.map(r,x=>x.tokenTypeIdx),o=m.map(r,x=>{const E=x.GROUP;if(E!==oe.SKIPPED){if(le(E))return E;if(g.isUndefined(E))return!1;throw Error("non exhaustive match")}}),l=m.map(r,x=>{const E=x.LONGER_ALT;if(E)return $.isArray(E)?m.map(E,D=>ea(r,D)):[ea(r,E)]}),u=m.map(r,x=>x.PUSH_MODE),c=m.map(r,x=>m.has(x,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const x=Ml(e.lineTerminatorCharacters);d=m.map(r,E=>!1),e.positionTracking!=="onlyOffset"&&(d=m.map(r,E=>m.has(E,"LINE_BREAKS")?!!E.LINE_BREAKS:Pl(E,x)===!1&&Ds(x,E.PATTERN)))});let h,f,y,T;t("Misc Mapping #2",()=>{h=m.map(r,Ol),f=m.map(s,cf),y=g.reduce(r,(x,E)=>{const N=E.GROUP;return le(N)&&N!==oe.SKIPPED&&(x[N]=[]),x},{}),T=m.map(s,(x,E)=>({pattern:s[E],longerAlt:l[E],canLineTerminator:d[E],isCustom:h[E],short:f[E],group:o[E],push:u[E],pop:c[E],tokenTypeIdx:a[E],tokenType:r[E]}))});let k=!0,v=[];return e.safeMode||t("First Char Optimization",()=>{v=g.reduce(r,(x,E,N)=>{if(typeof E.PATTERN=="string"){const D=E.PATTERN.charCodeAt(0),ee=ze(D);xi(x,ee,T[N])}else if($.isArray(E.START_CHARS_HINT)){let D;g.forEach(E.START_CHARS_HINT,ee=>{const $e=typeof ee=="string"?ee.charCodeAt(0):ee,fe=ze($e);D!==fe&&(D=fe,xi(x,fe,T[N]))})}else if(Ke(E.PATTERN))if(E.PATTERN.unicode)k=!1,e.ensureOptimizations&&Xi(`${Mr} Unable to analyze < ${E.PATTERN.toString()} > pattern.
21
+ Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function Xi(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)Xi(n.value[i],e,t);break;case"Alternative":const r=n.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":ir(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(Ll);m.forEach(a.value,l=>{if(typeof l=="number")ir(l,e,t);else{const u=l;if(t===!0)for(let c=u.from;c<=u.to;c++)ir(c,e,t);else{for(let c=u.from;c<=u.to&&c<In;c++)ir(c,e,t);if(u.to>=In){const c=u.from>=In?u.from:In,d=u.to,h=je(c),f=je(d);for(let y=h;y<=f;y++)e[y]=y}}}});break;case"Group":Xi(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&Ji(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return m.values(e)}function ir(n,e,t){const r=je(n);e[r]=r,t===!0&&Ud(n,e)}function Ud(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=je(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=je(i.charCodeAt(0));e[s]=s}}}function oa(n,e){return g.find(n.value,t=>{if(typeof t=="number")return ae(e,t);{const r=t;return g.find(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function Ji(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?$.isArray(n.value)?Ie(n.value,Ji):Ji(n.value):!1}class Bd extends ri{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){ae(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?oa(e,this.targetCharCodes)===void 0&&(this.found=!0):oa(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function Ms(n,e){if(e instanceof RegExp){const t=ai(e),r=new Bd(n);return r.visit(t),r.found}else return g.find(e,t=>ae(n,t.charCodeAt(0)))!==void 0}const ct="PATTERN",Sn="defaultMode",sr="modes";let _l=typeof new RegExp("(?:)").sticky=="boolean";function Vd(n,e){e=g.defaults(e,{useSticky:_l,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
22
+ `],tracer:(x,E)=>E()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{ff()});let r;t("Reject Lexer.NA",()=>{r=ei(n,x=>x[ct]===oe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=g.map(r,x=>{const E=x[ct];if(Ve(E)){const N=E.source;return N.length===1&&N!=="^"&&N!=="$"&&N!=="."&&!E.ignoreCase?N:N.length===2&&N[0]==="\\"&&!ae(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],N[1])?N[1]:e.useSticky?ua(E):la(E)}else{if($.isFunction(E))return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{const N=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),D=new RegExp(N);return e.useSticky?ua(D):la(D)}}else throw Error("non exhaustive match")}})});let a,o,l,u,c;t("misc mapping",()=>{a=g.map(r,x=>x.tokenTypeIdx),o=g.map(r,x=>{const E=x.GROUP;if(E!==oe.SKIPPED){if(le(E))return E;if(m.isUndefined(E))return!1;throw Error("non exhaustive match")}}),l=g.map(r,x=>{const E=x.LONGER_ALT;if(E)return $.isArray(E)?g.map(E,D=>Zs(r,D)):[Zs(r,E)]}),u=g.map(r,x=>x.PUSH_MODE),c=g.map(r,x=>g.has(x,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const x=Pl(e.lineTerminatorCharacters);d=g.map(r,E=>!1),e.positionTracking!=="onlyOffset"&&(d=g.map(r,E=>g.has(E,"LINE_BREAKS")?!!E.LINE_BREAKS:Ol(E,x)===!1&&Ms(x,E.PATTERN)))});let h,f,y,T;t("Misc Mapping #2",()=>{h=g.map(r,bl),f=g.map(s,uf),y=m.reduce(r,(x,E)=>{const N=E.GROUP;return le(N)&&N!==oe.SKIPPED&&(x[N]=[]),x},{}),T=g.map(s,(x,E)=>({pattern:s[E],longerAlt:l[E],canLineTerminator:d[E],isCustom:h[E],short:f[E],group:o[E],push:u[E],pop:c[E],tokenTypeIdx:a[E],tokenType:r[E]}))});let k=!0,v=[];return e.safeMode||t("First Char Optimization",()=>{v=m.reduce(r,(x,E,N)=>{if(typeof E.PATTERN=="string"){const D=E.PATTERN.charCodeAt(0),ee=je(D);$i(x,ee,T[N])}else if($.isArray(E.START_CHARS_HINT)){let D;m.forEach(E.START_CHARS_HINT,ee=>{const $e=typeof ee=="string"?ee.charCodeAt(0):ee,fe=je($e);D!==fe&&(D=fe,$i(x,fe,T[N]))})}else if(Ve(E.PATTERN))if(E.PATTERN.unicode)k=!1,e.ensureOptimizations&&Yi(`${Pr} Unable to analyze < ${E.PATTERN.toString()} > pattern.
23
23
  The regexp unicode flag is not currently supported by the regexp-to-ast library.
24
24
  This will disable the lexer's first char optimizations.
25
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const D=Ud(E.PATTERN,e.ensureOptimizations);$.isEmpty(D)&&(k=!1),g.forEach(D,ee=>{xi(x,ee,T[N])})}else e.ensureOptimizations&&Xi(`${Mr} TokenType: <${E.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
25
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const D=Gd(E.PATTERN,e.ensureOptimizations);$.isEmpty(D)&&(k=!1),m.forEach(D,ee=>{$i(x,ee,T[N])})}else e.ensureOptimizations&&Yi(`${Pr} TokenType: <${E.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
26
26
  This will disable the lexer's first char optimizations.
27
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),k=!1;return x},[])}),{emptyGroups:y,patternIdxToConfig:T,charCodeToPatternIdxToConfig:v,hasCustom:i,canBeOptimized:k}}function Wd(n,e){let t=[];const r=jd(n);t=t.concat(r.errors);const i=zd(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Hd(s)),t=t.concat(tf(s)),t=t.concat(nf(s,e)),t=t.concat(rf(s)),t}function Hd(n){let e=[];const t=g.filter(n,r=>Ke(r[dt]));return e=e.concat(Yd(t)),e=e.concat(Qd(t)),e=e.concat(Zd(t)),e=e.concat(ef(t)),e=e.concat(Xd(t)),e}function jd(n){const e=g.filter(n,i=>!m.has(i,dt)),t=m.map(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:W.MISSING_PATTERN,tokenTypes:[i]})),r=ei(n,e);return{errors:t,valid:r}}function zd(n){const e=g.filter(n,i=>{const s=i[dt];return!Ke(s)&&!$.isFunction(s)&&!m.has(s,"exec")&&!le(s)}),t=m.map(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:W.INVALID_PATTERN,tokenTypes:[i]})),r=ei(n,e);return{errors:t,valid:r}}const qd=/[^\\][$]/;function Yd(n){class e extends ii{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=g.filter(n,i=>{const s=i.PATTERN;try{const a=oi(s),o=new e;return o.visit(a),o.found}catch{return qd.test(s.source)}});return m.map(t,i=>({message:`Unexpected RegExp Anchor Error:
27
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),k=!1;return x},[])}),{emptyGroups:y,patternIdxToConfig:T,charCodeToPatternIdxToConfig:v,hasCustom:i,canBeOptimized:k}}function Kd(n,e){let t=[];const r=Hd(n);t=t.concat(r.errors);const i=jd(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Wd(s)),t=t.concat(ef(s)),t=t.concat(tf(s,e)),t=t.concat(nf(s)),t}function Wd(n){let e=[];const t=m.filter(n,r=>Ve(r[ct]));return e=e.concat(qd(t)),e=e.concat(Jd(t)),e=e.concat(Qd(t)),e=e.concat(Zd(t)),e=e.concat(Yd(t)),e}function Hd(n){const e=m.filter(n,i=>!g.has(i,ct)),t=g.map(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:W.MISSING_PATTERN,tokenTypes:[i]})),r=Zr(n,e);return{errors:t,valid:r}}function jd(n){const e=m.filter(n,i=>{const s=i[ct];return!Ve(s)&&!$.isFunction(s)&&!g.has(s,"exec")&&!le(s)}),t=g.map(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:W.INVALID_PATTERN,tokenTypes:[i]})),r=Zr(n,e);return{errors:t,valid:r}}const zd=/[^\\][$]/;function qd(n){class e extends ri{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=m.filter(n,i=>{const s=i.PATTERN;try{const a=ai(s),o=new e;return o.visit(a),o.found}catch{return zd.test(s.source)}});return g.map(t,i=>({message:`Unexpected RegExp Anchor Error:
28
28
  Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
29
- See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:W.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Xd(n){const e=g.filter(n,r=>r.PATTERN.test(""));return m.map(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:W.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const Jd=/[^\\[][\^]|^\^/;function Qd(n){class e extends ii{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=g.filter(n,i=>{const s=i.PATTERN;try{const a=oi(s),o=new e;return o.visit(a),o.found}catch{return Jd.test(s.source)}});return m.map(t,i=>({message:`Unexpected RegExp Anchor Error:
29
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:W.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Yd(n){const e=m.filter(n,r=>r.PATTERN.test(""));return g.map(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:W.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const Xd=/[^\\[][\^]|^\^/;function Jd(n){class e extends ri{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=m.filter(n,i=>{const s=i.PATTERN;try{const a=ai(s),o=new e;return o.visit(a),o.found}catch{return Xd.test(s.source)}});return g.map(t,i=>({message:`Unexpected RegExp Anchor Error:
30
30
  Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
31
- See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:W.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Zd(n){const e=g.filter(n,r=>{const i=r[dt];return i instanceof RegExp&&(i.multiline||i.global)});return m.map(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:W.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function ef(n){const e=[];let t=m.map(n,s=>g.reduce(n,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!ae(e,o)&&o.PATTERN!==oe.NA&&(e.push(o),a.push(o)),a),[]));t=Un(t);const r=g.filter(t,s=>s.length>1);return m.map(r,s=>{const a=m.map(s,l=>l.name);return{message:`The same RegExp pattern ->${Ne(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:W.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function tf(n){const e=g.filter(n,r=>{if(!m.has(r,"GROUP"))return!1;const i=r.GROUP;return i!==oe.SKIPPED&&i!==oe.NA&&!le(i)});return m.map(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:W.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function nf(n,e){const t=g.filter(n,i=>i.PUSH_MODE!==void 0&&!ae(e,i.PUSH_MODE));return m.map(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:W.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function rf(n){const e=[],t=g.reduce(n,(r,i,s)=>{const a=i.PATTERN;return a===oe.NA||(le(a)?r.push({str:a,idx:s,tokenType:i}):Ke(a)&&af(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return g.forEach(n,(r,i)=>{g.forEach(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&sf(s,r.PATTERN)){const l=`Token: ->${o.name}<- can never be matched.
31
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:W.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Qd(n){const e=m.filter(n,r=>{const i=r[ct];return i instanceof RegExp&&(i.multiline||i.global)});return g.map(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:W.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function Zd(n){const e=[];let t=g.map(n,s=>m.reduce(n,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!ae(e,o)&&o.PATTERN!==oe.NA&&(e.push(o),a.push(o)),a),[]));t=Gn(t);const r=m.filter(t,s=>s.length>1);return g.map(r,s=>{const a=g.map(s,l=>l.name);return{message:`The same RegExp pattern ->${Ce(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:W.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function ef(n){const e=m.filter(n,r=>{if(!g.has(r,"GROUP"))return!1;const i=r.GROUP;return i!==oe.SKIPPED&&i!==oe.NA&&!le(i)});return g.map(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:W.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function tf(n,e){const t=m.filter(n,i=>i.PUSH_MODE!==void 0&&!ae(e,i.PUSH_MODE));return g.map(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:W.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function nf(n){const e=[],t=m.reduce(n,(r,i,s)=>{const a=i.PATTERN;return a===oe.NA||(le(a)?r.push({str:a,idx:s,tokenType:i}):Ve(a)&&sf(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return m.forEach(n,(r,i)=>{m.forEach(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&rf(s,r.PATTERN)){const l=`Token: ->${o.name}<- can never be matched.
32
32
  Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
33
- See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:W.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function sf(n,e){if(Ke(e)){const t=e.exec(n);return t!==null&&t.index===0}else{if($.isFunction(e))return e(n,0,[],{});if(m.has(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function af(n){const e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return m.find(e,t=>n.source.indexOf(t)!==-1)===void 0}function ua(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function ca(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function of(n,e,t){const r=[];return m.has(n,In)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+In+`> property in its definition
34
- `,type:W.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),m.has(n,ar)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+ar+`> property in its definition
35
- `,type:W.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),m.has(n,ar)&&m.has(n,In)&&!m.has(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${In}: <${n.defaultMode}>which does not exist
36
- `,type:W.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),m.has(n,ar)&&g.forEach(n.modes,(i,s)=>{g.forEach(i,(a,o)=>{if(g.isUndefined(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
37
- `,type:W.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(m.has(a,"LONGER_ALT")){const l=$.isArray(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];g.forEach(l,u=>{!g.isUndefined(u)&&!ae(i,u)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${u.name}> on token <${a.name}> outside of mode <${s}>
38
- `,type:W.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function lf(n,e,t){const r=[];let i=!1;const s=Un(m.flatten(g.values(n.modes))),a=ti(s,l=>l[dt]===oe.NA),o=Ml(t);return e&&g.forEach(a,l=>{const u=Pl(l,o);if(u!==!1){const d={message:ff(l,u),type:u.issue,tokenType:l};r.push(d)}else m.has(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):Ds(o,l.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
33
+ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:W.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function rf(n,e){if(Ve(e)){const t=e.exec(n);return t!==null&&t.index===0}else{if($.isFunction(e))return e(n,0,[],{});if(g.has(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function sf(n){const e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return g.find(e,t=>n.source.indexOf(t)!==-1)===void 0}function la(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function ua(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function af(n,e,t){const r=[];return g.has(n,Sn)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Sn+`> property in its definition
34
+ `,type:W.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),g.has(n,sr)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+sr+`> property in its definition
35
+ `,type:W.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),g.has(n,sr)&&g.has(n,Sn)&&!g.has(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Sn}: <${n.defaultMode}>which does not exist
36
+ `,type:W.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),g.has(n,sr)&&m.forEach(n.modes,(i,s)=>{m.forEach(i,(a,o)=>{if(m.isUndefined(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
37
+ `,type:W.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(g.has(a,"LONGER_ALT")){const l=$.isArray(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];m.forEach(l,u=>{!m.isUndefined(u)&&!ae(i,u)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${u.name}> on token <${a.name}> outside of mode <${s}>
38
+ `,type:W.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function of(n,e,t){const r=[];let i=!1;const s=Gn(g.flatten(m.values(n.modes))),a=ei(s,l=>l[ct]===oe.NA),o=Pl(t);return e&&m.forEach(a,l=>{const u=Ol(l,o);if(u!==!1){const d={message:df(l,u),type:u.issue,tokenType:l};r.push(d)}else g.has(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):Ms(o,l.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
39
39
  This Lexer has been defined to track line and column information,
40
40
  But none of the Token Types can be identified as matching a line terminator.
41
41
  See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
42
- for details.`,type:W.NO_LINE_BREAKS_FLAGS}),r}function uf(n){const e={},t=Ce.keys(n);return g.forEach(t,r=>{const i=n[r];if($.isArray(i))e[r]=[];else throw Error("non exhaustive match")}),e}function Ol(n){const e=n.PATTERN;if(Ke(e))return!1;if($.isFunction(e))return!0;if(m.has(e,"exec"))return!0;if(le(e))return!1;throw Error("non exhaustive match")}function cf(n){return le(n)&&n.length===1?n.charCodeAt(0):!1}const df={test:function(n){const e=n.length;for(let t=this.lastIndex;t<e;t++){const r=n.charCodeAt(t);if(r===10)return this.lastIndex=t+1,!0;if(r===13)return n.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function Pl(n,e){if(m.has(n,"LINE_BREAKS"))return!1;if(Ke(n.PATTERN)){try{Ds(e,n.PATTERN)}catch(t){return{issue:W.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(le(n.PATTERN))return!1;if(Ol(n))return{issue:W.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function ff(n,e){if(e.issue===W.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
42
+ for details.`,type:W.NO_LINE_BREAKS_FLAGS}),r}function lf(n){const e={},t=m.keys(n);return m.forEach(t,r=>{const i=n[r];if($.isArray(i))e[r]=[];else throw Error("non exhaustive match")}),e}function bl(n){const e=n.PATTERN;if(Ve(e))return!1;if($.isFunction(e))return!0;if(g.has(e,"exec"))return!0;if(le(e))return!1;throw Error("non exhaustive match")}function uf(n){return le(n)&&n.length===1?n.charCodeAt(0):!1}const cf={test:function(n){const e=n.length;for(let t=this.lastIndex;t<e;t++){const r=n.charCodeAt(t);if(r===10)return this.lastIndex=t+1,!0;if(r===13)return n.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function Ol(n,e){if(g.has(n,"LINE_BREAKS"))return!1;if(Ve(n.PATTERN)){try{Ms(e,n.PATTERN)}catch(t){return{issue:W.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(le(n.PATTERN))return!1;if(bl(n))return{issue:W.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function df(n,e){if(e.issue===W.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
43
43
  The problem is in the <${n.name}> Token Type
44
44
  Root cause: ${e.errMsg}.
45
45
  For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===W.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
46
46
  The problem is in the <${n.name}> Token Type
47
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Ml(n){return m.map(n,t=>le(t)?t.charCodeAt(0):t)}function xi(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const Cn=256;let vr=[];function ze(n){return n<Cn?n:vr[n]}function hf(){if($.isEmpty(vr)){vr=new Array(65536);for(let n=0;n<65536;n++)vr[n]=n>255?255+~~(n/255):n}}function Wn(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function Dr(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let da=1;const Dl={};function Hn(n){const e=pf(n);mf(e),yf(e),gf(e),g.forEach(e,t=>{t.isParent=t.categoryMatches.length>0})}function pf(n){let e=Z.clone(n),t=n,r=!0;for(;r;){t=Un(m.flatten(m.map(t,s=>s.CATEGORIES)));const i=ei(t,e);e=e.concat(i),$.isEmpty(i)?r=!1:t=i}return e}function mf(n){g.forEach(n,e=>{Gl(e)||(Dl[da]=e,e.tokenTypeIdx=da++),fa(e)&&!$.isArray(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),fa(e)||(e.CATEGORIES=[]),Tf(e)||(e.categoryMatches=[]),Rf(e)||(e.categoryMatchesMap={})})}function gf(n){g.forEach(n,e=>{e.categoryMatches=[],g.forEach(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(Dl[r].tokenTypeIdx)})})}function yf(n){g.forEach(n,e=>{Fl([],e)})}function Fl(n,e){g.forEach(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),g.forEach(e.CATEGORIES,t=>{const r=n.concat(e);ae(r,t)||Fl(r,t)})}function Gl(n){return m.has(n,"tokenTypeIdx")}function fa(n){return m.has(n,"CATEGORIES")}function Tf(n){return m.has(n,"categoryMatches")}function Rf(n){return m.has(n,"categoryMatchesMap")}function vf(n){return m.has(n,"tokenTypeIdx")}const Zi={buildUnableToPopLexerModeMessage(n){return`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(n,e,t,r,i){return`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var W;(function(n){n[n.MISSING_PATTERN=0]="MISSING_PATTERN",n[n.INVALID_PATTERN=1]="INVALID_PATTERN",n[n.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",n[n.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",n[n.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",n[n.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",n[n.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",n[n.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",n[n.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",n[n.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",n[n.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",n[n.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",n[n.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",n[n.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",n[n.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",n[n.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",n[n.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",n[n.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(W||(W={}));const Nn={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
48
- `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Zi,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Nn);class oe{constructor(e,t=Nn){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:l}=Nl(s),u=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&u(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
49
- a boolean 2nd argument is no longer supported`);this.config=Te({},Nn,t);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Nn.lineTerminatorsPattern)this.config.lineTerminatorsPattern=df;else if(this.config.lineTerminatorCharacters===Nn.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
50
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),$.isArray(e)?i={modes:{defaultMode:Z.clone(e)},defaultMode:In}:(s=!1,i=Z.clone(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(of(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(lf(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},g.forEach(i.modes,(o,l)=>{i.modes[l]=ti(o,u=>g.isUndefined(u))});const a=Ce.keys(i.modes);if(g.forEach(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Wd(o,a))}),$.isEmpty(this.lexerDefinitionErrors)){Hn(o);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=Kd(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=u.charCodeToPatternIdxToConfig,this.emptyGroups=Te({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!$.isEmpty(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=m.map(this.lexerDefinitionErrors,u=>u.message).join(`-----------------------
47
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Pl(n){return g.map(n,t=>le(t)?t.charCodeAt(0):t)}function $i(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const In=256;let Rr=[];function je(n){return n<In?n:Rr[n]}function ff(){if($.isEmpty(Rr)){Rr=new Array(65536);for(let n=0;n<65536;n++)Rr[n]=n>255?255+~~(n/255):n}}function Kn(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function Mr(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let ca=1;const Ml={};function Wn(n){const e=hf(n);pf(e),gf(e),mf(e),m.forEach(e,t=>{t.isParent=t.categoryMatches.length>0})}function hf(n){let e=Z.clone(n),t=n,r=!0;for(;r;){t=Gn(g.flatten(g.map(t,s=>s.CATEGORIES)));const i=Zr(t,e);e=e.concat(i),$.isEmpty(i)?r=!1:t=i}return e}function pf(n){m.forEach(n,e=>{Fl(e)||(Ml[ca]=e,e.tokenTypeIdx=ca++),da(e)&&!$.isArray(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),da(e)||(e.CATEGORIES=[]),yf(e)||(e.categoryMatches=[]),Tf(e)||(e.categoryMatchesMap={})})}function mf(n){m.forEach(n,e=>{e.categoryMatches=[],m.forEach(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(Ml[r].tokenTypeIdx)})})}function gf(n){m.forEach(n,e=>{Dl([],e)})}function Dl(n,e){m.forEach(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),m.forEach(e.CATEGORIES,t=>{const r=n.concat(e);ae(r,t)||Dl(r,t)})}function Fl(n){return g.has(n,"tokenTypeIdx")}function da(n){return g.has(n,"CATEGORIES")}function yf(n){return g.has(n,"categoryMatches")}function Tf(n){return g.has(n,"categoryMatchesMap")}function Rf(n){return g.has(n,"tokenTypeIdx")}const Qi={buildUnableToPopLexerModeMessage(n){return`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(n,e,t,r,i){return`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var W;(function(n){n[n.MISSING_PATTERN=0]="MISSING_PATTERN",n[n.INVALID_PATTERN=1]="INVALID_PATTERN",n[n.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",n[n.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",n[n.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",n[n.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",n[n.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",n[n.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",n[n.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",n[n.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",n[n.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",n[n.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",n[n.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",n[n.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",n[n.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",n[n.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",n[n.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",n[n.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(W||(W={}));const Cn={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
48
+ `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Qi,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Cn);class oe{constructor(e,t=Cn){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:l}=Cl(s),u=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&u(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
49
+ a boolean 2nd argument is no longer supported`);this.config=Te({},Cn,t);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Cn.lineTerminatorsPattern)this.config.lineTerminatorsPattern=cf;else if(this.config.lineTerminatorCharacters===Cn.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
50
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),$.isArray(e)?i={modes:{defaultMode:Z.clone(e)},defaultMode:Sn}:(s=!1,i=Z.clone(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(af(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(of(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},m.forEach(i.modes,(o,l)=>{i.modes[l]=ei(o,u=>m.isUndefined(u))});const a=m.keys(i.modes);if(m.forEach(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Kd(o,a))}),$.isEmpty(this.lexerDefinitionErrors)){Wn(o);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=Vd(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=u.charCodeToPatternIdxToConfig,this.emptyGroups=Te({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!$.isEmpty(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=g.map(this.lexerDefinitionErrors,u=>u.message).join(`-----------------------
51
51
  `);throw new Error(`Errors detected in definition of Lexer:
52
- `+l)}g.forEach(this.lexerDefinitionWarning,o=>{Cl(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(bl?(this.chopInput=$.identity,this.match=this.matchWithTest):(this.updateLastIndex=g.noop,this.match=this.matchWithExec),s&&(this.handleModes=g.noop),this.trackStartLines===!1&&(this.computeNewColumn=$.identity),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=g.noop),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=g.reduce(this.canModeBeOptimized,(l,u,c)=>(u===!1&&l.push(c),l),[]);if(t.ensureOptimizations&&!$.isEmpty(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
52
+ `+l)}m.forEach(this.lexerDefinitionWarning,o=>{Il(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(_l?(this.chopInput=$.identity,this.match=this.matchWithTest):(this.updateLastIndex=m.noop,this.match=this.matchWithExec),s&&(this.handleModes=m.noop),this.trackStartLines===!1&&(this.computeNewColumn=$.identity),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=m.noop),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=m.reduce(this.canModeBeOptimized,(l,u,c)=>(u===!1&&l.push(c),l),[]);if(t.ensureOptimizations&&!$.isEmpty(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
53
53
  Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
54
- Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Gd()}),this.TRACE_INIT("toFastProperties",()=>{wl(this)})})}tokenize(e,t=this.defaultMode){if(!$.isEmpty(this.lexerDefinitionErrors)){const i=m.map(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
54
+ Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Fd()}),this.TRACE_INIT("toFastProperties",()=>{Nl(this)})})}tokenize(e,t=this.defaultMode){if(!$.isEmpty(this.lexerDefinitionErrors)){const i=g.map(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
55
55
  `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
56
- `+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,s,a,o,l,u,c,d,h,f,y,T,k,v;const x=e,E=x.length;let N=0,D=0;const ee=this.hasCustom?0:Math.floor(e.length/10),$e=new Array(ee),fe=[];let _e=this.trackStartLines?1:void 0,Ee=this.trackStartLines?1:void 0;const S=uf(this.emptyGroups),R=this.trackStartLines,C=this.config.lineTerminatorsPattern;let I=0,b=[],_=[];const L=[],he=[];Object.freeze(he);let j;function V(){return b}function rt(te){const Ae=ze(te),Tt=_[Ae];return Tt===void 0?he:Tt}const sc=te=>{if(L.length===1&&te.tokenType.PUSH_MODE===void 0){const Ae=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(te);fe.push({offset:te.startOffset,line:te.startLine,column:te.startColumn,length:te.image.length,message:Ae})}else{L.pop();const Ae=m.last(L);b=this.patternIdxToConfig[Ae],_=this.charCodeToPatternIdxToConfig[Ae],I=b.length;const Tt=this.canModeBeOptimized[Ae]&&this.config.safeMode===!1;_&&Tt?j=rt:j=V}};function Js(te){L.push(te),_=this.charCodeToPatternIdxToConfig[te],b=this.patternIdxToConfig[te],I=b.length,I=b.length;const Ae=this.canModeBeOptimized[te]&&this.config.safeMode===!1;_&&Ae?j=rt:j=V}Js.call(this,t);let xe;const Qs=this.config.recoveryEnabled;for(;N<E;){l=null;const te=x.charCodeAt(N),Ae=j(te),Tt=Ae.length;for(r=0;r<Tt;r++){xe=Ae[r];const pe=xe.pattern;u=null;const Me=xe.short;if(Me!==!1?te===Me&&(l=pe):xe.isCustom===!0?(v=pe.exec(x,N,$e,S),v!==null?(l=v[0],v.payload!==void 0&&(u=v.payload)):l=null):(this.updateLastIndex(pe,N),l=this.match(pe,e,N)),l!==null){if(o=xe.longerAlt,o!==void 0){const He=o.length;for(s=0;s<He;s++){const De=b[o[s]],it=De.pattern;if(c=null,De.isCustom===!0?(v=it.exec(x,N,$e,S),v!==null?(a=v[0],v.payload!==void 0&&(c=v.payload)):a=null):(this.updateLastIndex(it,N),a=this.match(it,e,N)),a&&a.length>l.length){l=a,u=c,xe=De;break}}}break}}if(l!==null){if(d=l.length,h=xe.group,h!==void 0&&(f=xe.tokenTypeIdx,y=this.createTokenInstance(l,N,f,xe.tokenType,_e,Ee,d),this.handlePayload(y,u),h===!1?D=this.addToken($e,D,y):S[h].push(y)),e=this.chopInput(e,d),N=N+d,Ee=this.computeNewColumn(Ee,d),R===!0&&xe.canLineTerminator===!0){let pe=0,Me,He;C.lastIndex=0;do Me=C.test(l),Me===!0&&(He=C.lastIndex-1,pe++);while(Me===!0);pe!==0&&(_e=_e+pe,Ee=d-He,this.updateTokenEndLineColumnLocation(y,h,He,pe,_e,Ee,d))}this.handleModes(xe,sc,Js,y)}else{const pe=N,Me=_e,He=Ee;let De=Qs===!1;for(;De===!1&&N<E;)for(e=this.chopInput(e,1),N++,i=0;i<I;i++){const it=b[i],gi=it.pattern,Zs=it.short;if(Zs!==!1?x.charCodeAt(N)===Zs&&(De=!0):it.isCustom===!0?De=gi.exec(x,N,$e,S)!==null:(this.updateLastIndex(gi,N),De=gi.exec(e)!==null),De===!0)break}if(T=N-pe,Ee=this.computeNewColumn(Ee,T),k=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(x,pe,T,Me,He),fe.push({offset:pe,line:Me,column:He,length:T,message:k}),Qs===!1)break}}return this.hasCustom||($e.length=D),{tokens:$e,groups:S,errors:fe}}handleModes(e,t,r,i){if(e.pop===!0){const s=e.push;t(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,r,i,s,a,o){let l,u;t!==void 0&&(l=r===o-1,u=l?-1:0,i===1&&l===!0||(e.endLine=s+u,e.endColumn=a-1+-u))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,i){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,t,r,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:r,tokenType:i}}createFullToken(e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,r){return e.test(t)===!0?t.substring(r,e.lastIndex):null}matchWithExec(e,t){const r=e.exec(t);return r!==null?r[0]:null}}oe.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.";oe.NA=/NOT_APPLICABLE/;function kt(n){return Ul(n)?n.LABEL:n.name}function Ul(n){return le(n.LABEL)&&n.LABEL!==""}const Ef="parent",ha="categories",pa="label",ma="group",ga="push_mode",ya="pop_mode",Ta="longer_alt",Ra="line_breaks",va="start_chars_hint";function Bl(n){return Af(n)}function Af(n){const e=n.pattern,t={};if(t.name=n.name,g.isUndefined(e)||(t.PATTERN=e),m.has(n,Ef))throw`The parent property is no longer supported.
57
- See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return m.has(n,ha)&&(t.CATEGORIES=n[ha]),Hn([t]),m.has(n,pa)&&(t.LABEL=n[pa]),m.has(n,ma)&&(t.GROUP=n[ma]),m.has(n,ya)&&(t.POP_MODE=n[ya]),m.has(n,ga)&&(t.PUSH_MODE=n[ga]),m.has(n,Ta)&&(t.LONGER_ALT=n[Ta]),m.has(n,Ra)&&(t.LINE_BREAKS=n[Ra]),m.has(n,va)&&(t.START_CHARS_HINT=n[va]),t}const qe=Bl({name:"EOF",pattern:oe.NA});Hn([qe]);function Fs(n,e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:n.tokenTypeIdx,tokenType:n}}function Vl(n,e){return Wn(n,e)}const Et={buildMismatchTokenMessage({expected:n,actual:e,previous:t,ruleName:r}){return`Expecting ${Ul(n)?`--> ${kt(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:n,ruleName:e}){return"Redundant input, expecting EOF but found: "+n.image},buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=`
58
- but found: '`+Ne(e).image+"'";if(r)return s+r+o;{const l=g.reduce(n,(h,f)=>h.concat(f),[]),u=m.map(l,h=>`[${m.map(h,f=>kt(f)).join(", ")}]`),d=`one of these possible Token sequences:
59
- ${m.map(u,(h,f)=>` ${f+1}. ${h}`).join(`
56
+ `+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,s,a,o,l,u,c,d,h,f,y,T,k,v;const x=e,E=x.length;let N=0,D=0;const ee=this.hasCustom?0:Math.floor(e.length/10),$e=new Array(ee),fe=[];let Le=this.trackStartLines?1:void 0,Ee=this.trackStartLines?1:void 0;const S=lf(this.emptyGroups),R=this.trackStartLines,C=this.config.lineTerminatorsPattern;let I=0,b=[],_=[];const L=[],he=[];Object.freeze(he);let j;function V(){return b}function nt(te){const Ae=je(te),yt=_[Ae];return yt===void 0?he:yt}const ic=te=>{if(L.length===1&&te.tokenType.PUSH_MODE===void 0){const Ae=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(te);fe.push({offset:te.startOffset,line:te.startLine,column:te.startColumn,length:te.image.length,message:Ae})}else{L.pop();const Ae=g.last(L);b=this.patternIdxToConfig[Ae],_=this.charCodeToPatternIdxToConfig[Ae],I=b.length;const yt=this.canModeBeOptimized[Ae]&&this.config.safeMode===!1;_&&yt?j=nt:j=V}};function Xs(te){L.push(te),_=this.charCodeToPatternIdxToConfig[te],b=this.patternIdxToConfig[te],I=b.length,I=b.length;const Ae=this.canModeBeOptimized[te]&&this.config.safeMode===!1;_&&Ae?j=nt:j=V}Xs.call(this,t);let xe;const Js=this.config.recoveryEnabled;for(;N<E;){l=null;const te=x.charCodeAt(N),Ae=j(te),yt=Ae.length;for(r=0;r<yt;r++){xe=Ae[r];const pe=xe.pattern;u=null;const Pe=xe.short;if(Pe!==!1?te===Pe&&(l=pe):xe.isCustom===!0?(v=pe.exec(x,N,$e,S),v!==null?(l=v[0],v.payload!==void 0&&(u=v.payload)):l=null):(this.updateLastIndex(pe,N),l=this.match(pe,e,N)),l!==null){if(o=xe.longerAlt,o!==void 0){const We=o.length;for(s=0;s<We;s++){const Me=b[o[s]],rt=Me.pattern;if(c=null,Me.isCustom===!0?(v=rt.exec(x,N,$e,S),v!==null?(a=v[0],v.payload!==void 0&&(c=v.payload)):a=null):(this.updateLastIndex(rt,N),a=this.match(rt,e,N)),a&&a.length>l.length){l=a,u=c,xe=Me;break}}}break}}if(l!==null){if(d=l.length,h=xe.group,h!==void 0&&(f=xe.tokenTypeIdx,y=this.createTokenInstance(l,N,f,xe.tokenType,Le,Ee,d),this.handlePayload(y,u),h===!1?D=this.addToken($e,D,y):S[h].push(y)),e=this.chopInput(e,d),N=N+d,Ee=this.computeNewColumn(Ee,d),R===!0&&xe.canLineTerminator===!0){let pe=0,Pe,We;C.lastIndex=0;do Pe=C.test(l),Pe===!0&&(We=C.lastIndex-1,pe++);while(Pe===!0);pe!==0&&(Le=Le+pe,Ee=d-We,this.updateTokenEndLineColumnLocation(y,h,We,pe,Le,Ee,d))}this.handleModes(xe,ic,Xs,y)}else{const pe=N,Pe=Le,We=Ee;let Me=Js===!1;for(;Me===!1&&N<E;)for(e=this.chopInput(e,1),N++,i=0;i<I;i++){const rt=b[i],mi=rt.pattern,Qs=rt.short;if(Qs!==!1?x.charCodeAt(N)===Qs&&(Me=!0):rt.isCustom===!0?Me=mi.exec(x,N,$e,S)!==null:(this.updateLastIndex(mi,N),Me=mi.exec(e)!==null),Me===!0)break}if(T=N-pe,Ee=this.computeNewColumn(Ee,T),k=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(x,pe,T,Pe,We),fe.push({offset:pe,line:Pe,column:We,length:T,message:k}),Js===!1)break}}return this.hasCustom||($e.length=D),{tokens:$e,groups:S,errors:fe}}handleModes(e,t,r,i){if(e.pop===!0){const s=e.push;t(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,r,i,s,a,o){let l,u;t!==void 0&&(l=r===o-1,u=l?-1:0,i===1&&l===!0||(e.endLine=s+u,e.endColumn=a-1+-u))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,i){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,t,r,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:r,tokenType:i}}createFullToken(e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,r){return e.test(t)===!0?t.substring(r,e.lastIndex):null}matchWithExec(e,t){const r=e.exec(t);return r!==null?r[0]:null}}oe.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.";oe.NA=/NOT_APPLICABLE/;function At(n){return Gl(n)?n.LABEL:n.name}function Gl(n){return le(n.LABEL)&&n.LABEL!==""}const vf="parent",fa="categories",ha="label",pa="group",ma="push_mode",ga="pop_mode",ya="longer_alt",Ta="line_breaks",Ra="start_chars_hint";function Ul(n){return Ef(n)}function Ef(n){const e=n.pattern,t={};if(t.name=n.name,m.isUndefined(e)||(t.PATTERN=e),g.has(n,vf))throw`The parent property is no longer supported.
57
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return g.has(n,fa)&&(t.CATEGORIES=n[fa]),Wn([t]),g.has(n,ha)&&(t.LABEL=n[ha]),g.has(n,pa)&&(t.GROUP=n[pa]),g.has(n,ga)&&(t.POP_MODE=n[ga]),g.has(n,ma)&&(t.PUSH_MODE=n[ma]),g.has(n,ya)&&(t.LONGER_ALT=n[ya]),g.has(n,Ta)&&(t.LINE_BREAKS=n[Ta]),g.has(n,Ra)&&(t.START_CHARS_HINT=n[Ra]),t}const ze=Ul({name:"EOF",pattern:oe.NA});Wn([ze]);function Ds(n,e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:n.tokenTypeIdx,tokenType:n}}function Bl(n,e){return Kn(n,e)}const vt={buildMismatchTokenMessage({expected:n,actual:e,previous:t,ruleName:r}){return`Expecting ${Gl(n)?`--> ${At(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:n,ruleName:e}){return"Redundant input, expecting EOF but found: "+n.image},buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=`
58
+ but found: '`+Ce(e).image+"'";if(r)return s+r+o;{const l=m.reduce(n,(h,f)=>h.concat(f),[]),u=g.map(l,h=>`[${g.map(h,f=>At(f)).join(", ")}]`),d=`one of these possible Token sequences:
59
+ ${g.map(u,(h,f)=>` ${f+1}. ${h}`).join(`
60
60
  `)}`;return s+d+o}},buildEarlyExitMessage({expectedIterationPaths:n,actual:e,customUserDescription:t,ruleName:r}){const i="Expecting: ",a=`
61
- but found: '`+Ne(e).image+"'";if(t)return i+t+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences::
62
- <${m.map(n,u=>`[${m.map(u,c=>kt(c)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(Et);const kf={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
63
- inside top level rule: ->`+n.name+"<-"}},ot={buildDuplicateFoundError(n,e){function t(c){return c instanceof F?c.terminalType.name:c instanceof ie?c.nonTerminalName:""}const r=n.name,i=Ne(e),s=i.idx,a=be(i),o=t(i),l=s>0;let u=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""}
61
+ but found: '`+Ce(e).image+"'";if(t)return i+t+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences::
62
+ <${g.map(n,u=>`[${g.map(u,c=>At(c)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(vt);const Af={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
63
+ inside top level rule: ->`+n.name+"<-"}},at={buildDuplicateFoundError(n,e){function t(c){return c instanceof F?c.terminalType.name:c instanceof ie?c.nonTerminalName:""}const r=n.name,i=Ce(e),s=i.idx,a=_e(i),o=t(i),l=s>0;let u=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""}
64
64
  appears more than once (${e.length} times) in the top level rule: ->${r}<-.
65
65
  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
66
66
  `;return u=u.replace(/[ \t]+/g," "),u=u.replace(/\s\s+/g,`
@@ -68,61 +68,61 @@ inside top level rule: ->`+n.name+"<-"}},ot={buildDuplicateFoundError(n,e){funct
68
68
  The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${n.name}>.
69
69
  To resolve this make sure each Terminal and Non-Terminal names are unique
70
70
  This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
71
- and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(n){const e=m.map(n.prefixPath,i=>kt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;return`Ambiguous alternatives: <${n.ambiguityIndices.join(" ,")}> due to common lookahead prefix
71
+ and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(n){const e=g.map(n.prefixPath,i=>At(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;return`Ambiguous alternatives: <${n.ambiguityIndices.join(" ,")}> due to common lookahead prefix
72
72
  in <OR${t}> inside <${n.topLevelRule.name}> Rule,
73
73
  <${e}> may appears as a prefix path in all these alternatives.
74
74
  See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
75
- For Further details.`},buildAlternationAmbiguityError(n){const e=m.map(n.prefixPath,i=>kt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(" ,")}> in <OR${t}> inside <${n.topLevelRule.name}> Rule,
75
+ For Further details.`},buildAlternationAmbiguityError(n){const e=g.map(n.prefixPath,i=>At(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(" ,")}> in <OR${t}> inside <${n.topLevelRule.name}> Rule,
76
76
  <${e}> may appears as a prefix path in all these alternatives.
77
77
  `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
78
- For Further details.`,r},buildEmptyRepetitionError(n){let e=be(n.repetition);return n.repetition.idx!==0&&(e+=n.repetition.idx),`The repetition <${e}> within Rule <${n.topLevelRule.name}> can never consume any tokens.
78
+ For Further details.`,r},buildEmptyRepetitionError(n){let e=_e(n.repetition);return n.repetition.idx!==0&&(e+=n.repetition.idx),`The repetition <${e}> within Rule <${n.topLevelRule.name}> can never consume any tokens.
79
79
  This could lead to an infinite loop.`},buildTokenNameError(n){return"deprecated"},buildEmptyAlternationError(n){return`Ambiguous empty alternative: <${n.emptyChoiceIdx+1}> in <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
80
80
  Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(n){return`An Alternation cannot have more than 256 alternatives:
81
81
  <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
82
- has ${n.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(n){const e=n.topLevelRule.name,t=m.map(n.leftRecursionPath,s=>s.name),r=`${e} --> ${t.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
82
+ has ${n.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(n){const e=n.topLevelRule.name,t=g.map(n.leftRecursionPath,s=>s.name),r=`${e} --> ${t.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
83
83
  rule: <${e}> can be invoked from itself (directly or indirectly)
84
84
  without consuming any Tokens. The grammar path that causes this is:
85
85
  ${r}
86
86
  To fix this refactor your grammar to remove the left recursion.
87
- see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(n){return"deprecated"},buildDuplicateRuleNameError(n){let e;return n.topLevelRule instanceof jt?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function $f(n,e){const t=new xf(n,e);return t.resolveRefs(),t.errors}class xf extends zt{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){g.forEach(g.values(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:se.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class Sf extends ai{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=Z.clone(this.path.ruleStack).reverse(),this.occurrenceStack=Z.clone(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){$.isEmpty(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class If extends Sf{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(r),s=new ue({definition:i});this.possibleTokTypes=Kn(s),this.found=!0}}}class li extends ai{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 Cf extends li{walkMany(e,t,r){if(e.idx===this.occurrence){const i=Ne(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class Ea extends li{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=Ne(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class Nf extends li{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=Ne(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class Aa extends li{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=Ne(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function es(n,e,t=[]){t=Z.clone(t);let r=[],i=0;function s(o){return o.concat(Y(n,i+1))}function a(o){const l=es(s(o),e,t);return r.concat(l)}for(;t.length<e&&i<n.length;){const o=n[i];if(o instanceof ue)return a(o.definition);if(o instanceof ie)return a(o.definition);if(o instanceof Q)r=a(o.definition);else if(o instanceof Re){const l=o.definition.concat([new K({definition:o.definition})]);return a(l)}else if(o instanceof ve){const l=[new ue({definition:o.definition}),new K({definition:[new F({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof ce){const l=o.definition.concat([new K({definition:[new F({terminalType:o.separator})].concat(o.definition)})]);r=a(l)}else if(o instanceof K){const l=o.definition.concat([new K({definition:o.definition})]);r=a(l)}else{if(o instanceof de)return g.forEach(o.definition,l=>{$.isEmpty(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof F)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:Y(n,i)}),r}function Kl(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,u=l-r-1,c=[],d=[];for(d.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!$.isEmpty(d);){const h=d.pop();if(h===a){o&&m.last(d).idx<=u&&d.pop();continue}const f=h.def,y=h.idx,T=h.ruleStack,k=h.occurrenceStack;if($.isEmpty(f))continue;const v=f[0];if(v===i){const x={idx:y,def:Y(f),ruleStack:Mn(T),occurrenceStack:Mn(k)};d.push(x)}else if(v instanceof F)if(y<l-1){const x=y+1,E=e[x];if(t(E,v.terminalType)){const N={idx:x,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(N)}}else if(y===l-1)c.push({nextTokenType:v.terminalType,nextTokenOccurrence:v.idx,ruleStack:T,occurrenceStack:k}),o=!0;else throw Error("non exhaustive match");else if(v instanceof ie){const x=Z.clone(T);x.push(v.nonTerminalName);const E=Z.clone(k);E.push(v.idx);const N={idx:y,def:v.definition.concat(s,Y(f)),ruleStack:x,occurrenceStack:E};d.push(N)}else if(v instanceof Q){const x={idx:y,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(x),d.push(a);const E={idx:y,def:v.definition.concat(Y(f)),ruleStack:T,occurrenceStack:k};d.push(E)}else if(v instanceof Re){const x=new K({definition:v.definition,idx:v.idx}),E=v.definition.concat([x],Y(f)),N={idx:y,def:E,ruleStack:T,occurrenceStack:k};d.push(N)}else if(v instanceof ve){const x=new F({terminalType:v.separator}),E=new K({definition:[x].concat(v.definition),idx:v.idx}),N=v.definition.concat([E],Y(f)),D={idx:y,def:N,ruleStack:T,occurrenceStack:k};d.push(D)}else if(v instanceof ce){const x={idx:y,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(x),d.push(a);const E=new F({terminalType:v.separator}),N=new K({definition:[E].concat(v.definition),idx:v.idx}),D=v.definition.concat([N],Y(f)),ee={idx:y,def:D,ruleStack:T,occurrenceStack:k};d.push(ee)}else if(v instanceof K){const x={idx:y,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(x),d.push(a);const E=new K({definition:v.definition,idx:v.idx}),N=v.definition.concat([E],Y(f)),D={idx:y,def:N,ruleStack:T,occurrenceStack:k};d.push(D)}else if(v instanceof de)for(let x=v.definition.length-1;x>=0;x--){const E=v.definition[x],N={idx:y,def:E.definition.concat(Y(f)),ruleStack:T,occurrenceStack:k};d.push(N),d.push(a)}else if(v instanceof ue)d.push({idx:y,def:v.definition.concat(Y(f)),ruleStack:T,occurrenceStack:k});else if(v instanceof jt)d.push(wf(v,y,T,k));else throw Error("non exhaustive match")}return c}function wf(n,e,t,r){const i=Z.clone(t);i.push(n.name);const s=Z.clone(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var U;(function(n){n[n.OPTION=0]="OPTION",n[n.REPETITION=1]="REPETITION",n[n.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",n[n.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",n[n.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",n[n.ALTERNATION=5]="ALTERNATION"})(U||(U={}));function Gs(n){if(n instanceof Q||n==="Option")return U.OPTION;if(n instanceof K||n==="Repetition")return U.REPETITION;if(n instanceof Re||n==="RepetitionMandatory")return U.REPETITION_MANDATORY;if(n instanceof ve||n==="RepetitionMandatoryWithSeparator")return U.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof ce||n==="RepetitionWithSeparator")return U.REPETITION_WITH_SEPARATOR;if(n instanceof de||n==="Alternation")return U.ALTERNATION;throw Error("non exhaustive match")}function ka(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=Gs(r);return s===U.ALTERNATION?ui(e,t,i):ci(e,t,s,i)}function Lf(n,e,t,r,i,s){const a=ui(n,e,t),o=jl(a)?Dr:Wn;return s(a,r,o,i)}function _f(n,e,t,r,i,s){const a=ci(n,e,i,t),o=jl(a)?Dr:Wn;return s(a[0],o,r)}function bf(n,e,t,r){const i=n.length,s=Ie(n,a=>Ie(a,o=>o.length===1));if(e)return function(a){const o=m.map(a,l=>l.GATE);for(let l=0;l<i;l++){const u=n[l],c=u.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let h=0;h<c;h++){const f=u[h],y=f.length;for(let T=0;T<y;T++){const k=this.LA(T+1);if(t(k,f[T])===!1)continue e}return l}}};if(s&&!r){const a=m.map(n,l=>m.flatten(l)),o=g.reduce(a,(l,u,c)=>(g.forEach(u,d=>{m.has(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=c),g.forEach(d.categoryMatches,h=>{m.has(l,h)||(l[h]=c)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=n[a],l=o.length;e:for(let u=0;u<l;u++){const c=o[u],d=c.length;for(let h=0;h<d;h++){const f=this.LA(h+1);if(t(f,c[h])===!1)continue e}return a}}}}function Of(n,e,t){const r=Ie(n,s=>s.length===1),i=n.length;if(r&&!t){const s=m.flatten(n);if(s.length===1&&$.isEmpty(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=g.reduce(s,(o,l,u)=>(o[l.tokenTypeIdx]=!0,g.forEach(l.categoryMatches,c=>{o[c]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=n[s],o=a.length;for(let l=0;l<o;l++){const u=this.LA(l+1);if(e(u,a[l])===!1)continue e}return!0}return!1}}class Pf extends ai{constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=r.concat(i),!0):!1}walkOption(e,t,r){this.checkIsTarget(e,U.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,U.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,U.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,U.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,U.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class Wl extends zt{constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,U.OPTION)}visitRepetition(e){this.checkIsTarget(e,U.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,U.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,U.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,U.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,U.ALTERNATION)}}function $a(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function Si(n){let e=[""];for(let t=0;t<n.length;t++){const r=n[t],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+r.tokenTypeIdx);for(let o=0;o<r.categoryMatches.length;o++){const l="_"+r.categoryMatches[o];i.push(a+l)}}e=i}return e}function Mf(n,e,t){for(let r=0;r<n.length;r++){if(r===t)continue;const i=n[r];for(let s=0;s<e.length;s++){const a=e[s];if(i[a]===!0)return!1}}return!0}function Hl(n,e){const t=m.map(n,a=>es([a],1)),r=$a(t.length),i=m.map(t,a=>{const o={};return g.forEach(a,l=>{const u=Si(l.partialPath);g.forEach(u,c=>{o[c]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=$a(o.length);for(let l=0;l<o.length;l++){const u=o[l];for(let c=0;c<u.length;c++){const d=u[c].partialPath,h=u[c].suffixDef,f=Si(d);if(Mf(i,f,l)||$.isEmpty(h)||d.length===e){const T=r[l];if(ts(T,d)===!1){T.push(d);for(let k=0;k<f.length;k++){const v=f[k];i[l][v]=!0}}}else{const T=es(h,a+1,d);s[l]=s[l].concat(T),g.forEach(T,k=>{const v=Si(k.partialPath);g.forEach(v,x=>{i[l][x]=!0})})}}}}return r}function ui(n,e,t,r){const i=new Wl(n,U.ALTERNATION,r);return e.accept(i),Hl(i.result,t)}function ci(n,e,t,r){const i=new Wl(n,t);e.accept(i);const s=i.result,o=new Pf(e,n,t).startWalking(),l=new ue({definition:s}),u=new ue({definition:o});return Hl([l,u],r)}function ts(n,e){e:for(let t=0;t<n.length;t++){const r=n[t];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],a=r[i];if((s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Df(n,e){return n.length<e.length&&Ie(n,(t,r)=>{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function jl(n){return Ie(n,e=>Ie(e,t=>Ie(t,r=>$.isEmpty(r.categoryMatches))))}function Ff(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return m.map(e,t=>Object.assign({type:se.CUSTOM_LOOKAHEAD_VALIDATION},t))}function Gf(n,e,t,r){const i=ye(n,l=>Uf(l,t)),s=Qf(n,e,t),a=ye(n,l=>qf(l,t)),o=ye(n,l=>Kf(l,n,r,t));return i.concat(s,a,o)}function Uf(n,e){const t=new Vf;n.accept(t);const r=t.allProductions,i=yc(r,Bf),s=we(i,o=>o.length>1);return m.map(g.values(s),o=>{const l=Ne(o),u=e.buildDuplicateFoundError(n,o),c=be(l),d={message:u,type:se.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:c,occurrence:l.idx},h=zl(l);return h&&(d.parameter=h),d})}function Bf(n){return`${be(n)}_#_${n.idx}_#_${zl(n)}`}function zl(n){return n instanceof F?n.terminalType.name:n instanceof ie?n.nonTerminalName:""}class Vf extends zt{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 Kf(n,e,t,r){const i=[];if(g.reduce(e,(a,o)=>o.name===n.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:n,grammarName:t});i.push({message:a,type:se.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function Wf(n,e,t){const r=[];let i;return ae(e,n)||(i=`Invalid rule override, rule: ->${n}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,r.push({message:i,type:se.INVALID_RULE_OVERRIDE,ruleName:n})),r}function ql(n,e,t,r=[]){const i=[],s=Er(e.definition);if($.isEmpty(s))return[];{const a=n.name;ae(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:se.LEFT_RECURSION,ruleName:a});const l=ei(s,r.concat([n])),u=ye(l,c=>{const d=Z.clone(r);return d.push(c),ql(n,c,t,d)});return i.concat(u)}}function Er(n){let e=[];if($.isEmpty(n))return e;const t=Ne(n);if(t instanceof ie)e.push(t.referencedRule);else if(t instanceof ue||t instanceof Q||t instanceof Re||t instanceof ve||t instanceof ce||t instanceof K)e=e.concat(Er(t.definition));else if(t instanceof de)e=m.flatten(m.map(t.definition,s=>Er(s.definition)));else if(!(t instanceof F))throw Error("non exhaustive match");const r=Pr(t),i=n.length>1;if(r&&i){const s=Y(n);return e.concat(Er(s))}else return e}class Us extends zt{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Hf(n,e){const t=new Us;n.accept(t);const r=t.alternations;return ye(r,s=>{const a=Mn(s.definition);return ye(a,(o,l)=>{const u=Kl([o],[],Wn,1);return $.isEmpty(u)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:l}),type:se.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:l+1}]:[]})})}function jf(n,e,t){const r=new Us;n.accept(r);let i=r.alternations;return i=ti(i,a=>a.ignoreAmbiguities===!0),ye(i,a=>{const o=a.idx,l=a.maxLookahead||e,u=ui(o,n,l,a),c=Xf(u,a,n,t),d=Jf(u,a,n,t);return c.concat(d)})}class zf extends zt{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 qf(n,e){const t=new Us;n.accept(t);const r=t.alternations;return ye(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:se.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function Yf(n,e,t){const r=[];return g.forEach(n,i=>{const s=new zf;i.accept(s);const a=s.allProductions;g.forEach(a,o=>{const l=Gs(o),u=o.maxLookahead||e,c=o.idx,h=ci(c,i,l,u)[0];if($.isEmpty(m.flatten(h))){const f=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:f,type:se.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function Xf(n,e,t,r){const i=[],s=g.reduce(n,(o,l,u)=>(e.definition[u].ignoreAmbiguities===!0||g.forEach(l,c=>{const d=[u];g.forEach(n,(h,f)=>{u!==f&&ts(h,c)&&e.definition[f].ignoreAmbiguities!==!0&&d.push(f)}),d.length>1&&!ts(i,c)&&(i.push(c),o.push({alts:d,path:c}))}),o),[]);return m.map(s,o=>{const l=m.map(o.alts,c=>c+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:se.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function Jf(n,e,t,r){const i=g.reduce(n,(a,o,l)=>{const u=m.map(o,c=>({idx:l,path:c}));return a.concat(u)},[]);return Un(ye(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,u=a.path,c=g.filter(i,h=>e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&Df(h.path,u));return m.map(c,h=>{const f=[h.idx+1,l+1],y=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:f,prefixPath:h.path}),type:se.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:y,alternatives:f}})}))}function Qf(n,e,t){const r=[],i=m.map(e,s=>s.name);return g.forEach(n,s=>{const a=s.name;if(ae(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:se.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function Zf(n){const e=m.defaults(n,{errMsgProvider:kf}),t={};return g.forEach(n.rules,r=>{t[r.name]=r}),$f(t,e.errMsgProvider)}function eh(n){return n=m.defaults(n,{errMsgProvider:ot}),Gf(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const Yl="MismatchedTokenException",Xl="NoViableAltException",Jl="EarlyExitException",Ql="NotAllInputParsedException",Zl=[Yl,Xl,Jl,Ql];Object.freeze(Zl);function Fr(n){return ae(Zl,n.name)}class di 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 eu extends di{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Yl}}class th extends di{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Xl}}class nh extends di{constructor(e,t){super(e,t),this.name=Ql}}class rh extends di{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Jl}}const Ii={},tu="InRuleRecoveryException";class ih extends Error{constructor(e){super(e),this.name=tu}}class sh{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=m.has(e,"recoveryEnabled")?e.recoveryEnabled:We.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=ah)}getTokenToInsert(e){const t=Fs(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const u=this.LA(1);let c=this.LA(1);const d=()=>{const h=this.LA(0),f=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:h,ruleName:this.getCurrRuleFullName()}),y=new eu(f,u,this.LA(0));y.resyncedTokens=Mn(o),this.SAVE_ERROR(y)};for(;!l;)if(this.tokenMatcher(c,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(c,s)?l=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new ih("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||$.isEmpty(t))return!1;const r=this.LA(1);return m.find(t,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return ae(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const i=m.find(e,s=>Vl(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ii;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return m.map(e,(r,i)=>i===0?Ii:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=m.map(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return m.flatten(e)}getFollowSetFromFollowKey(e){if(e===Ii)return[qe];const t=e.ruleName+e.idxInCallingRule+Ll+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,qe)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return Mn(t)}attemptInRepetitionRecovery(e,t,r,i,s,a,o){}getCurrentGrammarPath(e,t){const r=this.getHumanReadableRuleStack(),i=Z.clone(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return m.map(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function ah(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const h=this.getCurrRuleFullName(),f=this.getGAstProductions()[h];l=new s(f,i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&u===void 0&&(u=qe,c=1),!(u===void 0||c===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,c,a)&&this.tryInRepetitionRecovery(n,e,t,u)}const oh=4,Je=8,nu=1<<Je,ru=2<<Je,ns=3<<Je,rs=4<<Je,is=5<<Je,Ar=6<<Je;function Ci(n,e,t){return t|e|n}class Bs{constructor(e){var t;this.maxLookahead=(t=e?.maxLookahead)!==null&&t!==void 0?t:We.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if($.isEmpty(t)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...r,...i,...s]}return t}validateNoLeftRecursion(e){return ye(e,t=>ql(t,t,ot))}validateEmptyOrAlternatives(e){return ye(e,t=>Hf(t,ot))}validateAmbiguousAlternationAlternatives(e,t){return ye(e,r=>jf(r,t,ot))}validateSomeNonEmptyLookaheadPath(e,t){return Yf(e,t,ot)}buildLookaheadForAlternation(e){return Lf(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,bf)}buildLookaheadForOptional(e){return _f(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Gs(e.prodType),Of)}}class lh{initLooksAhead(e){this.dynamicTokensEnabled=m.has(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:We.dynamicTokensEnabled,this.maxLookahead=m.has(e,"maxLookahead")?e.maxLookahead:We.maxLookahead,this.lookaheadStrategy=m.has(e,"lookaheadStrategy")?e.lookaheadStrategy:new Bs({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){g.forEach(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=ch(t);g.forEach(r,u=>{const c=u.idx===0?"":u.idx;this.TRACE_INIT(`${be(u)}${c}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:t,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),h=Ci(this.fullRuleNameToShort[t.name],nu,u.idx);this.setLaFuncCache(h,d)})}),g.forEach(i,u=>{this.computeLookaheadFunc(t,u.idx,ns,"Repetition",u.maxLookahead,be(u))}),g.forEach(s,u=>{this.computeLookaheadFunc(t,u.idx,ru,"Option",u.maxLookahead,be(u))}),g.forEach(a,u=>{this.computeLookaheadFunc(t,u.idx,rs,"RepetitionMandatory",u.maxLookahead,be(u))}),g.forEach(o,u=>{this.computeLookaheadFunc(t,u.idx,Ar,"RepetitionMandatoryWithSeparator",u.maxLookahead,be(u))}),g.forEach(l,u=>{this.computeLookaheadFunc(t,u.idx,is,"RepetitionWithSeparator",u.maxLookahead,be(u))})})})}computeLookaheadFunc(e,t,r,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=Ci(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return Ci(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class uh extends zt{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const or=new uh;function ch(n){or.reset(),n.accept(or);const e=or.dslMethods;return or.reset(),e}function xa(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function Sa(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.startColumn=e.startColumn,n.startLine=e.startLine,n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine)}function dh(n,e,t){n.children[t]===void 0?n.children[t]=[e]:n.children[t].push(e)}function fh(n,e,t){n.children[e]===void 0?n.children[e]=[t]:n.children[e].push(t)}const hh="name";function iu(n,e){Object.defineProperty(n,hh,{enumerable:!1,configurable:!0,writable:!1,value:e})}function ph(n,e){const t=Ce.keys(n),r=t.length;for(let i=0;i<r;i++){const s=t[i],a=n[s],o=a.length;for(let l=0;l<o;l++){const u=a[l];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function mh(n,e){const t=function(){};iu(t,n+"BaseSemantics");const r={visit:function(i,s){if($.isArray(i)&&(i=i[0]),!g.isUndefined(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=yh(this,e);if(!$.isEmpty(i)){const s=m.map(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
87
+ see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(n){return"deprecated"},buildDuplicateRuleNameError(n){let e;return n.topLevelRule instanceof Ht?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function kf(n,e){const t=new $f(n,e);return t.resolveRefs(),t.errors}class $f extends jt{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){m.forEach(m.values(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:se.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class xf extends si{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=Z.clone(this.path.ruleStack).reverse(),this.occurrenceStack=Z.clone(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){$.isEmpty(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Sf extends xf{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(r),s=new ue({definition:i});this.possibleTokTypes=Vn(s),this.found=!0}}}class oi extends si{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 If extends oi{walkMany(e,t,r){if(e.idx===this.occurrence){const i=Ce(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class va extends oi{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=Ce(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class Cf extends oi{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=Ce(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class Ea extends oi{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=Ce(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof F&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function Zi(n,e,t=[]){t=Z.clone(t);let r=[],i=0;function s(o){return o.concat(Y(n,i+1))}function a(o){const l=Zi(s(o),e,t);return r.concat(l)}for(;t.length<e&&i<n.length;){const o=n[i];if(o instanceof ue)return a(o.definition);if(o instanceof ie)return a(o.definition);if(o instanceof Q)r=a(o.definition);else if(o instanceof Re){const l=o.definition.concat([new K({definition:o.definition})]);return a(l)}else if(o instanceof ve){const l=[new ue({definition:o.definition}),new K({definition:[new F({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof ce){const l=o.definition.concat([new K({definition:[new F({terminalType:o.separator})].concat(o.definition)})]);r=a(l)}else if(o instanceof K){const l=o.definition.concat([new K({definition:o.definition})]);r=a(l)}else{if(o instanceof de)return m.forEach(o.definition,l=>{$.isEmpty(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof F)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:Y(n,i)}),r}function Vl(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,u=l-r-1,c=[],d=[];for(d.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!$.isEmpty(d);){const h=d.pop();if(h===a){o&&g.last(d).idx<=u&&d.pop();continue}const f=h.def,y=h.idx,T=h.ruleStack,k=h.occurrenceStack;if($.isEmpty(f))continue;const v=f[0];if(v===i){const x={idx:y,def:Y(f),ruleStack:Pn(T),occurrenceStack:Pn(k)};d.push(x)}else if(v instanceof F)if(y<l-1){const x=y+1,E=e[x];if(t(E,v.terminalType)){const N={idx:x,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(N)}}else if(y===l-1)c.push({nextTokenType:v.terminalType,nextTokenOccurrence:v.idx,ruleStack:T,occurrenceStack:k}),o=!0;else throw Error("non exhaustive match");else if(v instanceof ie){const x=Z.clone(T);x.push(v.nonTerminalName);const E=Z.clone(k);E.push(v.idx);const N={idx:y,def:v.definition.concat(s,Y(f)),ruleStack:x,occurrenceStack:E};d.push(N)}else if(v instanceof Q){const x={idx:y,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(x),d.push(a);const E={idx:y,def:v.definition.concat(Y(f)),ruleStack:T,occurrenceStack:k};d.push(E)}else if(v instanceof Re){const x=new K({definition:v.definition,idx:v.idx}),E=v.definition.concat([x],Y(f)),N={idx:y,def:E,ruleStack:T,occurrenceStack:k};d.push(N)}else if(v instanceof ve){const x=new F({terminalType:v.separator}),E=new K({definition:[x].concat(v.definition),idx:v.idx}),N=v.definition.concat([E],Y(f)),D={idx:y,def:N,ruleStack:T,occurrenceStack:k};d.push(D)}else if(v instanceof ce){const x={idx:y,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(x),d.push(a);const E=new F({terminalType:v.separator}),N=new K({definition:[E].concat(v.definition),idx:v.idx}),D=v.definition.concat([N],Y(f)),ee={idx:y,def:D,ruleStack:T,occurrenceStack:k};d.push(ee)}else if(v instanceof K){const x={idx:y,def:Y(f),ruleStack:T,occurrenceStack:k};d.push(x),d.push(a);const E=new K({definition:v.definition,idx:v.idx}),N=v.definition.concat([E],Y(f)),D={idx:y,def:N,ruleStack:T,occurrenceStack:k};d.push(D)}else if(v instanceof de)for(let x=v.definition.length-1;x>=0;x--){const E=v.definition[x],N={idx:y,def:E.definition.concat(Y(f)),ruleStack:T,occurrenceStack:k};d.push(N),d.push(a)}else if(v instanceof ue)d.push({idx:y,def:v.definition.concat(Y(f)),ruleStack:T,occurrenceStack:k});else if(v instanceof Ht)d.push(Nf(v,y,T,k));else throw Error("non exhaustive match")}return c}function Nf(n,e,t,r){const i=Z.clone(t);i.push(n.name);const s=Z.clone(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var U;(function(n){n[n.OPTION=0]="OPTION",n[n.REPETITION=1]="REPETITION",n[n.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",n[n.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",n[n.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",n[n.ALTERNATION=5]="ALTERNATION"})(U||(U={}));function Fs(n){if(n instanceof Q||n==="Option")return U.OPTION;if(n instanceof K||n==="Repetition")return U.REPETITION;if(n instanceof Re||n==="RepetitionMandatory")return U.REPETITION_MANDATORY;if(n instanceof ve||n==="RepetitionMandatoryWithSeparator")return U.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof ce||n==="RepetitionWithSeparator")return U.REPETITION_WITH_SEPARATOR;if(n instanceof de||n==="Alternation")return U.ALTERNATION;throw Error("non exhaustive match")}function Aa(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=Fs(r);return s===U.ALTERNATION?li(e,t,i):ui(e,t,s,i)}function wf(n,e,t,r,i,s){const a=li(n,e,t),o=Hl(a)?Mr:Kn;return s(a,r,o,i)}function Lf(n,e,t,r,i,s){const a=ui(n,e,i,t),o=Hl(a)?Mr:Kn;return s(a[0],o,r)}function _f(n,e,t,r){const i=n.length,s=Ie(n,a=>Ie(a,o=>o.length===1));if(e)return function(a){const o=g.map(a,l=>l.GATE);for(let l=0;l<i;l++){const u=n[l],c=u.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let h=0;h<c;h++){const f=u[h],y=f.length;for(let T=0;T<y;T++){const k=this.LA(T+1);if(t(k,f[T])===!1)continue e}return l}}};if(s&&!r){const a=g.map(n,l=>g.flatten(l)),o=m.reduce(a,(l,u,c)=>(m.forEach(u,d=>{g.has(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=c),m.forEach(d.categoryMatches,h=>{g.has(l,h)||(l[h]=c)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=n[a],l=o.length;e:for(let u=0;u<l;u++){const c=o[u],d=c.length;for(let h=0;h<d;h++){const f=this.LA(h+1);if(t(f,c[h])===!1)continue e}return a}}}}function bf(n,e,t){const r=Ie(n,s=>s.length===1),i=n.length;if(r&&!t){const s=g.flatten(n);if(s.length===1&&$.isEmpty(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=m.reduce(s,(o,l,u)=>(o[l.tokenTypeIdx]=!0,m.forEach(l.categoryMatches,c=>{o[c]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=n[s],o=a.length;for(let l=0;l<o;l++){const u=this.LA(l+1);if(e(u,a[l])===!1)continue e}return!0}return!1}}class Of extends si{constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=r.concat(i),!0):!1}walkOption(e,t,r){this.checkIsTarget(e,U.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,U.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,U.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,U.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,U.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class Kl extends jt{constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,U.OPTION)}visitRepetition(e){this.checkIsTarget(e,U.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,U.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,U.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,U.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,U.ALTERNATION)}}function ka(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function xi(n){let e=[""];for(let t=0;t<n.length;t++){const r=n[t],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+r.tokenTypeIdx);for(let o=0;o<r.categoryMatches.length;o++){const l="_"+r.categoryMatches[o];i.push(a+l)}}e=i}return e}function Pf(n,e,t){for(let r=0;r<n.length;r++){if(r===t)continue;const i=n[r];for(let s=0;s<e.length;s++){const a=e[s];if(i[a]===!0)return!1}}return!0}function Wl(n,e){const t=g.map(n,a=>Zi([a],1)),r=ka(t.length),i=g.map(t,a=>{const o={};return m.forEach(a,l=>{const u=xi(l.partialPath);m.forEach(u,c=>{o[c]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=ka(o.length);for(let l=0;l<o.length;l++){const u=o[l];for(let c=0;c<u.length;c++){const d=u[c].partialPath,h=u[c].suffixDef,f=xi(d);if(Pf(i,f,l)||$.isEmpty(h)||d.length===e){const T=r[l];if(es(T,d)===!1){T.push(d);for(let k=0;k<f.length;k++){const v=f[k];i[l][v]=!0}}}else{const T=Zi(h,a+1,d);s[l]=s[l].concat(T),m.forEach(T,k=>{const v=xi(k.partialPath);m.forEach(v,x=>{i[l][x]=!0})})}}}}return r}function li(n,e,t,r){const i=new Kl(n,U.ALTERNATION,r);return e.accept(i),Wl(i.result,t)}function ui(n,e,t,r){const i=new Kl(n,t);e.accept(i);const s=i.result,o=new Of(e,n,t).startWalking(),l=new ue({definition:s}),u=new ue({definition:o});return Wl([l,u],r)}function es(n,e){e:for(let t=0;t<n.length;t++){const r=n[t];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],a=r[i];if((s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Mf(n,e){return n.length<e.length&&Ie(n,(t,r)=>{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Hl(n){return Ie(n,e=>Ie(e,t=>Ie(t,r=>$.isEmpty(r.categoryMatches))))}function Df(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return g.map(e,t=>Object.assign({type:se.CUSTOM_LOOKAHEAD_VALIDATION},t))}function Ff(n,e,t,r){const i=ye(n,l=>Gf(l,t)),s=Jf(n,e,t),a=ye(n,l=>zf(l,t)),o=ye(n,l=>Vf(l,n,r,t));return i.concat(s,a,o)}function Gf(n,e){const t=new Bf;n.accept(t);const r=t.allProductions,i=gc(r,Uf),s=Ne(i,o=>o.length>1);return g.map(m.values(s),o=>{const l=Ce(o),u=e.buildDuplicateFoundError(n,o),c=_e(l),d={message:u,type:se.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:c,occurrence:l.idx},h=jl(l);return h&&(d.parameter=h),d})}function Uf(n){return`${_e(n)}_#_${n.idx}_#_${jl(n)}`}function jl(n){return n instanceof F?n.terminalType.name:n instanceof ie?n.nonTerminalName:""}class Bf extends jt{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function Vf(n,e,t,r){const i=[];if(m.reduce(e,(a,o)=>o.name===n.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:n,grammarName:t});i.push({message:a,type:se.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function Kf(n,e,t){const r=[];let i;return ae(e,n)||(i=`Invalid rule override, rule: ->${n}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,r.push({message:i,type:se.INVALID_RULE_OVERRIDE,ruleName:n})),r}function zl(n,e,t,r=[]){const i=[],s=vr(e.definition);if($.isEmpty(s))return[];{const a=n.name;ae(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:se.LEFT_RECURSION,ruleName:a});const l=Zr(s,r.concat([n])),u=ye(l,c=>{const d=Z.clone(r);return d.push(c),zl(n,c,t,d)});return i.concat(u)}}function vr(n){let e=[];if($.isEmpty(n))return e;const t=Ce(n);if(t instanceof ie)e.push(t.referencedRule);else if(t instanceof ue||t instanceof Q||t instanceof Re||t instanceof ve||t instanceof ce||t instanceof K)e=e.concat(vr(t.definition));else if(t instanceof de)e=g.flatten(g.map(t.definition,s=>vr(s.definition)));else if(!(t instanceof F))throw Error("non exhaustive match");const r=Or(t),i=n.length>1;if(r&&i){const s=Y(n);return e.concat(vr(s))}else return e}class Gs extends jt{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Wf(n,e){const t=new Gs;n.accept(t);const r=t.alternations;return ye(r,s=>{const a=Pn(s.definition);return ye(a,(o,l)=>{const u=Vl([o],[],Kn,1);return $.isEmpty(u)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:l}),type:se.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:l+1}]:[]})})}function Hf(n,e,t){const r=new Gs;n.accept(r);let i=r.alternations;return i=ei(i,a=>a.ignoreAmbiguities===!0),ye(i,a=>{const o=a.idx,l=a.maxLookahead||e,u=li(o,n,l,a),c=Yf(u,a,n,t),d=Xf(u,a,n,t);return c.concat(d)})}class jf extends jt{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function zf(n,e){const t=new Gs;n.accept(t);const r=t.alternations;return ye(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:se.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function qf(n,e,t){const r=[];return m.forEach(n,i=>{const s=new jf;i.accept(s);const a=s.allProductions;m.forEach(a,o=>{const l=Fs(o),u=o.maxLookahead||e,c=o.idx,h=ui(c,i,l,u)[0];if($.isEmpty(g.flatten(h))){const f=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:f,type:se.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function Yf(n,e,t,r){const i=[],s=m.reduce(n,(o,l,u)=>(e.definition[u].ignoreAmbiguities===!0||m.forEach(l,c=>{const d=[u];m.forEach(n,(h,f)=>{u!==f&&es(h,c)&&e.definition[f].ignoreAmbiguities!==!0&&d.push(f)}),d.length>1&&!es(i,c)&&(i.push(c),o.push({alts:d,path:c}))}),o),[]);return g.map(s,o=>{const l=g.map(o.alts,c=>c+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:se.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function Xf(n,e,t,r){const i=m.reduce(n,(a,o,l)=>{const u=g.map(o,c=>({idx:l,path:c}));return a.concat(u)},[]);return Gn(ye(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,u=a.path,c=m.filter(i,h=>e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&Mf(h.path,u));return g.map(c,h=>{const f=[h.idx+1,l+1],y=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:f,prefixPath:h.path}),type:se.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:y,alternatives:f}})}))}function Jf(n,e,t){const r=[],i=g.map(e,s=>s.name);return m.forEach(n,s=>{const a=s.name;if(ae(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:se.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function Qf(n){const e=g.defaults(n,{errMsgProvider:Af}),t={};return m.forEach(n.rules,r=>{t[r.name]=r}),kf(t,e.errMsgProvider)}function Zf(n){return n=g.defaults(n,{errMsgProvider:at}),Ff(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const ql="MismatchedTokenException",Yl="NoViableAltException",Xl="EarlyExitException",Jl="NotAllInputParsedException",Ql=[ql,Yl,Xl,Jl];Object.freeze(Ql);function Dr(n){return ae(Ql,n.name)}class ci 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 Zl extends ci{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=ql}}class eh extends ci{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Yl}}class th extends ci{constructor(e,t){super(e,t),this.name=Jl}}class nh extends ci{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Xl}}const Si={},eu="InRuleRecoveryException";class rh extends Error{constructor(e){super(e),this.name=eu}}class ih{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=g.has(e,"recoveryEnabled")?e.recoveryEnabled:Ke.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=sh)}getTokenToInsert(e){const t=Ds(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const u=this.LA(1);let c=this.LA(1);const d=()=>{const h=this.LA(0),f=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:h,ruleName:this.getCurrRuleFullName()}),y=new Zl(f,u,this.LA(0));y.resyncedTokens=Pn(o),this.SAVE_ERROR(y)};for(;!l;)if(this.tokenMatcher(c,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(c,s)?l=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new rh("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||$.isEmpty(t))return!1;const r=this.LA(1);return g.find(t,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return ae(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const i=g.find(e,s=>Bl(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Si;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return g.map(e,(r,i)=>i===0?Si:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=g.map(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return g.flatten(e)}getFollowSetFromFollowKey(e){if(e===Si)return[ze];const t=e.ruleName+e.idxInCallingRule+wl+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,ze)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return Pn(t)}attemptInRepetitionRecovery(e,t,r,i,s,a,o){}getCurrentGrammarPath(e,t){const r=this.getHumanReadableRuleStack(),i=Z.clone(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return g.map(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function sh(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const h=this.getCurrRuleFullName(),f=this.getGAstProductions()[h];l=new s(f,i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&u===void 0&&(u=ze,c=1),!(u===void 0||c===void 0)&&this.shouldInRepetitionRecoveryBeTried(u,c,a)&&this.tryInRepetitionRecovery(n,e,t,u)}const ah=4,Xe=8,tu=1<<Xe,nu=2<<Xe,ts=3<<Xe,ns=4<<Xe,rs=5<<Xe,Er=6<<Xe;function Ii(n,e,t){return t|e|n}class Us{constructor(e){var t;this.maxLookahead=(t=e?.maxLookahead)!==null&&t!==void 0?t:Ke.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if($.isEmpty(t)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...r,...i,...s]}return t}validateNoLeftRecursion(e){return ye(e,t=>zl(t,t,at))}validateEmptyOrAlternatives(e){return ye(e,t=>Wf(t,at))}validateAmbiguousAlternationAlternatives(e,t){return ye(e,r=>Hf(r,t,at))}validateSomeNonEmptyLookaheadPath(e,t){return qf(e,t,at)}buildLookaheadForAlternation(e){return wf(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,_f)}buildLookaheadForOptional(e){return Lf(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Fs(e.prodType),bf)}}class oh{initLooksAhead(e){this.dynamicTokensEnabled=g.has(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Ke.dynamicTokensEnabled,this.maxLookahead=g.has(e,"maxLookahead")?e.maxLookahead:Ke.maxLookahead,this.lookaheadStrategy=g.has(e,"lookaheadStrategy")?e.lookaheadStrategy:new Us({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){m.forEach(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=uh(t);m.forEach(r,u=>{const c=u.idx===0?"":u.idx;this.TRACE_INIT(`${_e(u)}${c}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:t,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),h=Ii(this.fullRuleNameToShort[t.name],tu,u.idx);this.setLaFuncCache(h,d)})}),m.forEach(i,u=>{this.computeLookaheadFunc(t,u.idx,ts,"Repetition",u.maxLookahead,_e(u))}),m.forEach(s,u=>{this.computeLookaheadFunc(t,u.idx,nu,"Option",u.maxLookahead,_e(u))}),m.forEach(a,u=>{this.computeLookaheadFunc(t,u.idx,ns,"RepetitionMandatory",u.maxLookahead,_e(u))}),m.forEach(o,u=>{this.computeLookaheadFunc(t,u.idx,Er,"RepetitionMandatoryWithSeparator",u.maxLookahead,_e(u))}),m.forEach(l,u=>{this.computeLookaheadFunc(t,u.idx,rs,"RepetitionWithSeparator",u.maxLookahead,_e(u))})})})}computeLookaheadFunc(e,t,r,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=Ii(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return Ii(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class lh extends jt{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const ar=new lh;function uh(n){ar.reset(),n.accept(ar);const e=ar.dslMethods;return ar.reset(),e}function $a(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function xa(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.startColumn=e.startColumn,n.startLine=e.startLine,n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine)}function ch(n,e,t){n.children[t]===void 0?n.children[t]=[e]:n.children[t].push(e)}function dh(n,e,t){n.children[e]===void 0?n.children[e]=[t]:n.children[e].push(t)}const fh="name";function ru(n,e){Object.defineProperty(n,fh,{enumerable:!1,configurable:!0,writable:!1,value:e})}function hh(n,e){const t=m.keys(n),r=t.length;for(let i=0;i<r;i++){const s=t[i],a=n[s],o=a.length;for(let l=0;l<o;l++){const u=a[l];u.tokenTypeIdx===void 0&&this[u.name](u.children,e)}}}function ph(n,e){const t=function(){};ru(t,n+"BaseSemantics");const r={visit:function(i,s){if($.isArray(i)&&(i=i[0]),!m.isUndefined(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=gh(this,e);if(!$.isEmpty(i)){const s=g.map(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
88
88
  ${s.join(`
89
89
 
90
90
  `).replace(/\n/g,`
91
- `)}`)}}};return t.prototype=r,t.prototype.constructor=t,t._RULE_NAMES=e,t}function gh(n,e,t){const r=function(){};iu(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return g.forEach(e,s=>{i[s]=ph}),r.prototype=i,r.prototype.constructor=r,r}var ss;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(ss||(ss={}));function yh(n,e){return Th(n,e)}function Th(n,e){const t=g.filter(e,i=>$.isFunction(n[i])===!1),r=m.map(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:ss.MISSING_METHOD,methodName:i}));return Un(r)}class Rh{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=m.has(e,"nodeLocationTracking")?e.nodeLocationTracking:We.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=g.noop,this.cstFinallyStateUpdate=g.noop,this.cstPostTerminal=g.noop,this.cstPostNonTerminal=g.noop,this.cstPostRule=g.noop;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Sa,this.setNodeLocationFromNode=Sa,this.cstPostRule=g.noop,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=g.noop,this.setNodeLocationFromNode=g.noop,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=xa,this.setNodeLocationFromNode=xa,this.cstPostRule=g.noop,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=g.noop,this.setNodeLocationFromNode=g.noop,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=g.noop,this.setNodeLocationFromNode=g.noop,this.cstPostRule=g.noop,this.setInitialNodeLocation=g.noop;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];dh(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];fh(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(g.isUndefined(this.baseCstVisitorConstructor)){const e=mh(this.className,Ce.keys(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(g.isUndefined(this.baseCstVisitorWithDefaultsConstructor)){const e=gh(this.className,Ce.keys(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 vh{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Ur}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Ur: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 Eh{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=Br){if(ae(this.definedRulesNames,e)){const a={message:ot.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:se.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=Br){const i=Wf(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,t,r);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(Fr(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Nd(g.values(this.gastProductionsCache))}}class Ah{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Dr,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},m.has(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
91
+ `)}`)}}};return t.prototype=r,t.prototype.constructor=t,t._RULE_NAMES=e,t}function mh(n,e,t){const r=function(){};ru(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return m.forEach(e,s=>{i[s]=hh}),r.prototype=i,r.prototype.constructor=r,r}var is;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(is||(is={}));function gh(n,e){return yh(n,e)}function yh(n,e){const t=m.filter(e,i=>$.isFunction(n[i])===!1),r=g.map(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:is.MISSING_METHOD,methodName:i}));return Gn(r)}class Th{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=g.has(e,"nodeLocationTracking")?e.nodeLocationTracking:Ke.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=m.noop,this.cstFinallyStateUpdate=m.noop,this.cstPostTerminal=m.noop,this.cstPostNonTerminal=m.noop,this.cstPostRule=m.noop;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=xa,this.setNodeLocationFromNode=xa,this.cstPostRule=m.noop,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=m.noop,this.setNodeLocationFromNode=m.noop,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=$a,this.setNodeLocationFromNode=$a,this.cstPostRule=m.noop,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=m.noop,this.setNodeLocationFromNode=m.noop,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=m.noop,this.setNodeLocationFromNode=m.noop,this.cstPostRule=m.noop,this.setInitialNodeLocation=m.noop;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];ch(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];dh(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(m.isUndefined(this.baseCstVisitorConstructor)){const e=ph(this.className,m.keys(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(m.isUndefined(this.baseCstVisitorWithDefaultsConstructor)){const e=mh(this.className,m.keys(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 Rh{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Gr}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Gr: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 vh{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=Ur){if(ae(this.definedRulesNames,e)){const a={message:at.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:se.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=Ur){const i=Kf(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,t,r);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(Dr(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Cd(m.values(this.gastProductionsCache))}}class Eh{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Mr,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},g.has(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
92
92
  See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
93
93
  For Further details.`);if($.isArray(e)){if($.isEmpty(e))throw Error(`A Token Vocabulary cannot be empty.
94
94
  Note that the first argument for the parser constructor
95
95
  is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
96
96
  See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
97
- For Further details.`)}if($.isArray(e))this.tokensMap=g.reduce(e,(s,a)=>(s[a.name]=a,s),{});else if(m.has(e,"modes")&&Ie(m.flatten(g.values(e.modes)),vf)){const s=m.flatten(g.values(e.modes)),a=Is(s);this.tokensMap=g.reduce(a,(o,l)=>(o[l.name]=l,o),{})}else if($.isObject(e))this.tokensMap=Z.clone(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qe;const r=m.has(e,"modes")?m.flatten(g.values(e.modes)):g.values(e),i=Ie(r,s=>$.isEmpty(s.categoryMatches));this.tokenMatcher=i?Dr:Wn,Hn(g.values(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
98
- Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=m.has(r,"resyncEnabled")?r.resyncEnabled:Br.resyncEnabled,s=m.has(r,"recoveryValueFunc")?r.recoveryValueFunc:Br.recoveryValueFunc,a=this.ruleShortNameIdx<<oh+Je;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...c){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,c);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...c){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,c)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Fr(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(ru,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(rs,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,U.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,rs,e,Nf)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Ar,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Aa],o,Ar,e,Aa)}else throw this.raiseEarlyExitException(e,U.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead(ns,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,ns,e,Cf,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(is,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Ea],o,is,e,Ea)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,Ar,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(nu,t),i=$.isArray(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new nh(t,e))}}subruleInternal(e,t,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,t,r){throw Fr(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new eu(i,t,s))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===tu?r:s}}else throw r}saveRecogState(){const e=this.errors,t=Z.clone(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),qe)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class kh{initErrorHandler(e){this._errors=[],this.errorMessageProvider=m.has(e,"errorMessageProvider")?e.errorMessageProvider:We.errorMessageProvider}SAVE_ERROR(e){if(Fr(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Z.clone(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Z.clone(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=ci(e,s,t,this.maxLookahead)[0],l=[];for(let c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));const u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new rh(u,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=ui(e,i,this.maxLookahead),a=[];for(let u=1;u<=this.maxLookahead;u++)a.push(this.LA(u));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new th(l,this.LA(1),o))}}class $h{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(g.isUndefined(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Kl([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Ne(e.ruleStack),i=this.getGAstProductions()[t];return new If(i,e).startWalking()}}const fi={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(fi);const Ia=!0,Ca=Math.pow(2,Je)-1,su=Bl({name:"RECORDING_PHASE_TOKEN",pattern:oe.NA});Hn([su]);const au=Fs(su,`This IToken indicates the Parser is in Recording Phase
99
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(au);const xh={name:`This CSTNode indicates the Parser is in Recording Phase
100
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class Sh{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Ur}topLevelRuleRecord(e,t){try{const r=new jt({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
97
+ For Further details.`)}if($.isArray(e))this.tokensMap=m.reduce(e,(s,a)=>(s[a.name]=a,s),{});else if(g.has(e,"modes")&&Ie(g.flatten(m.values(e.modes)),Rf)){const s=g.flatten(m.values(e.modes)),a=Ss(s);this.tokensMap=m.reduce(a,(o,l)=>(o[l.name]=l,o),{})}else if($.isObject(e))this.tokensMap=Z.clone(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=ze;const r=g.has(e,"modes")?g.flatten(m.values(e.modes)):m.values(e),i=Ie(r,s=>$.isEmpty(s.categoryMatches));this.tokenMatcher=i?Mr:Kn,Wn(m.values(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
98
+ Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=g.has(r,"resyncEnabled")?r.resyncEnabled:Ur.resyncEnabled,s=g.has(r,"recoveryValueFunc")?r.recoveryValueFunc:Ur.recoveryValueFunc,a=this.ruleShortNameIdx<<ah+Xe;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...c){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,c);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...c){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,c)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Dr(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(nu,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(ns,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,U.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,ns,e,Cf)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Er,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Ea],o,Er,e,Ea)}else throw this.raiseEarlyExitException(e,U.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead(ts,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,ts,e,If,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(rs,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,va],o,rs,e,va)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,Er,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(tu,t),i=$.isArray(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new th(t,e))}}subruleInternal(e,t,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,t,r){throw Dr(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Zl(i,t,s))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===eu?r:s}}else throw r}saveRecogState(){const e=this.errors,t=Z.clone(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ze)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class Ah{initErrorHandler(e){this._errors=[],this.errorMessageProvider=g.has(e,"errorMessageProvider")?e.errorMessageProvider:Ke.errorMessageProvider}SAVE_ERROR(e){if(Dr(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Z.clone(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Z.clone(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=ui(e,s,t,this.maxLookahead)[0],l=[];for(let c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));const u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new nh(u,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=li(e,i,this.maxLookahead),a=[];for(let u=1;u<=this.maxLookahead;u++)a.push(this.LA(u));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new eh(l,this.LA(1),o))}}class kh{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(m.isUndefined(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Vl([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Ce(e.ruleStack),i=this.getGAstProductions()[t];return new Sf(i,e).startWalking()}}const di={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(di);const Sa=!0,Ia=Math.pow(2,Xe)-1,iu=Ul({name:"RECORDING_PHASE_TOKEN",pattern:oe.NA});Wn([iu]);const su=Ds(iu,`This IToken indicates the Parser is in Recording Phase
99
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(su);const $h={name:`This CSTNode indicates the Parser is in Recording Phase
100
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class xh{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Gr}topLevelRuleRecord(e,t){try{const r=new Ht({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
101
101
  This error was thrown during the "grammar recording phase" For more info see:
102
- https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return Xt.call(this,Q,e,t)}atLeastOneInternalRecord(e,t){Xt.call(this,Re,t,e)}atLeastOneSepFirstInternalRecord(e,t){Xt.call(this,ve,t,e,Ia)}manyInternalRecord(e,t){Xt.call(this,K,t,e)}manySepFirstInternalRecord(e,t){Xt.call(this,ce,t,e,Ia)}orInternalRecord(e,t){return Ih.call(this,e,t)}subruleInternalRecord(e,t,r){if(Gr(t),!e||m.has(e,"ruleName")===!1){const o=new Error(`<SUBRULE${Na(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
103
- inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=m.last(this.recordingProdStack),s=e.ruleName,a=new ie({idx:t,nonTerminalName:s,label:r?.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?xh:fi}consumeInternalRecord(e,t,r){if(Gr(t),!Gl(e)){const a=new Error(`<CONSUME${Na(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
104
- inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=m.last(this.recordingProdStack),s=new F({idx:t,terminalType:e,label:r?.LABEL});return i.definition.push(s),au}}function Xt(n,e,t,r=!1){Gr(t);const i=m.last(this.recordingProdStack),s=$.isFunction(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),m.has(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),fi}function Ih(n,e){Gr(e);const t=m.last(this.recordingProdStack),r=$.isArray(n)===!1,i=r===!1?n:n.DEF,s=new de({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});m.has(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=ol(i,o=>$.isFunction(o.GATE));return s.hasPredicates=a,t.definition.push(s),g.forEach(i,o=>{const l=new ue({definition:[]});s.definition.push(l),m.has(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:m.has(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),fi}function Na(n){return n===0?"":`${n}`}function Gr(n){if(n<0||n>Ca){const e=new Error(`Invalid DSL Method idx value: <${n}>
105
- Idx value must be a none negative value smaller than ${Ca+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class Ch{initPerformanceTracer(e){if(m.has(e,"traceInitPerf")){const t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=We.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=Nl(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function Nh(n,e){e.forEach(t=>{const r=t.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(n.prototype,i,s):n.prototype[i]=t.prototype[i]})})}const Ur=Fs(qe,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Ur);const We=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Et,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Br=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var se;(function(n){n[n.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",n[n.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",n[n.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",n[n.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",n[n.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",n[n.LEFT_RECURSION=5]="LEFT_RECURSION",n[n.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",n[n.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",n[n.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",n[n.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",n[n.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",n[n.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",n[n.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",n[n.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(se||(se={}));function wa(n=void 0){return function(){return n}}class jn{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{wl(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),g.forEach(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=Zf({rules:g.values(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if($.isEmpty(r)&&this.skipValidations===!1){const i=eh({rules:g.values(this.gastProductionsCache),tokenTypes:g.values(this.tokensMap),errMsgProvider:ot,grammarName:t}),s=Ff({lookaheadStrategy:this.lookaheadStrategy,rules:g.values(this.gastProductionsCache),tokenTypes:g.values(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),$.isEmpty(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Md(g.values(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:g.values(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(g.values(this.gastProductionsCache))})),!jn.DEFER_DEFINITION_ERRORS_HANDLING&&!$.isEmpty(this.definitionErrors))throw e=m.map(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
102
+ https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return Yt.call(this,Q,e,t)}atLeastOneInternalRecord(e,t){Yt.call(this,Re,t,e)}atLeastOneSepFirstInternalRecord(e,t){Yt.call(this,ve,t,e,Sa)}manyInternalRecord(e,t){Yt.call(this,K,t,e)}manySepFirstInternalRecord(e,t){Yt.call(this,ce,t,e,Sa)}orInternalRecord(e,t){return Sh.call(this,e,t)}subruleInternalRecord(e,t,r){if(Fr(t),!e||g.has(e,"ruleName")===!1){const o=new Error(`<SUBRULE${Ca(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
103
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=g.last(this.recordingProdStack),s=e.ruleName,a=new ie({idx:t,nonTerminalName:s,label:r?.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?$h:di}consumeInternalRecord(e,t,r){if(Fr(t),!Fl(e)){const a=new Error(`<CONSUME${Ca(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
104
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=g.last(this.recordingProdStack),s=new F({idx:t,terminalType:e,label:r?.LABEL});return i.definition.push(s),su}}function Yt(n,e,t,r=!1){Fr(t);const i=g.last(this.recordingProdStack),s=$.isFunction(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),g.has(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),di}function Sh(n,e){Fr(e);const t=g.last(this.recordingProdStack),r=$.isArray(n)===!1,i=r===!1?n:n.DEF,s=new de({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});g.has(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=al(i,o=>$.isFunction(o.GATE));return s.hasPredicates=a,t.definition.push(s),m.forEach(i,o=>{const l=new ue({definition:[]});s.definition.push(l),g.has(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:g.has(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),di}function Ca(n){return n===0?"":`${n}`}function Fr(n){if(n<0||n>Ia){const e=new Error(`Invalid DSL Method idx value: <${n}>
105
+ Idx value must be a none negative value smaller than ${Ia+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class Ih{initPerformanceTracer(e){if(g.has(e,"traceInitPerf")){const t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Ke.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=Cl(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function Ch(n,e){e.forEach(t=>{const r=t.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(n.prototype,i,s):n.prototype[i]=t.prototype[i]})})}const Gr=Ds(ze,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Gr);const Ke=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:vt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Ur=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var se;(function(n){n[n.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",n[n.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",n[n.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",n[n.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",n[n.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",n[n.LEFT_RECURSION=5]="LEFT_RECURSION",n[n.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",n[n.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",n[n.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",n[n.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",n[n.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",n[n.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",n[n.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",n[n.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(se||(se={}));function Na(n=void 0){return function(){return n}}class Hn{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{Nl(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),m.forEach(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=Qf({rules:m.values(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if($.isEmpty(r)&&this.skipValidations===!1){const i=Zf({rules:m.values(this.gastProductionsCache),tokenTypes:m.values(this.tokensMap),errMsgProvider:at,grammarName:t}),s=Df({lookaheadStrategy:this.lookaheadStrategy,rules:m.values(this.gastProductionsCache),tokenTypes:m.values(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),$.isEmpty(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Pd(m.values(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:m.values(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(m.values(this.gastProductionsCache))})),!Hn.DEFER_DEFINITION_ERRORS_HANDLING&&!$.isEmpty(this.definitionErrors))throw e=g.map(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
106
106
  ${e.join(`
107
107
  -------------------------------
108
- `)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),m.has(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
108
+ `)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),g.has(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
109
109
  Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
110
110
  See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
111
- For further details.`);this.skipValidations=m.has(t,"skipValidations")?t.skipValidations:We.skipValidations}}jn.DEFER_DEFINITION_ERRORS_HANDLING=!1;Nh(jn,[sh,lh,Rh,vh,Ah,Eh,kh,$h,Sh,Ch]);class wh extends jn{constructor(e,t=We){const r=Z.clone(t);r.outputCst=!1,super(e,r)}}function Bt(n,e,t){return`${n.name}_${e}_${t}`}const Ye=1,Lh=2,ou=4,lu=5,zn=7,_h=8,bh=9,Oh=10,Ph=11,uu=12;class Vs{constructor(e){this.target=e}isEpsilon(){return!1}}class Ks extends Vs{constructor(e,t){super(e),this.tokenType=t}}class cu extends Vs{constructor(e){super(e)}isEpsilon(){return!0}}class Ws extends Vs{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function Mh(n){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Dh(e,n);const t=n.length;for(let r=0;r<t;r++){const i=n[r],s=mt(e,i,i);s!==void 0&&qh(e,i,s)}return e}function Dh(n,e){const t=e.length;for(let r=0;r<t;r++){const i=e[r],s=z(n,i,void 0,{type:Lh}),a=z(n,i,void 0,{type:zn});s.stop=a,n.ruleToStartState.set(i,s),n.ruleToStopState.set(i,a)}}function du(n,e,t){return t instanceof F?Hs(n,e,t.terminalType,t):t instanceof ie?zh(n,e,t):t instanceof de?Vh(n,e,t):t instanceof Q?Kh(n,e,t):t instanceof K?Fh(n,e,t):t instanceof ce?Gh(n,e,t):t instanceof Re?Uh(n,e,t):t instanceof ve?Bh(n,e,t):mt(n,e,t)}function Fh(n,e,t){const r=z(n,e,t,{type:lu});Qe(n,r);const i=qt(n,e,r,t,mt(n,e,t));return hu(n,e,t,i)}function Gh(n,e,t){const r=z(n,e,t,{type:lu});Qe(n,r);const i=qt(n,e,r,t,mt(n,e,t)),s=Hs(n,e,t.separator,t);return hu(n,e,t,i,s)}function Uh(n,e,t){const r=z(n,e,t,{type:ou});Qe(n,r);const i=qt(n,e,r,t,mt(n,e,t));return fu(n,e,t,i)}function Bh(n,e,t){const r=z(n,e,t,{type:ou});Qe(n,r);const i=qt(n,e,r,t,mt(n,e,t)),s=Hs(n,e,t.separator,t);return fu(n,e,t,i,s)}function Vh(n,e,t){const r=z(n,e,t,{type:Ye});Qe(n,r);const i=m.map(t.definition,a=>du(n,e,a));return qt(n,e,r,t,...i)}function Kh(n,e,t){const r=z(n,e,t,{type:Ye});Qe(n,r);const i=qt(n,e,r,t,mt(n,e,t));return Wh(n,e,t,i)}function mt(n,e,t){const r=g.filter(m.map(t.definition,i=>du(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:jh(n,r)}function fu(n,e,t,r,i){const s=r.left,a=r.right,o=z(n,e,t,{type:Ph});Qe(n,o);const l=z(n,e,t,{type:uu});return s.loopback=o,l.loopback=o,n.decisionMap[Bt(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,H(a,o),i===void 0?(H(o,s),H(o,l)):(H(o,l),H(o,i.left),H(i.right,s)),{left:s,right:l}}function hu(n,e,t,r,i){const s=r.left,a=r.right,o=z(n,e,t,{type:Oh});Qe(n,o);const l=z(n,e,t,{type:uu}),u=z(n,e,t,{type:bh});return o.loopback=u,l.loopback=u,H(o,s),H(o,l),H(a,u),i!==void 0?(H(u,l),H(u,i.left),H(i.right,s)):H(u,o),n.decisionMap[Bt(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Wh(n,e,t,r){const i=r.left,s=r.right;return H(i,s),n.decisionMap[Bt(e,"Option",t.idx)]=i,r}function Qe(n,e){return n.decisionStates.push(e),e.decision=n.decisionStates.length-1,e.decision}function qt(n,e,t,r,...i){const s=z(n,e,r,{type:_h,start:t});t.end=s;for(const o of i)o!==void 0?(H(t,o.left),H(o.right,s)):H(t,s);const a={left:t,right:s};return n.decisionMap[Bt(e,Hh(r),r.idx)]=t,a}function Hh(n){if(n instanceof de)return"Alternation";if(n instanceof Q)return"Option";if(n instanceof K)return"Repetition";if(n instanceof ce)return"RepetitionWithSeparator";if(n instanceof Re)return"RepetitionMandatory";if(n instanceof ve)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function jh(n,e){const t=e.length;for(let s=0;s<t-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const l=o instanceof Ws,u=o,c=e[s+1].left;a.left.type===Ye&&a.right.type===Ye&&o!==void 0&&(l&&u.followState===a.right||o.target===a.right)?(l?u.followState=c:o.target=c,Yh(n,a.right)):H(a.right,c)}const r=e[0],i=e[t-1];return{left:r.left,right:i.right}}function Hs(n,e,t,r){const i=z(n,e,r,{type:Ye}),s=z(n,e,r,{type:Ye});return js(i,new Ks(s,t)),{left:i,right:s}}function zh(n,e,t){const r=t.referencedRule,i=n.ruleToStartState.get(r),s=z(n,e,t,{type:Ye}),a=z(n,e,t,{type:Ye}),o=new Ws(i,r,a);return js(s,o),{left:s,right:a}}function qh(n,e,t){const r=n.ruleToStartState.get(e);H(r,t.left);const i=n.ruleToStopState.get(e);return H(t.right,i),{left:r,right:i}}function H(n,e){const t=new cu(e);js(n,t)}function z(n,e,t,r){const i=Object.assign({atn:n,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:n.states.length},r);return n.states.push(i),i}function js(n,e){n.transitions.length===0&&(n.epsilonOnlyTransitions=e.isEpsilon()),n.transitions.push(e)}function Yh(n,e){n.states.splice(n.states.indexOf(e),1)}const Vr={};class as{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=pu(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return m.map(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function pu(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function Xh(n,e){const t={};return r=>{const i=r.toString();let s=t[i];return s!==void 0||(s={atnStartState:n,decision:e,states:{}},t[i]=s),s}}class mu{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let r=0;r<t;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const La=new mu;class Jh extends Bs{constructor(e){var t;super(),this.logging=(t=e?.logging)!==null&&t!==void 0?t:(r=>console.log(r))}initialize(e){this.atn=Mh(e.rules),this.dfas=Qh(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Bt(r,"Alternation",t),c=this.atn.decisionMap[l].decision,d=m.map(ka({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),h=>m.map(h,f=>f[0]));if(_a(d,!1)&&!s){const h=g.reduce(d,(f,y,T)=>(g.forEach(y,k=>{k&&(f[k.tokenTypeIdx]=T,g.forEach(k.categoryMatches,v=>{f[v]=T}))}),f),{});return i?function(f){var y;const T=this.LA(1),k=h[T.tokenTypeIdx];if(f!==void 0&&k!==void 0){const v=(y=f[k])===null||y===void 0?void 0:y.GATE;if(v!==void 0&&v.call(this)===!1)return}return k}:function(){const f=this.LA(1);return h[f.tokenTypeIdx]}}else return i?function(h){const f=new mu,y=h===void 0?0:h.length;for(let k=0;k<y;k++){const v=h?.[k].GATE;f.set(k,v===void 0||v.call(this))}const T=Ni.call(this,a,c,f,o);return typeof T=="number"?T:void 0}:function(){const h=Ni.call(this,a,c,La,o);return typeof h=="number"?h:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:r,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Bt(r,i,t),c=this.atn.decisionMap[l].decision,d=m.map(ka({maxLookahead:1,occurrence:t,prodType:i,rule:r}),h=>m.map(h,f=>f[0]));if(_a(d)&&d[0][0]&&!s){const h=d[0],f=m.flatten(h);if(f.length===1&&$.isEmpty(f[0].categoryMatches)){const T=f[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===T}}else{const y=g.reduce(f,(T,k)=>(k!==void 0&&(T[k.tokenTypeIdx]=!0,g.forEach(k.categoryMatches,v=>{T[v]=!0})),T),{});return function(){const T=this.LA(1);return y[T.tokenTypeIdx]===!0}}}return function(){const h=Ni.call(this,a,c,La,o);return typeof h=="object"?!1:h===0}}}function _a(n,e=!0){const t=new Set;for(const r of n){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function Qh(n){const e=n.decisionStates.length,t=Array(e);for(let r=0;r<e;r++)t[r]=Xh(n.decisionStates[r],r);return t}function Ni(n,e,t,r){const i=n[e](t);let s=i.start;if(s===void 0){const o=up(i.atnStartState);s=yu(i,gu(o)),i.start=s}return Zh.apply(this,[i,s,t,r])}function Zh(n,e,t,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=sp(i,o);if(l===void 0&&(l=ep.apply(this,[n,i,o,s,t,r])),l===Vr)return ip(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function ep(n,e,t,r,i,s){const a=ap(e.configs,t,i);if(a.size===0)return ba(n,e,t,Vr),Vr;let o=gu(a);const l=lp(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(hp(a)){const u=m.min(a.alts);o.isAcceptState=!0,o.prediction=u,o.configs.uniqueAlt=u,tp.apply(this,[n,r,a.alts,s])}return o=ba(n,e,t,o),o}function tp(n,e,t,r){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=n.atnStartState,a=s.rule,o=s.production,l=np({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});r(l)}function np(n){const e=m.map(n.prefixPath,i=>kt(i)).join(", "),t=n.production.idx===0?"":n.production.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(", ")}> in <${rp(n.production)}${t}> inside <${n.topLevelRule.name}> Rule,
111
+ For further details.`);this.skipValidations=g.has(t,"skipValidations")?t.skipValidations:Ke.skipValidations}}Hn.DEFER_DEFINITION_ERRORS_HANDLING=!1;Ch(Hn,[ih,oh,Th,Rh,Eh,vh,Ah,kh,xh,Ih]);class Nh extends Hn{constructor(e,t=Ke){const r=Z.clone(t);r.outputCst=!1,super(e,r)}}function Ut(n,e,t){return`${n.name}_${e}_${t}`}const qe=1,wh=2,au=4,ou=5,jn=7,Lh=8,_h=9,bh=10,Oh=11,lu=12;class Bs{constructor(e){this.target=e}isEpsilon(){return!1}}class Vs extends Bs{constructor(e,t){super(e),this.tokenType=t}}class uu extends Bs{constructor(e){super(e)}isEpsilon(){return!0}}class Ks extends Bs{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function Ph(n){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Mh(e,n);const t=n.length;for(let r=0;r<t;r++){const i=n[r],s=pt(e,i,i);s!==void 0&&zh(e,i,s)}return e}function Mh(n,e){const t=e.length;for(let r=0;r<t;r++){const i=e[r],s=z(n,i,void 0,{type:wh}),a=z(n,i,void 0,{type:jn});s.stop=a,n.ruleToStartState.set(i,s),n.ruleToStopState.set(i,a)}}function cu(n,e,t){return t instanceof F?Ws(n,e,t.terminalType,t):t instanceof ie?jh(n,e,t):t instanceof de?Bh(n,e,t):t instanceof Q?Vh(n,e,t):t instanceof K?Dh(n,e,t):t instanceof ce?Fh(n,e,t):t instanceof Re?Gh(n,e,t):t instanceof ve?Uh(n,e,t):pt(n,e,t)}function Dh(n,e,t){const r=z(n,e,t,{type:ou});Je(n,r);const i=zt(n,e,r,t,pt(n,e,t));return fu(n,e,t,i)}function Fh(n,e,t){const r=z(n,e,t,{type:ou});Je(n,r);const i=zt(n,e,r,t,pt(n,e,t)),s=Ws(n,e,t.separator,t);return fu(n,e,t,i,s)}function Gh(n,e,t){const r=z(n,e,t,{type:au});Je(n,r);const i=zt(n,e,r,t,pt(n,e,t));return du(n,e,t,i)}function Uh(n,e,t){const r=z(n,e,t,{type:au});Je(n,r);const i=zt(n,e,r,t,pt(n,e,t)),s=Ws(n,e,t.separator,t);return du(n,e,t,i,s)}function Bh(n,e,t){const r=z(n,e,t,{type:qe});Je(n,r);const i=g.map(t.definition,a=>cu(n,e,a));return zt(n,e,r,t,...i)}function Vh(n,e,t){const r=z(n,e,t,{type:qe});Je(n,r);const i=zt(n,e,r,t,pt(n,e,t));return Kh(n,e,t,i)}function pt(n,e,t){const r=m.filter(g.map(t.definition,i=>cu(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:Hh(n,r)}function du(n,e,t,r,i){const s=r.left,a=r.right,o=z(n,e,t,{type:Oh});Je(n,o);const l=z(n,e,t,{type:lu});return s.loopback=o,l.loopback=o,n.decisionMap[Ut(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,H(a,o),i===void 0?(H(o,s),H(o,l)):(H(o,l),H(o,i.left),H(i.right,s)),{left:s,right:l}}function fu(n,e,t,r,i){const s=r.left,a=r.right,o=z(n,e,t,{type:bh});Je(n,o);const l=z(n,e,t,{type:lu}),u=z(n,e,t,{type:_h});return o.loopback=u,l.loopback=u,H(o,s),H(o,l),H(a,u),i!==void 0?(H(u,l),H(u,i.left),H(i.right,s)):H(u,o),n.decisionMap[Ut(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Kh(n,e,t,r){const i=r.left,s=r.right;return H(i,s),n.decisionMap[Ut(e,"Option",t.idx)]=i,r}function Je(n,e){return n.decisionStates.push(e),e.decision=n.decisionStates.length-1,e.decision}function zt(n,e,t,r,...i){const s=z(n,e,r,{type:Lh,start:t});t.end=s;for(const o of i)o!==void 0?(H(t,o.left),H(o.right,s)):H(t,s);const a={left:t,right:s};return n.decisionMap[Ut(e,Wh(r),r.idx)]=t,a}function Wh(n){if(n instanceof de)return"Alternation";if(n instanceof Q)return"Option";if(n instanceof K)return"Repetition";if(n instanceof ce)return"RepetitionWithSeparator";if(n instanceof Re)return"RepetitionMandatory";if(n instanceof ve)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Hh(n,e){const t=e.length;for(let s=0;s<t-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const l=o instanceof Ks,u=o,c=e[s+1].left;a.left.type===qe&&a.right.type===qe&&o!==void 0&&(l&&u.followState===a.right||o.target===a.right)?(l?u.followState=c:o.target=c,qh(n,a.right)):H(a.right,c)}const r=e[0],i=e[t-1];return{left:r.left,right:i.right}}function Ws(n,e,t,r){const i=z(n,e,r,{type:qe}),s=z(n,e,r,{type:qe});return Hs(i,new Vs(s,t)),{left:i,right:s}}function jh(n,e,t){const r=t.referencedRule,i=n.ruleToStartState.get(r),s=z(n,e,t,{type:qe}),a=z(n,e,t,{type:qe}),o=new Ks(i,r,a);return Hs(s,o),{left:s,right:a}}function zh(n,e,t){const r=n.ruleToStartState.get(e);H(r,t.left);const i=n.ruleToStopState.get(e);return H(t.right,i),{left:r,right:i}}function H(n,e){const t=new uu(e);Hs(n,t)}function z(n,e,t,r){const i=Object.assign({atn:n,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:n.states.length},r);return n.states.push(i),i}function Hs(n,e){n.transitions.length===0&&(n.epsilonOnlyTransitions=e.isEpsilon()),n.transitions.push(e)}function qh(n,e){n.states.splice(n.states.indexOf(e),1)}const Br={};class ss{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=hu(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return g.map(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function hu(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function Yh(n,e){const t={};return r=>{const i=r.toString();let s=t[i];return s!==void 0||(s={atnStartState:n,decision:e,states:{}},t[i]=s),s}}class pu{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let r=0;r<t;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const wa=new pu;class Xh extends Us{constructor(e){var t;super(),this.logging=(t=e?.logging)!==null&&t!==void 0?t:(r=>console.log(r))}initialize(e){this.atn=Ph(e.rules),this.dfas=Jh(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Ut(r,"Alternation",t),c=this.atn.decisionMap[l].decision,d=g.map(Aa({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),h=>g.map(h,f=>f[0]));if(La(d,!1)&&!s){const h=m.reduce(d,(f,y,T)=>(m.forEach(y,k=>{k&&(f[k.tokenTypeIdx]=T,m.forEach(k.categoryMatches,v=>{f[v]=T}))}),f),{});return i?function(f){var y;const T=this.LA(1),k=h[T.tokenTypeIdx];if(f!==void 0&&k!==void 0){const v=(y=f[k])===null||y===void 0?void 0:y.GATE;if(v!==void 0&&v.call(this)===!1)return}return k}:function(){const f=this.LA(1);return h[f.tokenTypeIdx]}}else return i?function(h){const f=new pu,y=h===void 0?0:h.length;for(let k=0;k<y;k++){const v=h?.[k].GATE;f.set(k,v===void 0||v.call(this))}const T=Ci.call(this,a,c,f,o);return typeof T=="number"?T:void 0}:function(){const h=Ci.call(this,a,c,wa,o);return typeof h=="number"?h:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:r,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=Ut(r,i,t),c=this.atn.decisionMap[l].decision,d=g.map(Aa({maxLookahead:1,occurrence:t,prodType:i,rule:r}),h=>g.map(h,f=>f[0]));if(La(d)&&d[0][0]&&!s){const h=d[0],f=g.flatten(h);if(f.length===1&&$.isEmpty(f[0].categoryMatches)){const T=f[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===T}}else{const y=m.reduce(f,(T,k)=>(k!==void 0&&(T[k.tokenTypeIdx]=!0,m.forEach(k.categoryMatches,v=>{T[v]=!0})),T),{});return function(){const T=this.LA(1);return y[T.tokenTypeIdx]===!0}}}return function(){const h=Ci.call(this,a,c,wa,o);return typeof h=="object"?!1:h===0}}}function La(n,e=!0){const t=new Set;for(const r of n){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function Jh(n){const e=n.decisionStates.length,t=Array(e);for(let r=0;r<e;r++)t[r]=Yh(n.decisionStates[r],r);return t}function Ci(n,e,t,r){const i=n[e](t);let s=i.start;if(s===void 0){const o=lp(i.atnStartState);s=gu(i,mu(o)),i.start=s}return Qh.apply(this,[i,s,t,r])}function Qh(n,e,t,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=ip(i,o);if(l===void 0&&(l=Zh.apply(this,[n,i,o,s,t,r])),l===Br)return rp(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function Zh(n,e,t,r,i,s){const a=sp(e.configs,t,i);if(a.size===0)return _a(n,e,t,Br),Br;let o=mu(a);const l=op(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(fp(a)){const u=g.min(a.alts);o.isAcceptState=!0,o.prediction=u,o.configs.uniqueAlt=u,ep.apply(this,[n,r,a.alts,s])}return o=_a(n,e,t,o),o}function ep(n,e,t,r){const i=[];for(let u=1;u<=e;u++)i.push(this.LA(u).tokenType);const s=n.atnStartState,a=s.rule,o=s.production,l=tp({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});r(l)}function tp(n){const e=g.map(n.prefixPath,i=>At(i)).join(", "),t=n.production.idx===0?"":n.production.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(", ")}> in <${np(n.production)}${t}> inside <${n.topLevelRule.name}> Rule,
112
112
  <${e}> may appears as a prefix path in all these alternatives.
113
113
  `;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
114
- For Further details.`,r}function rp(n){if(n instanceof ie)return"SUBRULE";if(n instanceof Q)return"OPTION";if(n instanceof de)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ve)return"AT_LEAST_ONE_SEP";if(n instanceof ce)return"MANY_SEP";if(n instanceof K)return"MANY";if(n instanceof F)return"CONSUME";throw Error("non exhaustive match")}function ip(n,e,t){const r=ye(e.configs.elements,s=>s.state.transitions),i=xc(r.filter(s=>s instanceof Ks).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:n}}function sp(n,e){return n.edges[e.tokenTypeIdx]}function ap(n,e,t){const r=new as,i=[];for(const a of n.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===zn){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l<o;l++){const u=a.state.transitions[l],c=op(u,e);c!==void 0&&r.add({state:c,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new as;for(const a of r.elements)Kr(a,s)}if(i.length>0&&!dp(s))for(const a of i)s.add(a);return s}function op(n,e){if(n instanceof Ks&&Vl(e,n.tokenType))return n.target}function lp(n,e){let t;for(const r of n.elements)if(e.is(r.alt)===!0){if(t===void 0)t=r.alt;else if(t!==r.alt)return}return t}function gu(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function ba(n,e,t,r){return r=yu(n,r),e.edges[t.tokenTypeIdx]=r,r}function yu(n,e){if(e===Vr)return e;const t=e.configs.key,r=n.states[t];return r!==void 0?r:(e.configs.finalize(),n.states[t]=e,e)}function up(n){const e=new as,t=n.transitions.length;for(let r=0;r<t;r++){const s={state:n.transitions[r].target,alt:r,stack:[]};Kr(s,e)}return e}function Kr(n,e){const t=n.state;if(t.type===zn){if(n.stack.length>0){const i=[...n.stack],a={state:i.pop(),alt:n.alt,stack:i};Kr(a,e)}else e.add(n);return}t.epsilonOnlyTransitions||e.add(n);const r=t.transitions.length;for(let i=0;i<r;i++){const s=t.transitions[i],a=cp(n,s);a!==void 0&&Kr(a,e)}}function cp(n,e){if(e instanceof cu)return{state:e.target,alt:n.alt,stack:n.stack};if(e instanceof Ws){const t=[...n.stack,e.followState];return{state:e.target,alt:n.alt,stack:t}}}function dp(n){for(const e of n.elements)if(e.state.type===zn)return!0;return!1}function fp(n){for(const e of n.elements)if(e.state.type!==zn)return!1;return!0}function hp(n){if(fp(n))return!0;const e=pp(n.elements);return mp(e)&&!gp(e)}function pp(n){const e=new Map;for(const t of n){const r=pu(t,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[t.alt]=!0}return e}function mp(n){for(const e of Array.from(n.values()))if(Object.keys(e).length>1)return!0;return!1}function gp(n){for(const e of Array.from(n.values()))if(Object.keys(e).length===1)return!0;return!1}var Oa;(function(n){function e(t){return typeof t=="string"}n.is=e})(Oa||(Oa={}));var os;(function(n){function e(t){return typeof t=="string"}n.is=e})(os||(os={}));var Pa;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Pa||(Pa={}));var Wr;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Wr||(Wr={}));var P;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Wr.MAX_VALUE),i===Number.MAX_VALUE&&(i=Wr.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}n.is=t})(P||(P={}));var O;(function(n){function e(r,i,s,a){if(p.uinteger(r)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:P.create(r,i),end:P.create(s,a)};if(P.is(r)&&P.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&P.is(i.start)&&P.is(i.end)}n.is=t})(O||(O={}));var Hr;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}n.is=t})(Hr||(Hr={}));var Ma;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.targetRange)&&p.string(i.targetUri)&&O.is(i.targetSelectionRange)&&(O.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}n.is=t})(Ma||(Ma={}));var ls;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}n.is=t})(ls||(ls={}));var Da;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&O.is(i.range)&&ls.is(i.color)}n.is=t})(Da||(Da={}));var Fa;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||Kt.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Kt.is))}n.is=t})(Fa||(Fa={}));var Ga;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Ga||(Ga={}));var Ua;(function(n){function e(r,i,s,a,o,l){const u={startLine:r,endLine:i};return p.defined(s)&&(u.startCharacter=s),p.defined(a)&&(u.endCharacter=a),p.defined(o)&&(u.kind=o),p.defined(l)&&(u.collapsedText=l),u}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}n.is=t})(Ua||(Ua={}));var us;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&Hr.is(i.location)&&p.string(i.message)}n.is=t})(us||(us={}));var Ba;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(Ba||(Ba={}));var Va;(function(n){n.Unnecessary=1,n.Deprecated=2})(Va||(Va={}));var Ka;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&p.string(r.href)}n.is=e})(Ka||(Ka={}));var jr;(function(n){function e(r,i,s,a,o,l){let u={range:r,message:i};return p.defined(s)&&(u.severity=s),p.defined(a)&&(u.code=a),p.defined(o)&&(u.source=o),p.defined(l)&&(u.relatedInformation=l),u}n.create=e;function t(r){var i;let s=r;return p.defined(s)&&O.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,us.is))}n.is=t})(jr||(jr={}));var Vt;(function(n){function e(r,i,...s){let a={title:r,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}n.is=t})(Vt||(Vt={}));var Kt;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&O.is(a.range)}n.is=i})(Kt||(Kt={}));var cs;(function(n){function e(r,i,s){const a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}n.is=t})(cs||(cs={}));var Wt;(function(n){function e(t){const r=t;return p.string(r)}n.is=e})(Wt||(Wt={}));var Wa;(function(n){function e(s,a,o){return{range:s,newText:a,annotationId:o}}n.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){const a=s;return Kt.is(a)&&(cs.is(a.annotationId)||Wt.is(a.annotationId))}n.is=i})(Wa||(Wa={}));var ds;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&gs.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(ds||(ds={}));var fs;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Wt.is(i.annotationId))}n.is=t})(fs||(fs={}));var hs;(function(n){function e(r,i,s,a){let o={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}n.create=e;function t(r){let i=r;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Wt.is(i.annotationId))}n.is=t})(hs||(hs={}));var ps;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Wt.is(i.annotationId))}n.is=t})(ps||(ps={}));var ms;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>p.string(i.kind)?fs.is(i)||hs.is(i)||ps.is(i):ds.is(i)))}n.is=e})(ms||(ms={}));var Ha;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)}n.is=t})(Ha||(Ha={}));var ja;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}n.is=t})(ja||(ja={}));var gs;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}n.is=t})(gs||(gs={}));var za;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}n.is=t})(za||(za={}));var ys;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){const r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(ys||(ys={}));var Fn;(function(n){function e(t){const r=t;return p.objectLiteral(t)&&ys.is(r.kind)&&p.string(r.value)}n.is=e})(Fn||(Fn={}));var qa;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(qa||(qa={}));var Ya;(function(n){n.PlainText=1,n.Snippet=2})(Ya||(Ya={}));var Xa;(function(n){n.Deprecated=1})(Xa||(Xa={}));var Ja;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){const i=r;return i&&p.string(i.newText)&&O.is(i.insert)&&O.is(i.replace)}n.is=t})(Ja||(Ja={}));var Qa;(function(n){n.asIs=1,n.adjustIndentation=2})(Qa||(Qa={}));var Za;(function(n){function e(t){const r=t;return r&&(p.string(r.detail)||r.detail===void 0)&&(p.string(r.description)||r.description===void 0)}n.is=e})(Za||(Za={}));var eo;(function(n){function e(t){return{label:t}}n.create=e})(eo||(eo={}));var to;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(to||(to={}));var zr;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){const i=r;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}n.is=t})(zr||(zr={}));var no;(function(n){function e(t){let r=t;return!!r&&p.objectLiteral(r)&&(Fn.is(r.contents)||zr.is(r.contents)||p.typedArray(r.contents,zr.is))&&(t.range===void 0||O.is(t.range))}n.is=e})(no||(no={}));var ro;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(ro||(ro={}));var io;(function(n){function e(t,r,...i){let s={label:t};return p.defined(r)&&(s.documentation=r),p.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(io||(io={}));var so;(function(n){n.Text=1,n.Read=2,n.Write=3})(so||(so={}));var ao;(function(n){function e(t,r){let i={range:t};return p.number(r)&&(i.kind=r),i}n.create=e})(ao||(ao={}));var oo;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(oo||(oo={}));var lo;(function(n){n.Deprecated=1})(lo||(lo={}));var uo;(function(n){function e(t,r,i,s,a){let o={name:t,kind:r,location:{uri:s,range:i}};return a&&(o.containerName=a),o}n.create=e})(uo||(uo={}));var co;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(co||(co={}));var fo;(function(n){function e(r,i,s,a,o,l){let u={name:r,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(u.children=l),u}n.create=e;function t(r){let i=r;return i&&p.string(i.name)&&p.number(i.kind)&&O.is(i.range)&&O.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}n.is=t})(fo||(fo={}));var ho;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(ho||(ho={}));var qr;(function(n){n.Invoked=1,n.Automatic=2})(qr||(qr={}));var po;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.typedArray(i.diagnostics,jr.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===qr.Invoked||i.triggerKind===qr.Automatic)}n.is=t})(po||(po={}));var mo;(function(n){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Vt.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,jr.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Vt.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||ms.is(i.edit))}n.is=t})(mo||(mo={}));var go;(function(n){function e(r,i){let s={range:r};return p.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.command)||Vt.is(i.command))}n.is=t})(go||(go={}));var yo;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}n.is=t})(yo||(yo={}));var To;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}n.is=t})(To||(To={}));var Ro;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(Ro||(Ro={}));var vo;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(vo||(vo={}));var Eo;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(Eo||(Eo={}));var Ao;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(Ao||(Ao={}));var ko;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&p.string(i.text)}n.is=t})(ko||(ko={}));var $o;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}n.is=t})($o||($o={}));var xo;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}n.is=t})(xo||(xo={}));var So;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){const i=r;return p.defined(i)&&O.is(r.stoppedLocation)}n.is=t})(So||(So={}));var Ts;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(Ts||(Ts={}));var Rs;(function(n){function e(r){return{value:r}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||Fn.is(i.tooltip))&&(i.location===void 0||Hr.is(i.location))&&(i.command===void 0||Vt.is(i.command))}n.is=t})(Rs||(Rs={}));var Io;(function(n){function e(r,i,s){const a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&P.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,Rs.is))&&(i.kind===void 0||Ts.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Kt.is)&&(i.tooltip===void 0||p.string(i.tooltip)||Fn.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}n.is=t})(Io||(Io={}));var Co;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(Co||(Co={}));var No;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(No||(No={}));var wo;(function(n){function e(t){return{items:t}}n.create=e})(wo||(wo={}));var Lo;(function(n){n.Invoked=0,n.Automatic=1})(Lo||(Lo={}));var _o;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(_o||(_o={}));var bo;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(bo||(bo={}));var Oo;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&os.is(r.uri)&&p.string(r.name)}n.is=e})(Oo||(Oo={}));var Po;(function(n){function e(s,a,o,l){return new yp(s,a,o,l)}n.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}n.is=t;function r(s,a){let o=s.getText(),l=i(a,(c,d)=>{let h=c.range.start.line-d.range.start.line;return h===0?c.range.start.character-d.range.start.character:h}),u=o.length;for(let c=l.length-1;c>=0;c--){let d=l[c],h=s.offsetAt(d.range.start),f=s.offsetAt(d.range.end);if(f<=u)o=o.substring(0,h)+d.newText+o.substring(f,o.length);else throw new Error("Overlapping edit");u=h}return o}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),u=s.slice(o);i(l,a),i(u,a);let c=0,d=0,h=0;for(;c<l.length&&d<u.length;)a(l[c],u[d])<=0?s[h++]=l[c++]:s[h++]=u[d++];for(;c<l.length;)s[h++]=l[c++];for(;d<u.length;)s[h++]=u[d++];return s}})(Po||(Po={}));let yp=class{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,r=!0;for(let i=0;i<t.length;i++){r&&(e.push(i),r=!1);let s=t.charAt(i);r=s==="\r"||s===`
114
+ For Further details.`,r}function np(n){if(n instanceof ie)return"SUBRULE";if(n instanceof Q)return"OPTION";if(n instanceof de)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ve)return"AT_LEAST_ONE_SEP";if(n instanceof ce)return"MANY_SEP";if(n instanceof K)return"MANY";if(n instanceof F)return"CONSUME";throw Error("non exhaustive match")}function rp(n,e,t){const r=ye(e.configs.elements,s=>s.state.transitions),i=$c(r.filter(s=>s instanceof Vs).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:n}}function ip(n,e){return n.edges[e.tokenTypeIdx]}function sp(n,e,t){const r=new ss,i=[];for(const a of n.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===jn){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l<o;l++){const u=a.state.transitions[l],c=ap(u,e);c!==void 0&&r.add({state:c,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new ss;for(const a of r.elements)Vr(a,s)}if(i.length>0&&!cp(s))for(const a of i)s.add(a);return s}function ap(n,e){if(n instanceof Vs&&Bl(e,n.tokenType))return n.target}function op(n,e){let t;for(const r of n.elements)if(e.is(r.alt)===!0){if(t===void 0)t=r.alt;else if(t!==r.alt)return}return t}function mu(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function _a(n,e,t,r){return r=gu(n,r),e.edges[t.tokenTypeIdx]=r,r}function gu(n,e){if(e===Br)return e;const t=e.configs.key,r=n.states[t];return r!==void 0?r:(e.configs.finalize(),n.states[t]=e,e)}function lp(n){const e=new ss,t=n.transitions.length;for(let r=0;r<t;r++){const s={state:n.transitions[r].target,alt:r,stack:[]};Vr(s,e)}return e}function Vr(n,e){const t=n.state;if(t.type===jn){if(n.stack.length>0){const i=[...n.stack],a={state:i.pop(),alt:n.alt,stack:i};Vr(a,e)}else e.add(n);return}t.epsilonOnlyTransitions||e.add(n);const r=t.transitions.length;for(let i=0;i<r;i++){const s=t.transitions[i],a=up(n,s);a!==void 0&&Vr(a,e)}}function up(n,e){if(e instanceof uu)return{state:e.target,alt:n.alt,stack:n.stack};if(e instanceof Ks){const t=[...n.stack,e.followState];return{state:e.target,alt:n.alt,stack:t}}}function cp(n){for(const e of n.elements)if(e.state.type===jn)return!0;return!1}function dp(n){for(const e of n.elements)if(e.state.type!==jn)return!1;return!0}function fp(n){if(dp(n))return!0;const e=hp(n.elements);return pp(e)&&!mp(e)}function hp(n){const e=new Map;for(const t of n){const r=hu(t,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[t.alt]=!0}return e}function pp(n){for(const e of Array.from(n.values()))if(Object.keys(e).length>1)return!0;return!1}function mp(n){for(const e of Array.from(n.values()))if(Object.keys(e).length===1)return!0;return!1}var ba;(function(n){function e(t){return typeof t=="string"}n.is=e})(ba||(ba={}));var as;(function(n){function e(t){return typeof t=="string"}n.is=e})(as||(as={}));var Oa;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Oa||(Oa={}));var Kr;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Kr||(Kr={}));var P;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Kr.MAX_VALUE),i===Number.MAX_VALUE&&(i=Kr.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}n.is=t})(P||(P={}));var O;(function(n){function e(r,i,s,a){if(p.uinteger(r)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:P.create(r,i),end:P.create(s,a)};if(P.is(r)&&P.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&P.is(i.start)&&P.is(i.end)}n.is=t})(O||(O={}));var Wr;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}n.is=t})(Wr||(Wr={}));var Pa;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.targetRange)&&p.string(i.targetUri)&&O.is(i.targetSelectionRange)&&(O.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}n.is=t})(Pa||(Pa={}));var os;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}n.is=t})(os||(os={}));var Ma;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&O.is(i.range)&&os.is(i.color)}n.is=t})(Ma||(Ma={}));var Da;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||Vt.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Vt.is))}n.is=t})(Da||(Da={}));var Fa;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Fa||(Fa={}));var Ga;(function(n){function e(r,i,s,a,o,l){const u={startLine:r,endLine:i};return p.defined(s)&&(u.startCharacter=s),p.defined(a)&&(u.endCharacter=a),p.defined(o)&&(u.kind=o),p.defined(l)&&(u.collapsedText=l),u}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}n.is=t})(Ga||(Ga={}));var ls;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&Wr.is(i.location)&&p.string(i.message)}n.is=t})(ls||(ls={}));var Ua;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(Ua||(Ua={}));var Ba;(function(n){n.Unnecessary=1,n.Deprecated=2})(Ba||(Ba={}));var Va;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&p.string(r.href)}n.is=e})(Va||(Va={}));var Hr;(function(n){function e(r,i,s,a,o,l){let u={range:r,message:i};return p.defined(s)&&(u.severity=s),p.defined(a)&&(u.code=a),p.defined(o)&&(u.source=o),p.defined(l)&&(u.relatedInformation=l),u}n.create=e;function t(r){var i;let s=r;return p.defined(s)&&O.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,ls.is))}n.is=t})(Hr||(Hr={}));var Bt;(function(n){function e(r,i,...s){let a={title:r,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}n.is=t})(Bt||(Bt={}));var Vt;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&O.is(a.range)}n.is=i})(Vt||(Vt={}));var us;(function(n){function e(r,i,s){const a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}n.is=t})(us||(us={}));var Kt;(function(n){function e(t){const r=t;return p.string(r)}n.is=e})(Kt||(Kt={}));var Ka;(function(n){function e(s,a,o){return{range:s,newText:a,annotationId:o}}n.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){const a=s;return Vt.is(a)&&(us.is(a.annotationId)||Kt.is(a.annotationId))}n.is=i})(Ka||(Ka={}));var cs;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&ms.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(cs||(cs={}));var ds;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Kt.is(i.annotationId))}n.is=t})(ds||(ds={}));var fs;(function(n){function e(r,i,s,a){let o={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}n.create=e;function t(r){let i=r;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Kt.is(i.annotationId))}n.is=t})(fs||(fs={}));var hs;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Kt.is(i.annotationId))}n.is=t})(hs||(hs={}));var ps;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>p.string(i.kind)?ds.is(i)||fs.is(i)||hs.is(i):cs.is(i)))}n.is=e})(ps||(ps={}));var Wa;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)}n.is=t})(Wa||(Wa={}));var Ha;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}n.is=t})(Ha||(Ha={}));var ms;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}n.is=t})(ms||(ms={}));var ja;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}n.is=t})(ja||(ja={}));var gs;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){const r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(gs||(gs={}));var Dn;(function(n){function e(t){const r=t;return p.objectLiteral(t)&&gs.is(r.kind)&&p.string(r.value)}n.is=e})(Dn||(Dn={}));var za;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(za||(za={}));var qa;(function(n){n.PlainText=1,n.Snippet=2})(qa||(qa={}));var Ya;(function(n){n.Deprecated=1})(Ya||(Ya={}));var Xa;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){const i=r;return i&&p.string(i.newText)&&O.is(i.insert)&&O.is(i.replace)}n.is=t})(Xa||(Xa={}));var Ja;(function(n){n.asIs=1,n.adjustIndentation=2})(Ja||(Ja={}));var Qa;(function(n){function e(t){const r=t;return r&&(p.string(r.detail)||r.detail===void 0)&&(p.string(r.description)||r.description===void 0)}n.is=e})(Qa||(Qa={}));var Za;(function(n){function e(t){return{label:t}}n.create=e})(Za||(Za={}));var eo;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(eo||(eo={}));var jr;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){const i=r;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}n.is=t})(jr||(jr={}));var to;(function(n){function e(t){let r=t;return!!r&&p.objectLiteral(r)&&(Dn.is(r.contents)||jr.is(r.contents)||p.typedArray(r.contents,jr.is))&&(t.range===void 0||O.is(t.range))}n.is=e})(to||(to={}));var no;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(no||(no={}));var ro;(function(n){function e(t,r,...i){let s={label:t};return p.defined(r)&&(s.documentation=r),p.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(ro||(ro={}));var io;(function(n){n.Text=1,n.Read=2,n.Write=3})(io||(io={}));var so;(function(n){function e(t,r){let i={range:t};return p.number(r)&&(i.kind=r),i}n.create=e})(so||(so={}));var ao;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(ao||(ao={}));var oo;(function(n){n.Deprecated=1})(oo||(oo={}));var lo;(function(n){function e(t,r,i,s,a){let o={name:t,kind:r,location:{uri:s,range:i}};return a&&(o.containerName=a),o}n.create=e})(lo||(lo={}));var uo;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(uo||(uo={}));var co;(function(n){function e(r,i,s,a,o,l){let u={name:r,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(u.children=l),u}n.create=e;function t(r){let i=r;return i&&p.string(i.name)&&p.number(i.kind)&&O.is(i.range)&&O.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}n.is=t})(co||(co={}));var fo;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(fo||(fo={}));var zr;(function(n){n.Invoked=1,n.Automatic=2})(zr||(zr={}));var ho;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.typedArray(i.diagnostics,Hr.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===zr.Invoked||i.triggerKind===zr.Automatic)}n.is=t})(ho||(ho={}));var po;(function(n){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Bt.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,Hr.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Bt.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||ps.is(i.edit))}n.is=t})(po||(po={}));var mo;(function(n){function e(r,i){let s={range:r};return p.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.command)||Bt.is(i.command))}n.is=t})(mo||(mo={}));var go;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}n.is=t})(go||(go={}));var yo;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}n.is=t})(yo||(yo={}));var To;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(To||(To={}));var Ro;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(Ro||(Ro={}));var vo;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(vo||(vo={}));var Eo;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(Eo||(Eo={}));var Ao;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&p.string(i.text)}n.is=t})(Ao||(Ao={}));var ko;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}n.is=t})(ko||(ko={}));var $o;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}n.is=t})($o||($o={}));var xo;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){const i=r;return p.defined(i)&&O.is(r.stoppedLocation)}n.is=t})(xo||(xo={}));var ys;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(ys||(ys={}));var Ts;(function(n){function e(r){return{value:r}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||Dn.is(i.tooltip))&&(i.location===void 0||Wr.is(i.location))&&(i.command===void 0||Bt.is(i.command))}n.is=t})(Ts||(Ts={}));var So;(function(n){function e(r,i,s){const a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&P.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,Ts.is))&&(i.kind===void 0||ys.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Vt.is)&&(i.tooltip===void 0||p.string(i.tooltip)||Dn.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}n.is=t})(So||(So={}));var Io;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(Io||(Io={}));var Co;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(Co||(Co={}));var No;(function(n){function e(t){return{items:t}}n.create=e})(No||(No={}));var wo;(function(n){n.Invoked=0,n.Automatic=1})(wo||(wo={}));var Lo;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(Lo||(Lo={}));var _o;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(_o||(_o={}));var bo;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&as.is(r.uri)&&p.string(r.name)}n.is=e})(bo||(bo={}));var Oo;(function(n){function e(s,a,o,l){return new gp(s,a,o,l)}n.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}n.is=t;function r(s,a){let o=s.getText(),l=i(a,(c,d)=>{let h=c.range.start.line-d.range.start.line;return h===0?c.range.start.character-d.range.start.character:h}),u=o.length;for(let c=l.length-1;c>=0;c--){let d=l[c],h=s.offsetAt(d.range.start),f=s.offsetAt(d.range.end);if(f<=u)o=o.substring(0,h)+d.newText+o.substring(f,o.length);else throw new Error("Overlapping edit");u=h}return o}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),u=s.slice(o);i(l,a),i(u,a);let c=0,d=0,h=0;for(;c<l.length&&d<u.length;)a(l[c],u[d])<=0?s[h++]=l[c++]:s[h++]=u[d++];for(;c<l.length;)s[h++]=l[c++];for(;d<u.length;)s[h++]=u[d++];return s}})(Oo||(Oo={}));let gp=class{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,r=!0;for(let i=0;i<t.length;i++){r&&(e.push(i),r=!1);let s=t.charAt(i);r=s==="\r"||s===`
115
115
  `,s==="\r"&&i+1<t.length&&t.charAt(i+1)===`
116
- `&&i++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return P.create(0,e);for(;r<i;){let a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}let s=r-1;return P.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var p;(function(n){const e=Object.prototype.toString;function t(f){return typeof f<"u"}n.defined=t;function r(f){return typeof f>"u"}n.undefined=r;function i(f){return f===!0||f===!1}n.boolean=i;function s(f){return e.call(f)==="[object String]"}n.string=s;function a(f){return e.call(f)==="[object Number]"}n.number=a;function o(f,y,T){return e.call(f)==="[object Number]"&&y<=f&&f<=T}n.numberRange=o;function l(f){return e.call(f)==="[object Number]"&&-2147483648<=f&&f<=2147483647}n.integer=l;function u(f){return e.call(f)==="[object Number]"&&0<=f&&f<=2147483647}n.uinteger=u;function c(f){return e.call(f)==="[object Function]"}n.func=c;function d(f){return f!==null&&typeof f=="object"}n.objectLiteral=d;function h(f,y){return Array.isArray(f)&&f.every(y)}n.typedArray=h})(p||(p={}));class Tp{constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new Ru(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new zs;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new vs(e.startOffset,e.image.length,zi(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const t=e.container;if(t){const r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){const t=[];for(const s of e){const a=new vs(s.startOffset,s.image.length,zi(s),s.tokenType,!0);a.root=this.rootNode,t.push(a)}let r=this.current,i=!1;if(r.content.length>0){r.content.push(...t);return}for(;r.container;){const s=r.container.content.indexOf(r);if(s>0){r.container.content.splice(s,0,...t),i=!0;break}r=r.container}i||this.rootNode.content.unshift(...t)}construct(e){const t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;const r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}}class Tu{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const r=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class vs extends Tu{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=r}}class zs extends Tu{constructor(){super(...arguments),this.content=new qs(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=t;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}else return{start:P.create(0,0),end:P.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class qs extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,qs.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(const t of e)t.container=this.parent}}class Ru extends zs{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Es=Symbol("Datatype");function wi(n){return n.$type===Es}const Mo="​",vu=n=>n.endsWith(Mo)?n:n+Mo;class Eu{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,r=e.LanguageMetaData.mode==="production";this.wrapper=new kp(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class Rp extends Eu{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Tp,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(vu(e.name),this.startImplementation(r,t).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(Sl(e))return Es;{const t=bs(e);return t??e.name}}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;const i=t.rule?this.allRules.get(t.rule):this.mainRule;if(!i)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===Es&&(a.value="")}let s;try{s=t(r)}catch{s=void 0}return s===void 0&&i&&(s=this.construct()),s}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const r=e.startOffset;for(let i=0;i<t.length;i++)if(t[i].startOffset>r)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,r){const i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){const s=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(s);const a=this.nodeBuilder.buildLeafNode(i,r),{assignment:o,isCrossRef:l}=this.getAssignment(r),u=this.current;if(o){const c=ut(r)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,c,a,l)}else if(wi(u)){let c=i.image;ut(r)||(c=this.converter.convert(c,a).toString()),u.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,r,i,s){let a;!this.isRecording()&&!r&&(a=this.nodeBuilder.buildCompositeNode(i));const o=this.wrapper.wrapSubrule(e,t,s);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,i,a)}performSubruleAssignment(e,t,r){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const a=this.current;if(wi(a))a.value+=e.toString();else if(typeof e=="object"&&e){const l=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(l)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(t.feature&&t.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode);const s={$type:e};this.stack.push(s),this.assign(t.operator,t.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Qc(e),this.nodeBuilder.construct(e),this.stack.pop(),wi(e)?this.converter.convert(e.value,e.$cstNode):(Zc(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=ri(e,lt);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Ns(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,r,i,s){const a=this.current;let o;switch(s&&typeof r=="string"?o=this.linker.buildReference(a,t,i,r):o=r,e){case"=":{a[t]=o;break}case"?=":{a[t]=!0;break}case"+=":Array.isArray(a[t])||(a[t]=[]),a[t].push(o)}}assignWithoutOverride(e,t){for(const[i,s]of Object.entries(t)){const a=e[i];a===void 0?e[i]=s:Array.isArray(a)&&Array.isArray(s)&&(s.push(...a),e[i]=s)}const r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class vp{buildMismatchTokenMessage(e){return Et.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Et.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Et.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Et.buildEarlyExitMessage(e)}}class Au extends vp{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 Ep extends Eu{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const r=this.wrapper.DEFINE_RULE(vu(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,i,s){this.before(i),this.wrapper.wrapSubrule(e,t,s),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const Ap={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Au};class kp extends wh{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Ap),{lookaheadStrategy:r?new Bs({maxLookahead:t.maxLookahead}):new Jh({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function ku(n,e,t){return $p({parser:e,tokens:t,ruleNames:new Map},n),e}function $p(n,e){const t=El(e,!1),r=J(e.rules).filter(ke).filter(i=>t.has(i));for(const i of r){const s=Object.assign(Object.assign({},n),{consume:1,optional:1,subrule:1,many:1,or:1});n.parser.rule(i,ft(s,i.definition))}}function ft(n,e,t=!1){let r;if(ut(e))r=Lp(n,e);else if(ni(e))r=xp(n,e);else if(lt(e))r=ft(n,e.terminal);else if(Ns(e))r=$u(n,e);else if(ct(e))r=Sp(n,e);else if(ml(e))r=Cp(n,e);else if(gl(e))r=Np(n,e);else if(ws(e))r=wp(n,e);else if(Wc(e)){const i=n.consume++;r=()=>n.parser.consume(i,qe,e)}else throw new dl(e.$cstNode,`Unexpected element type: ${e.$type}`);return xu(n,t?void 0:Yr(e),r,e.cardinality)}function xp(n,e){const t=Os(e);return()=>n.parser.action(t,e)}function Sp(n,e){const t=e.rule.ref;if(ke(t)){const r=n.subrule++,i=t.fragment,s=e.arguments.length>0?Ip(t,e.arguments):()=>({});return a=>n.parser.subrule(r,Su(n,t),i,e,s(a))}else if(pt(t)){const r=n.consume++,i=As(n,t.name);return()=>n.parser.consume(r,i,e)}else if(t)Bn();else throw new dl(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function Ip(n,e){const t=e.map(r=>Be(r.value));return r=>{const i={};for(let s=0;s<t.length;s++){const a=n.parameters[s],o=t[s];i[a.name]=o(r)}return i}}function Be(n){if(Fc(n)){const e=Be(n.left),t=Be(n.right);return r=>e(r)||t(r)}else if(Dc(n)){const e=Be(n.left),t=Be(n.right);return r=>e(r)&&t(r)}else if(Gc(n)){const e=Be(n.value);return t=>!e(t)}else if(Uc(n)){const e=n.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Mc(n)){const e=!!n.true;return()=>e}Bn()}function Cp(n,e){if(e.elements.length===1)return ft(n,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:ft(n,i,!0)},a=Yr(i);a&&(s.GATE=Be(a)),t.push(s)}const r=n.or++;return i=>n.parser.alternatives(r,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function Np(n,e){if(e.elements.length===1)return ft(n,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:ft(n,o,!0)},u=Yr(o);u&&(l.GATE=Be(u)),t.push(l)}const r=n.or++,i=(o,l)=>{const u=l.getRuleStack().join("-");return`uGroup_${o}_${u}`},s=o=>n.parser.alternatives(r,t.map((l,u)=>{const c={ALT:()=>!0},d=n.parser;c.ALT=()=>{if(l.ALT(o),!d.isRecording()){const f=i(r,d);d.unorderedGroups.get(f)||d.unorderedGroups.set(f,[]);const y=d.unorderedGroups.get(f);typeof y?.[u]>"u"&&(y[u]=!0)}};const h=l.GATE;return h?c.GATE=()=>h(o):c.GATE=()=>{const f=d.unorderedGroups.get(i(r,d));return!f?.[u]},c})),a=xu(n,Yr(e),s,"*");return o=>{a(o),n.parser.isRecording()||n.parser.unorderedGroups.delete(i(r,n.parser))}}function wp(n,e){const t=e.elements.map(r=>ft(n,r));return r=>t.forEach(i=>i(r))}function Yr(n){if(ws(n))return n.guardCondition}function $u(n,e,t=e.terminal){if(t)if(ct(t)&&ke(t.rule.ref)){const r=t.rule.ref,i=n.subrule++;return s=>n.parser.subrule(i,Su(n,r),!1,e,s)}else if(ct(t)&&pt(t.rule.ref)){const r=n.consume++,i=As(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}else if(ut(t)){const r=n.consume++,i=As(n,t.value);return()=>n.parser.consume(r,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=$l(e.type.ref),i=r?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Os(e.type.ref));return $u(n,e,i)}}function Lp(n,e){const t=n.consume++,r=n.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>n.parser.consume(t,r,e)}function xu(n,e,t,r){const i=e&&Be(e);if(!r)if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:wa(),GATE:()=>!i(a)}])}else return t;if(r==="*"){const s=n.many++;return a=>n.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(r==="+"){const s=n.many++;if(i){const a=n.or++;return o=>n.parser.alternatives(a,[{ALT:()=>n.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:wa(),GATE:()=>!i(o)}])}else return a=>n.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(r==="?"){const s=n.optional++;return a=>n.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else Bn()}function Su(n,e){const t=_p(n,e),r=n.parser.getRule(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function _p(n,e){if(ke(e))return e.name;if(n.ruleNames.has(e))return n.ruleNames.get(e);{let t=e,r=t.$container,i=e.$type;for(;!ke(r);)(ws(r)||ml(r)||gl(r))&&(i=r.elements.indexOf(t).toString()+":"+i),t=r,r=r.$container;return i=r.name+":"+i,n.ruleNames.set(e,i),i}}function As(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function bp(n){const e=n.Grammar,t=n.parser.Lexer,r=new Ep(n);return ku(e,r,t.definition),r.finalize(),r}function Op(n){const e=Pp(n);return e.finalize(),e}function Pp(n){const e=n.Grammar,t=n.parser.Lexer,r=new Rp(n);return ku(e,r,t.definition)}class Iu{constructor(){this.diagnostics=[]}buildTokens(e,t){const r=J(El(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&Yi(o)?s.unshift(a):s.push(a)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(pt).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Ps(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=Yi(t)?oe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(r,i)=>(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(ke).flatMap(i=>Vn(i).filter(ut)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!r?.caseInsensitive))}buildKeywordToken(e,t,r){const i=this.buildKeywordPattern(e,r),s={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,t)};return typeof i=="function"&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(e,t){return t?new RegExp(ld(e.value)):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{const s=i?.PATTERN;return s?.source&&ud("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class Cu{convert(e,t){let r=t.grammarSource;if(Ns(r)&&(r=hd(r)),ct(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,r){var i;switch(e.name.toUpperCase()){case"INT":return Fe.convertInt(t);case"STRING":return Fe.convertString(t);case"ID":return Fe.convertID(t)}switch((i=vd(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Fe.convertNumber(t);case"boolean":return Fe.convertBoolean(t);case"bigint":return Fe.convertBigint(t);case"date":return Fe.convertDate(t);default:return t}}}var Fe;(function(n){function e(u){let c="";for(let d=1;d<u.length-1;d++){const h=u.charAt(d);if(h==="\\"){const f=u.charAt(++d);c+=t(f)}else c+=h}return c}n.convertString=e;function t(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
117
- `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function r(u){return u.charAt(0)==="^"?u.substring(1):u}n.convertID=r;function i(u){return parseInt(u)}n.convertInt=i;function s(u){return BigInt(u)}n.convertBigint=s;function a(u){return new Date(u)}n.convertDate=a;function o(u){return Number(u)}n.convertNumber=o;function l(u){return u.toLowerCase()==="true"}n.convertBoolean=l})(Fe||(Fe={}));var st={},lr={},Do;function Nu(){if(Do)return lr;Do=1,Object.defineProperty(lr,"__esModule",{value:!0});let n;function e(){if(n===void 0)throw new Error("No runtime abstraction layer installed");return n}return(function(t){function r(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");n=i}t.install=r})(e||(e={})),lr.default=e,lr}var q={},Fo;function Mp(){if(Fo)return q;Fo=1,Object.defineProperty(q,"__esModule",{value:!0}),q.stringArray=q.array=q.func=q.error=q.number=q.string=q.boolean=void 0;function n(o){return o===!0||o===!1}q.boolean=n;function e(o){return typeof o=="string"||o instanceof String}q.string=e;function t(o){return typeof o=="number"||o instanceof Number}q.number=t;function r(o){return o instanceof Error}q.error=r;function i(o){return typeof o=="function"}q.func=i;function s(o){return Array.isArray(o)}q.array=s;function a(o){return s(o)&&o.every(l=>e(l))}return q.stringArray=a,q}var at={},Go;function wu(){if(Go)return at;Go=1,Object.defineProperty(at,"__esModule",{value:!0}),at.Emitter=at.Event=void 0;const n=Nu();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(at.Event=e={}));class t{add(s,a=null,o){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(o)&&o.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let o=!1;for(let l=0,u=this._callbacks.length;l<u;l++)if(this._callbacks[l]===s)if(this._contexts[l]===a){this._callbacks.splice(l,1),this._contexts.splice(l,1);return}else o=!0;if(o)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],o=this._callbacks.slice(0),l=this._contexts.slice(0);for(let u=0,c=o.length;u<c;u++)try{a.push(o[u].apply(l[u],s))}catch(d){(0,n.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,o)=>{this._callbacks||(this._callbacks=new t),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const l={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),l.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(o)&&o.push(l),l}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return at.Emitter=r,r._noop=function(){},at}var Uo;function Dp(){if(Uo)return st;Uo=1,Object.defineProperty(st,"__esModule",{value:!0}),st.CancellationTokenSource=st.CancellationToken=void 0;const n=Nu(),e=Mp(),t=wu();var r;(function(o){o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:t.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:t.Event.None});function l(u){const c=u;return c&&(c===o.None||c===o.Cancelled||e.boolean(c.isCancellationRequested)&&!!c.onCancellationRequested)}o.is=l})(r||(st.CancellationToken=r={}));const i=Object.freeze(function(o,l){const u=(0,n.default)().timer.setTimeout(o.bind(l),0);return{dispose(){u.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?i:(this._emitter||(this._emitter=new t.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=r.None}}return st.CancellationTokenSource=a,st}var B=Dp();function Fp(){return new Promise(n=>{typeof setImmediate>"u"?setTimeout(n,0):setImmediate(n)})}let kr=0,Gp=10;function Up(){return kr=performance.now(),new B.CancellationTokenSource}const Xr=Symbol("OperationCancelled");function hi(n){return n===Xr}async function ge(n){if(n===B.CancellationToken.None)return;const e=performance.now();if(e-kr>=Gp&&(kr=e,await Fp(),kr=performance.now()),n.isCancellationRequested)throw Xr}class Ys{constructor(){this.promise=new Promise((e,t)=>{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}}class Gn{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(const r of e)if(Gn.isIncremental(r)){const i=_u(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let u=this._lineOffsets;const c=Bo(r.text,!1,s);if(l-o===c.length)for(let h=0,f=c.length;h<f;h++)u[h+o+1]=c[h];else c.length<1e4?u.splice(o+1,l-o,...c):this._lineOffsets=u=u.slice(0,o+1).concat(c,u.slice(l+1));const d=r.text.length-(a-s);if(d!==0)for(let h=o+1+c.length,f=u.length;h<f;h++)u[h]=u[h]+d}else if(Gn.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Bo(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let r=0,i=t.length;if(i===0)return{line:0,character:e};for(;r<i;){const a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}const s=r-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const r=t[e.line];if(e.character<=0)return r;const i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(r+e.character,i);return this.ensureBeforeEOL(s,r)}ensureBeforeEOL(e,t){for(;e>t&&Lu(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}}var ks;(function(n){function e(i,s,a,o){return new Gn(i,s,a,o)}n.create=e;function t(i,s,a){if(i instanceof Gn)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}n.update=t;function r(i,s){const a=i.getText(),o=$s(s.map(Bp),(c,d)=>{const h=c.range.start.line-d.range.start.line;return h===0?c.range.start.character-d.range.start.character:h});let l=0;const u=[];for(const c of o){const d=i.offsetAt(c.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&u.push(a.substring(l,d)),c.newText.length&&u.push(c.newText),l=i.offsetAt(c.range.end)}return u.push(a.substr(l)),u.join("")}n.applyEdits=r})(ks||(ks={}));function $s(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);$s(r,e),$s(i,e);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)e(r[s],i[a])<=0?n[o++]=r[s++]:n[o++]=i[a++];for(;s<r.length;)n[o++]=r[s++];for(;a<i.length;)n[o++]=i[a++];return n}function Bo(n,e,t=0){const r=e?[t]:[];for(let i=0;i<n.length;i++){const s=n.charCodeAt(i);Lu(s)&&(s===13&&i+1<n.length&&n.charCodeAt(i+1)===10&&i++,r.push(t+i+1))}return r}function Lu(n){return n===13||n===10}function _u(n){const e=n.start,t=n.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function Bp(n){const e=_u(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var bu;(()=>{var n={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,u){for(var c,d="",h=0,f=-1,y=0,T=0;T<=l.length;++T){if(T<l.length)c=l.charCodeAt(T);else{if(c===47)break;c=47}if(c===47){if(!(f===T-1||y===1))if(f!==T-1&&y===2){if(d.length<2||h!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var k=d.lastIndexOf("/");if(k!==d.length-1){k===-1?(d="",h=0):h=(d=d.slice(0,k)).length-1-d.lastIndexOf("/"),f=T,y=0;continue}}else if(d.length===2||d.length===1){d="",h=0,f=T,y=0;continue}}u&&(d.length>0?d+="/..":d="..",h=2)}else d.length>0?d+="/"+l.slice(f+1,T):d=l.slice(f+1,T),h=T-f-1;f=T,y=0}else c===46&&y!==-1?++y:y=-1}return d}var o={resolve:function(){for(var l,u="",c=!1,d=arguments.length-1;d>=-1&&!c;d--){var h;d>=0?h=arguments[d]:(l===void 0&&(l=process.cwd()),h=l),s(h),h.length!==0&&(u=h+"/"+u,c=h.charCodeAt(0)===47)}return u=a(u,!c),c?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(l){if(s(l),l.length===0)return".";var u=l.charCodeAt(0)===47,c=l.charCodeAt(l.length-1)===47;return(l=a(l,!u)).length!==0||u||(l="."),l.length>0&&c&&(l+="/"),u?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,u=0;u<arguments.length;++u){var c=arguments[u];s(c),c.length>0&&(l===void 0?l=c:l+="/"+c)}return l===void 0?".":o.normalize(l)},relative:function(l,u){if(s(l),s(u),l===u||(l=o.resolve(l))===(u=o.resolve(u)))return"";for(var c=1;c<l.length&&l.charCodeAt(c)===47;++c);for(var d=l.length,h=d-c,f=1;f<u.length&&u.charCodeAt(f)===47;++f);for(var y=u.length-f,T=h<y?h:y,k=-1,v=0;v<=T;++v){if(v===T){if(y>T){if(u.charCodeAt(f+v)===47)return u.slice(f+v+1);if(v===0)return u.slice(f+v)}else h>T&&(l.charCodeAt(c+v)===47?k=v:v===0&&(k=0));break}var x=l.charCodeAt(c+v);if(x!==u.charCodeAt(f+v))break;x===47&&(k=v)}var E="";for(v=c+k+1;v<=d;++v)v!==d&&l.charCodeAt(v)!==47||(E.length===0?E+="..":E+="/..");return E.length>0?E+u.slice(f+k):(f+=k,u.charCodeAt(f)===47&&++f,u.slice(f))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var u=l.charCodeAt(0),c=u===47,d=-1,h=!0,f=l.length-1;f>=1;--f)if((u=l.charCodeAt(f))===47){if(!h){d=f;break}}else h=!1;return d===-1?c?"/":".":c&&d===1?"//":l.slice(0,d)},basename:function(l,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(l);var c,d=0,h=-1,f=!0;if(u!==void 0&&u.length>0&&u.length<=l.length){if(u.length===l.length&&u===l)return"";var y=u.length-1,T=-1;for(c=l.length-1;c>=0;--c){var k=l.charCodeAt(c);if(k===47){if(!f){d=c+1;break}}else T===-1&&(f=!1,T=c+1),y>=0&&(k===u.charCodeAt(y)?--y==-1&&(h=c):(y=-1,h=T))}return d===h?h=T:h===-1&&(h=l.length),l.slice(d,h)}for(c=l.length-1;c>=0;--c)if(l.charCodeAt(c)===47){if(!f){d=c+1;break}}else h===-1&&(f=!1,h=c+1);return h===-1?"":l.slice(d,h)},extname:function(l){s(l);for(var u=-1,c=0,d=-1,h=!0,f=0,y=l.length-1;y>=0;--y){var T=l.charCodeAt(y);if(T!==47)d===-1&&(h=!1,d=y+1),T===46?u===-1?u=y:f!==1&&(f=1):u!==-1&&(f=-1);else if(!h){c=y+1;break}}return u===-1||d===-1||f===0||f===1&&u===d-1&&u===c+1?"":l.slice(u,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return(function(u,c){var d=c.dir||c.root,h=c.base||(c.name||"")+(c.ext||"");return d?d===c.root?d+h:d+"/"+h:h})(0,l)},parse:function(l){s(l);var u={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return u;var c,d=l.charCodeAt(0),h=d===47;h?(u.root="/",c=1):c=0;for(var f=-1,y=0,T=-1,k=!0,v=l.length-1,x=0;v>=c;--v)if((d=l.charCodeAt(v))!==47)T===-1&&(k=!1,T=v+1),d===46?f===-1?f=v:x!==1&&(x=1):f!==-1&&(x=-1);else if(!k){y=v+1;break}return f===-1||T===-1||x===0||x===1&&f===T-1&&f===y+1?T!==-1&&(u.base=u.name=y===0&&h?l.slice(1,T):l.slice(y,T)):(y===0&&h?(u.name=l.slice(1,f),u.base=l.slice(1,T)):(u.name=l.slice(y,f),u.base=l.slice(y,T)),u.ext=l.slice(f,T)),y>0?u.dir=l.slice(0,y-1):h&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return n[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>h,Utils:()=>Ee}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(S,R){if(!S.scheme&&R)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${S.authority}", path: "${S.path}", query: "${S.query}", fragment: "${S.fragment}"}`);if(S.scheme&&!s.test(S.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(S.path){if(S.authority){if(!a.test(S.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(S.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",c="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{static isUri(R){return R instanceof h||!!R&&typeof R.authority=="string"&&typeof R.fragment=="string"&&typeof R.path=="string"&&typeof R.query=="string"&&typeof R.scheme=="string"&&typeof R.fsPath=="string"&&typeof R.with=="function"&&typeof R.toString=="function"}scheme;authority;path;query;fragment;constructor(R,C,I,b,_,L=!1){typeof R=="object"?(this.scheme=R.scheme||u,this.authority=R.authority||u,this.path=R.path||u,this.query=R.query||u,this.fragment=R.fragment||u):(this.scheme=(function(he,j){return he||j?he:"file"})(R,L),this.authority=C||u,this.path=(function(he,j){switch(he){case"https":case"http":case"file":j?j[0]!==c&&(j=c+j):j=c}return j})(this.scheme,I||u),this.query=b||u,this.fragment=_||u,l(this,L))}get fsPath(){return x(this)}with(R){if(!R)return this;let{scheme:C,authority:I,path:b,query:_,fragment:L}=R;return C===void 0?C=this.scheme:C===null&&(C=u),I===void 0?I=this.authority:I===null&&(I=u),b===void 0?b=this.path:b===null&&(b=u),_===void 0?_=this.query:_===null&&(_=u),L===void 0?L=this.fragment:L===null&&(L=u),C===this.scheme&&I===this.authority&&b===this.path&&_===this.query&&L===this.fragment?this:new y(C,I,b,_,L)}static parse(R,C=!1){const I=d.exec(R);return I?new y(I[2]||u,ee(I[4]||u),ee(I[5]||u),ee(I[7]||u),ee(I[9]||u),C):new y(u,u,u,u,u)}static file(R){let C=u;if(i&&(R=R.replace(/\\/g,c)),R[0]===c&&R[1]===c){const I=R.indexOf(c,2);I===-1?(C=R.substring(2),R=c):(C=R.substring(2,I),R=R.substring(I)||c)}return new y("file",C,R,u,u)}static from(R){const C=new y(R.scheme,R.authority,R.path,R.query,R.fragment);return l(C,!0),C}toString(R=!1){return E(this,R)}toJSON(){return this}static revive(R){if(R){if(R instanceof h)return R;{const C=new y(R);return C._formatted=R.external,C._fsPath=R._sep===f?R.fsPath:null,C}}return R}}const f=i?1:void 0;class y extends h{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=x(this)),this._fsPath}toString(R=!1){return R?E(this,!0):(this._formatted||(this._formatted=E(this,!1)),this._formatted)}toJSON(){const R={$mid:1};return this._fsPath&&(R.fsPath=this._fsPath,R._sep=f),this._formatted&&(R.external=this._formatted),this.path&&(R.path=this.path),this.scheme&&(R.scheme=this.scheme),this.authority&&(R.authority=this.authority),this.query&&(R.query=this.query),this.fragment&&(R.fragment=this.fragment),R}}const T={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function k(S,R,C){let I,b=-1;for(let _=0;_<S.length;_++){const L=S.charCodeAt(_);if(L>=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||R&&L===47||C&&L===91||C&&L===93||C&&L===58)b!==-1&&(I+=encodeURIComponent(S.substring(b,_)),b=-1),I!==void 0&&(I+=S.charAt(_));else{I===void 0&&(I=S.substr(0,_));const he=T[L];he!==void 0?(b!==-1&&(I+=encodeURIComponent(S.substring(b,_)),b=-1),I+=he):b===-1&&(b=_)}}return b!==-1&&(I+=encodeURIComponent(S.substring(b))),I!==void 0?I:S}function v(S){let R;for(let C=0;C<S.length;C++){const I=S.charCodeAt(C);I===35||I===63?(R===void 0&&(R=S.substr(0,C)),R+=T[I]):R!==void 0&&(R+=S[C])}return R!==void 0?R:S}function x(S,R){let C;return C=S.authority&&S.path.length>1&&S.scheme==="file"?`//${S.authority}${S.path}`:S.path.charCodeAt(0)===47&&(S.path.charCodeAt(1)>=65&&S.path.charCodeAt(1)<=90||S.path.charCodeAt(1)>=97&&S.path.charCodeAt(1)<=122)&&S.path.charCodeAt(2)===58?S.path[1].toLowerCase()+S.path.substr(2):S.path,i&&(C=C.replace(/\//g,"\\")),C}function E(S,R){const C=R?v:k;let I="",{scheme:b,authority:_,path:L,query:he,fragment:j}=S;if(b&&(I+=b,I+=":"),(_||b==="file")&&(I+=c,I+=c),_){let V=_.indexOf("@");if(V!==-1){const rt=_.substr(0,V);_=_.substr(V+1),V=rt.lastIndexOf(":"),V===-1?I+=C(rt,!1,!1):(I+=C(rt.substr(0,V),!1,!1),I+=":",I+=C(rt.substr(V+1),!1,!0)),I+="@"}_=_.toLowerCase(),V=_.lastIndexOf(":"),V===-1?I+=C(_,!1,!0):(I+=C(_.substr(0,V),!1,!0),I+=_.substr(V))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){const V=L.charCodeAt(1);V>=65&&V<=90&&(L=`/${String.fromCharCode(V+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){const V=L.charCodeAt(0);V>=65&&V<=90&&(L=`${String.fromCharCode(V+32)}:${L.substr(2)}`)}I+=C(L,!0,!1)}return he&&(I+="?",I+=C(he,!1,!1)),j&&(I+="#",I+=R?j:k(j,!1,!1)),I}function N(S){try{return decodeURIComponent(S)}catch{return S.length>3?S.substr(0,3)+N(S.substr(3)):S}}const D=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ee(S){return S.match(D)?S.replace(D,(R=>N(R))):S}var $e=t(470);const fe=$e.posix||$e,_e="/";var Ee;(function(S){S.joinPath=function(R,...C){return R.with({path:fe.join(R.path,...C)})},S.resolvePath=function(R,...C){let I=R.path,b=!1;I[0]!==_e&&(I=_e+I,b=!0);let _=fe.resolve(I,...C);return b&&_[0]===_e&&!R.authority&&(_=_.substring(1)),R.with({path:_})},S.dirname=function(R){if(R.path.length===0||R.path===_e)return R;let C=fe.dirname(R.path);return C.length===1&&C.charCodeAt(0)===46&&(C=""),R.with({path:C})},S.basename=function(R){return fe.basename(R.path)},S.extname=function(R){return fe.extname(R.path)}})(Ee||(Ee={}))})(),bu=r})();const{URI:ht,Utils:Jt}=bu;var Xe;(function(n){n.basename=Jt.basename,n.dirname=Jt.dirname,n.extname=Jt.extname,n.joinPath=Jt.joinPath,n.resolvePath=Jt.resolvePath;function e(i,s){return i?.toString()===s?.toString()}n.equals=e;function t(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(f=>f.length>0),u=o.split("/").filter(f=>f.length>0);let c=0;for(;c<l.length&&l[c]===u[c];c++);const d="../".repeat(l.length-c),h=u.slice(c).join("/");return d+h}n.relative=t;function r(i){return ht.parse(i.toString()).toString()}n.normalize=r})(Xe||(Xe={}));var G;(function(n){n[n.Changed=0]="Changed",n[n.Parsed=1]="Parsed",n[n.IndexedContent=2]="IndexedContent",n[n.ComputedScopes=3]="ComputedScopes",n[n.Linked=4]="Linked",n[n.IndexedReferences=5]="IndexedReferences",n[n.Validated=6]="Validated"})(G||(G={}));class Vp{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=B.CancellationToken.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??ht.parse(e.uri),B.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return B.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if(typeof t=="string"){const i=this.parse(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else if("$model"in t){const i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}async createAsync(e,t,r){if(typeof t=="string"){const i=await this.parseAsync(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else{const i=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,r,i){let s;if(r)s={parseResult:e,uri:t,state:G.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:G.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{const l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=G.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){const r=this.serviceRegistry;let i;return()=>i??(i=ks.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Kp{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return J(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=G.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=G.Changed,this.documentMap.delete(t)),r}}const Li=Symbol("ref_resolving");class Wp{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=B.CancellationToken.None){for(const r of At(e.parseResult.value))await ge(t),Tl(r).forEach(i=>this.doLink(i,e))}doLink(e,t){var r;const i=e.reference;if(i._ref===void 0){i._ref=Li;try{const s=this.getCandidate(e);if(gr(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}t.references.push(i)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,t,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o;if(ne(this._ref))return this._ref;if(Sc(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=Li;const l=qi(e).$document,u=s.getLinkedNode({reference:a,container:e,property:t});if(u.error&&l&&l.state<G.ComputedScopes)return this._ref=void 0;this._ref=(o=u.node)!==null&&o!==void 0?o:u.error,this._nodeDescription=u.descr,l?.references.push(this)}else if(this._ref===Li)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${i}')`);return ne(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return gr(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{const r=this.getCandidate(e);if(gr(r))return{error:r};const i=this.loadAstNode(r);return i?{node:i,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);const i=(t=r.message)!==null&&t!==void 0?t:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const r=qi(e.container).$document;r&&r.state<G.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:t})}}function Hp(n){return typeof n.name=="string"}class jp{getName(e){if(Hp(e))return e.name}getNameNode(e){return kl(e.$cstNode,"name")}}class zp{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=Td(e),r=e.astNode;if(t&&r){const i=r[t.feature];if(Oe(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(Oe(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||Nc(e,i)))return r}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t?.$cstNode){const r=this.nameProvider.getNameNode(t);return r??t.$cstNode}}findReferences(e,t){const r=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>Xe.equals(s.sourceUri,t.documentUri))),r.push(...i),J(r)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const r=je(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:_r(t),local:!0}}}}class Jr{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return Hi.sum(J(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(t);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{const r=this.map.get(e);return r?r.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return J(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return J(this.map.keys())}values(){return J(this.map.values()).flat()}entriesGroupedByKey(){return J(this.map.entries())}}class Vo{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}}class qp{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=B.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=Ls,i=B.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await ge(i),this.exportNode(a,s,t);return s}exportNode(e,t,r){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,t=B.CancellationToken.None){const r=e.parseResult.value,i=new Jr;for(const s of Vn(r))await ge(t),this.processNode(s,e,i);return i}processNode(e,t,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,t))}}}class Ko{constructor(e,t,r){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class Yp{constructor(e,t,r){var i;this.elements=new Map,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=J(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class Ou{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 Xp extends Ou{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const r=t();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Jp extends Ou{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(r){const s=r();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class Qp extends Xp{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class Zp{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 Qp(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=je(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(J(o).filter(l=>this.reflection.isSubtype(l.type,r))),a=a.$container}while(a)}let s=this.getGlobalScope(r,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,r){return new Ko(J(e),t,r)}createScopeForNodes(e,t,r){const i=J(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new Ko(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Yp(this.indexManager.allElements(e)))}}function em(n){return typeof n.$comment=="string"}function Wo(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class tm{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const r=t??{},i=t?.replacer,s=(o,l)=>this.replacer(o,l,r),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=je(e),JSON.stringify(e,a,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const r=t??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,t,{refText:r,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,u,c,d;if(!this.ignoreProperties.has(e))if(Oe(t)){const h=t.ref,f=r?t.$refText:void 0;if(h){const y=je(h);let T="";this.currentDocument&&this.currentDocument!==y&&(o?T=o(y.uri,t):T=y.uri.toString());const k=this.astNodeLocator.getAstNodePath(h);return{$ref:`${T}#${k}`,$refText:f}}else return{$error:(u=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:f}}else if(ne(t)){let h;if(s&&(h=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&h?.$textRegion&&(h.$textRegion.documentURI=(c=this.currentDocument)===null||c===void 0?void 0:c.uri.toString())),i&&!e&&(h??(h=Object.assign({},t)),h.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){h??(h=Object.assign({},t));const f=this.commentProvider.getComment(t);f&&(h.$comment=f.replace(/\r/g,""))}return h??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=t(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=md(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,r,i,s,a){for(const[l,u]of Object.entries(e))if(Array.isArray(u))for(let c=0;c<u.length;c++){const d=u[c];Wo(d)?u[c]=this.reviveReference(e,l,t,d,r):ne(d)&&this.linkNode(d,t,r,e,l,c)}else Wo(u)?e[l]=this.reviveReference(e,l,t,u,r):ne(u)&&this.linkNode(u,t,r,e,l);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,r,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const l=this.getRefNode(r,i.$ref,s.uriConverter);if(ne(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,r){try{const i=t.indexOf("#");if(i===0){const l=this.astNodeLocator.getAstNode(e,t.substring(1));return l||"Could not resolve path: "+t}if(i<0){const l=r?r(t):ht.parse(t),u=this.langiumDocuments.getDocument(l);return u?u.parseResult.value:"Could not find document for URI: "+t}const s=r?r(t.substring(0,i)):ht.parse(t.substring(0,i)),a=this.langiumDocuments.getDocument(s);if(!a)return"Could not find document for URI: "+t;if(i===t.length-1)return a.parseResult.value;const o=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1));return o||"Could not resolve URI: "+t}catch(i){return String(i)}}}class nm{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const r of t.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(t.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var t,r;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(r=(t=this.textDocuments)===null||t===void 0?void 0:t.get(e))===null||r===void 0?void 0:r.languageId;if(i!==void 0){const o=this.languageIdMap.get(i);if(o)return o}const s=Xe.extname(e),a=this.fileExtensionMap.get(s);if(!a)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function wn(n){return{code:n}}var Qr;(function(n){n.all=["fast","slow","built-in"]})(Qr||(Qr={}));class rm{constructor(e){this.entries=new Jr,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const l={check:this.wrapValidationException(o,t),category:r};this.addEntry(i,l)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:r};this.addEntry(i,o)}else Bn()}}wrapValidationException(e,t){return async(r,i,s)=>{await this.handleException(()=>e.call(t,r,i,s),"An error occurred during validation",i,r)}}async handleException(e,t,r,i){try{await e()}catch(s){if(hi(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);r("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=J(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(i=>t.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(i,s,a,o)=>{await this.handleException(()=>e.call(r,i,s,a,o),t,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class im{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=B.CancellationToken.None){const i=e.parseResult,s=[];if(await ge(r),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Se.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Se.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Se.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,r))}catch(a){if(hi(a))throw a;console.error("An error occurred during validation:",a)}return await ge(r),s}processLexingErrors(e,t,r){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const l of o){const u=(a=l.severity)!==null&&a!==void 0?a:"error",c={severity:_i(u),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:am(u),source:this.getSource()};t.push(c)}}processParsingErrors(e,t,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=zi(i.token);if(s){const a={severity:_i("error"),range:s,message:i.message,data:wn(Se.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,r){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:Se.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,r=B.CancellationToken.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await this.validateAstBefore(e,t,s,r),await this.validateAstNodes(e,t,s,r),await this.validateAstAfter(e,t,s,r),i}async validateAstBefore(e,t,r,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await ge(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,r,i=B.CancellationToken.None){await Promise.all(At(e).map(async s=>{await ge(i);const a=this.validationRegistry.getChecks(s.$type,t.categories);for(const o of a)await o(s,r,i)}))}async validateAstAfter(e,t,r,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await ge(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,r){return{message:t,range:sm(r),severity:_i(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function sm(n){if(n.range)return n.range;let e;return typeof n.property=="string"?e=kl(n.node.$cstNode,n.property,n.index):typeof n.keyword=="string"&&(e=gd(n.node.$cstNode,n.keyword,n.index)),e??(e=n.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function _i(n){switch(n){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+n)}}function am(n){switch(n){case"error":return wn(Se.LexingError);case"warning":return wn(Se.LexingWarning);case"info":return wn(Se.LexingInfo);case"hint":return wn(Se.LexingHint);default:throw new Error("Invalid diagnostic severity: "+n)}}var Se;(function(n){n.LexingError="lexing-error",n.LexingWarning="lexing-warning",n.LexingInfo="lexing-info",n.LexingHint="lexing-hint",n.ParsingError="parsing-error",n.LinkingError="linking-error"})(Se||(Se={}));class om{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){const i=r??je(e);t??(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=_r((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:_r(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class lm{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=B.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of At(i))await ge(t),Tl(s).filter(a=>!gr(a)).forEach(a=>{const o=this.createDescription(a);o&&r.push(o)});return r}createDescription(e){const t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;const i=je(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:_r(r),local:Xe.equals(t.documentUri,i)}}}class um{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;const a=s.indexOf(this.indexSeparator);if(a>0){const o=s.substring(0,a),l=parseInt(s.substring(a+1)),u=i[o];return u?.[l]}return i[s]},e)}}var cm=wu();class dm{constructor(e){this._ready=new Ys,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new cm.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=(r=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const r=e.settings[t];this.updateSectionConfiguration(t,r),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:r})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var Pn;(function(n){function e(t){return{dispose:async()=>await t()}}n.create=e})(Pn||(Pn={}));class fm{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Jr,this.documentPhaseListeners=new Jr,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=G.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=B.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===G.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=G.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),u=(i=l?.result)===null||i===void 0?void 0:i.validationChecks;if(u){const d=((s=t.validation.categories)!==null&&s!==void 0?s:Qr.all).filter(h=>!u.includes(h));d.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:d})},result:l.result}),a.state=G.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=G.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=B.CancellationToken.None){this.currentState=G.Changed;for(const a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=G.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}const i=J(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,G.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await ge(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<G.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t<r;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;t<r&&([e[t],e[r]]=[e[r],e[t]])}return e}hasTextDocument(e){var t;return!!(!((t=this.textDocuments)===null||t===void 0)&&t.get(e.uri))}shouldRelink(e,t){return e.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Pn.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,G.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,G.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,G.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,G.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,G.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,G.Validated,r,s=>this.validate(s,r));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s?.result})}}async runCancelable(e,t,r,i){const s=e.filter(o=>o.state<t);for(const o of s)await ge(r),await i(o),o.state=t,await this.notifyDocumentPhase(o,t,r);const a=e.filter(o=>o.state===t);await this.notifyBuildPhase(a,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Pn.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Pn.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r??(r=B.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(Xr):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u?.uri)}else s(void 0)}),l=r.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(Xr)})})}async notifyDocumentPhase(e,t,r){const s=this.documentPhaseListeners.get(t).slice();for(const a of s)try{await a(e,r)}catch(o){if(!hi(o))throw o}}async notifyBuildPhase(e,t,r){if(e.length===0)return;const s=this.buildPhaseListeners.get(t).slice();for(const a of s)await ge(r),await a(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const u=this.buildState.get(e.uri.toString());if(u){(r=u.result)!==null&&r!==void 0||(u.result={});const c=(i=o?.categories)!==null&&i!==void 0?i:Qr.all;u.result.validationChecks?u.result.validationChecks.push(...c):u.result.validationChecks=[...c]}}getBuildOptions(e){var t,r;return(r=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&r!==void 0?r:{}}}class hm{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Jp,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=je(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{Xe.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),J(i)}allElements(e,t){let r=J(this.symbolIndex.keys());return t&&(r=r.filter(i=>!t||t.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(o=>this.astReflection.isSubtype(o.type,t))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=B.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=B.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}}class pm{constructor(e){this.initialBuildOptions={},this._ready=new Ys,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],t)})}async initializeWorkspace(e,t=B.CancellationToken.None){const r=await this.performStartup(e);await ge(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return ht.parse(e.uri)}async traverseFolder(e,t,r,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,r)){if(a.isDirectory)await this.traverseFolder(e,a.uri,r,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,r){const i=Xe.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=Xe.extname(t.uri);return r.includes(s)}return!1}}class mm{buildUnexpectedCharactersMessage(e,t,r,i,s){return Zi.buildUnexpectedCharactersMessage(e,t,r,i,s)}buildUnableToPopLexerModeMessage(e){return Zi.buildUnableToPopLexerModeMessage(e)}}const gm={mode:"full"};class ym{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const r=Ho(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new oe(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=gm){var r,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(r=a.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(Ho(e))return e;const t=Pu(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function Tm(n){return Array.isArray(n)&&(n.length===0||"name"in n[0])}function Pu(n){return n&&"modes"in n&&"defaultMode"in n}function Ho(n){return!Tm(n)&&!Pu(n)}function Rm(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=P.create(0,0));const s=Mu(n),a=Xs(r),o=Am({lines:s,position:i,options:a});return Im({index:0,tokens:o,position:i})}function vm(n,e){const t=Xs(e),r=Mu(n);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],a=t.start,o=t.end;return!!a?.exec(i)&&!!o?.exec(s)}function Mu(n){let e="";return typeof n=="string"?e=n:e=n.text,e.split(rd)}const jo=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Em=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function Am(n){var e,t,r;const i=[];let s=n.position.line,a=n.position.character;for(let o=0;o<n.lines.length;o++){const l=o===0,u=o===n.lines.length-1;let c=n.lines[o],d=0;if(l&&n.options.start){const f=(e=n.options.start)===null||e===void 0?void 0:e.exec(c);f&&(d=f.index+f[0].length)}else{const f=(t=n.options.line)===null||t===void 0?void 0:t.exec(c);f&&(d=f.index+f[0].length)}if(u){const f=(r=n.options.end)===null||r===void 0?void 0:r.exec(c);f&&(c=c.substring(0,f.index))}if(c=c.substring(0,Sm(c)),xs(c,d)>=c.length){if(i.length>0){const f=P.create(s,a);i.push({type:"break",content:"",range:O.create(f,f)})}}else{jo.lastIndex=d;const f=jo.exec(c);if(f){const y=f[0],T=f[1],k=P.create(s,a+d),v=P.create(s,a+d+y.length);i.push({type:"tag",content:T,range:O.create(k,v)}),d+=y.length,d=xs(c,d)}if(d<c.length){const y=c.substring(d),T=Array.from(y.matchAll(Em));i.push(...km(T,y,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function km(n,e,t,r){const i=[];if(n.length===0){const s=P.create(t,r),a=P.create(t,r+e.length);i.push({type:"text",content:e,range:O.create(s,a)})}else{let s=0;for(const o of n){const l=o.index,u=e.substring(s,l);u.length>0&&i.push({type:"text",content:e.substring(s,l),range:O.create(P.create(t,s+r),P.create(t,l+r))});let c=u.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:O.create(P.create(t,s+c+r),P.create(t,s+c+d.length+r))}),c+=d.length,o.length===4){c+=o[2].length;const h=o[3];i.push({type:"text",content:h,range:O.create(P.create(t,s+c+r),P.create(t,s+c+h.length+r))})}else i.push({type:"text",content:"",range:O.create(P.create(t,s+c+r),P.create(t,s+c+r))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:O.create(P.create(t,s+r),P.create(t,s+r+a.length))})}return i}const $m=/\S/,xm=/\s*$/;function xs(n,e){const t=n.substring(e).match($m);return t?e+t.index:n.length}function Sm(n){const e=n.match(xm);if(e&&typeof e.index=="number")return e.index}function Im(n){var e,t,r,i;const s=P.create(n.position.line,n.position.character);if(n.tokens.length===0)return new zo([],O.create(s,s));const a=[];for(;n.index<n.tokens.length;){const u=Cm(n,a[a.length-1]);u&&a.push(u)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(i=(r=a[a.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new zo(a,O.create(o,l))}function Cm(n,e){const t=n.tokens[n.index];if(t.type==="tag")return Fu(n,!1);if(t.type==="text"||t.type==="inline-tag")return Du(n);Nm(t,e),n.index++}function Nm(n,e){if(e){const t=new Uu("",n.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function Du(n){let e=n.tokens[n.index];const t=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(wm(n)),r=e,e=n.tokens[n.index];return new Ss(i,O.create(t.range.start,r.range.end))}function wm(n){return n.tokens[n.index].type==="inline-tag"?Fu(n,!0):Gu(n)}function Fu(n,e){const t=n.tokens[n.index++],r=t.content.substring(1),i=n.tokens[n.index];if(i?.type==="text")if(e){const s=Gu(n);return new Oi(r,new Ss([s],s.range),e,O.create(t.range.start,s.range.end))}else{const s=Du(n);return new Oi(r,s,e,O.create(t.range.start,s.range.end))}else{const s=t.range;return new Oi(r,new Ss([],s),e,s)}}function Gu(n){const e=n.tokens[n.index++];return new Uu(e.content,e.range)}function Xs(n){if(!n)return Xs({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:r}=n;return{start:bi(e,!0),end:bi(t,!1),line:bi(r,!0)}}function bi(n,e){if(typeof n=="string"||typeof n=="object"){const t=typeof n=="string"?si(n):n.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return n}class zo{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const t of this.elements)if(e.length===0)e=t.toString();else{const r=t.toString();e+=qo(e)+r}return e.trim()}toMarkdown(e){let t="";for(const r of this.elements)if(t.length===0)t=r.toMarkdown(e);else{const i=r.toMarkdown(e);t+=qo(t)+i}return t.trim()}}class Oi{constructor(e,t,r,i){this.name=e,this.content=t,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}
118
- ${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,r;return(r=(t=e?.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const s=Lm(this.name,t,e??{});if(typeof s=="string")return s}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} — ${t}`:this.content.inlines.length>1&&(i=`${i}
119
- ${t}`),this.inline?`{${i}}`:i}}function Lm(n,e,t){var r,i;if(n==="linkplain"||n==="linkcode"||n==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const l=xs(e,s);a=e.substring(l),e=e.substring(0,s)}return(n==="linkcode"||n==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(r=t.renderLink)===null||r===void 0?void 0:r.call(t,e,a))!==null&&i!==void 0?i:_m(e,a)}}function _m(n,e){try{return ht.parse(n,!0),`[${e}](${n})`}catch{return n}}class Ss{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const r=this.inlines[t],i=this.inlines[t+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
116
+ `&&i++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return P.create(0,e);for(;r<i;){let a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}let s=r-1;return P.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var p;(function(n){const e=Object.prototype.toString;function t(f){return typeof f<"u"}n.defined=t;function r(f){return typeof f>"u"}n.undefined=r;function i(f){return f===!0||f===!1}n.boolean=i;function s(f){return e.call(f)==="[object String]"}n.string=s;function a(f){return e.call(f)==="[object Number]"}n.number=a;function o(f,y,T){return e.call(f)==="[object Number]"&&y<=f&&f<=T}n.numberRange=o;function l(f){return e.call(f)==="[object Number]"&&-2147483648<=f&&f<=2147483647}n.integer=l;function u(f){return e.call(f)==="[object Number]"&&0<=f&&f<=2147483647}n.uinteger=u;function c(f){return e.call(f)==="[object Function]"}n.func=c;function d(f){return f!==null&&typeof f=="object"}n.objectLiteral=d;function h(f,y){return Array.isArray(f)&&f.every(y)}n.typedArray=h})(p||(p={}));class yp{constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new Tu(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new js;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new Rs(e.startOffset,e.image.length,ji(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const t=e.container;if(t){const r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){const t=[];for(const s of e){const a=new Rs(s.startOffset,s.image.length,ji(s),s.tokenType,!0);a.root=this.rootNode,t.push(a)}let r=this.current,i=!1;if(r.content.length>0){r.content.push(...t);return}for(;r.container;){const s=r.container.content.indexOf(r);if(s>0){r.container.content.splice(s,0,...t),i=!0;break}r=r.container}i||this.rootNode.content.unshift(...t)}construct(e){const t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;const r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}}class yu{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const r=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Rs extends yu{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=r}}class js extends yu{constructor(){super(...arguments),this.content=new zs(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=t;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}else return{start:P.create(0,0),end:P.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class zs extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,zs.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(const t of e)t.container=this.parent}}class Tu extends js{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const vs=Symbol("Datatype");function Ni(n){return n.$type===vs}const Po="​",Ru=n=>n.endsWith(Po)?n:n+Po;class vu{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,r=e.LanguageMetaData.mode==="production";this.wrapper=new Ap(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class Tp extends vu{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new yp,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(Ru(e.name),this.startImplementation(r,t).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(xl(e))return vs;{const t=_s(e);return t??e.name}}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;const i=t.rule?this.allRules.get(t.rule):this.mainRule;if(!i)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===vs&&(a.value="")}let s;try{s=t(r)}catch{s=void 0}return s===void 0&&i&&(s=this.construct()),s}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const r=e.startOffset;for(let i=0;i<t.length;i++)if(t[i].startOffset>r)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,r){const i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){const s=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(s);const a=this.nodeBuilder.buildLeafNode(i,r),{assignment:o,isCrossRef:l}=this.getAssignment(r),u=this.current;if(o){const c=lt(r)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,c,a,l)}else if(Ni(u)){let c=i.image;lt(r)||(c=this.converter.convert(c,a).toString()),u.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,r,i,s){let a;!this.isRecording()&&!r&&(a=this.nodeBuilder.buildCompositeNode(i));const o=this.wrapper.wrapSubrule(e,t,s);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,i,a)}performSubruleAssignment(e,t,r){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const a=this.current;if(Ni(a))a.value+=e.toString();else if(typeof e=="object"&&e){const l=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(l)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(t.feature&&t.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode);const s={$type:e};this.stack.push(s),this.assign(t.operator,t.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Jc(e),this.nodeBuilder.construct(e),this.stack.pop(),Ni(e)?this.converter.convert(e.value,e.$cstNode):(Qc(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=ni(e,ot);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Cs(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,r,i,s){const a=this.current;let o;switch(s&&typeof r=="string"?o=this.linker.buildReference(a,t,i,r):o=r,e){case"=":{a[t]=o;break}case"?=":{a[t]=!0;break}case"+=":Array.isArray(a[t])||(a[t]=[]),a[t].push(o)}}assignWithoutOverride(e,t){for(const[i,s]of Object.entries(t)){const a=e[i];a===void 0?e[i]=s:Array.isArray(a)&&Array.isArray(s)&&(s.push(...a),e[i]=s)}const r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class Rp{buildMismatchTokenMessage(e){return vt.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return vt.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return vt.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return vt.buildEarlyExitMessage(e)}}class Eu extends Rp{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 vp extends vu{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const r=this.wrapper.DEFINE_RULE(Ru(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,i,s){this.before(i),this.wrapper.wrapSubrule(e,t,s),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const Ep={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Eu};class Ap extends Nh{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Ep),{lookaheadStrategy:r?new Us({maxLookahead:t.maxLookahead}):new Xh({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function Au(n,e,t){return kp({parser:e,tokens:t,ruleNames:new Map},n),e}function kp(n,e){const t=vl(e,!1),r=J(e.rules).filter(ke).filter(i=>t.has(i));for(const i of r){const s=Object.assign(Object.assign({},n),{consume:1,optional:1,subrule:1,many:1,or:1});n.parser.rule(i,dt(s,i.definition))}}function dt(n,e,t=!1){let r;if(lt(e))r=wp(n,e);else if(ti(e))r=$p(n,e);else if(ot(e))r=dt(n,e.terminal);else if(Cs(e))r=ku(n,e);else if(ut(e))r=xp(n,e);else if(pl(e))r=Ip(n,e);else if(ml(e))r=Cp(n,e);else if(Ns(e))r=Np(n,e);else if(Kc(e)){const i=n.consume++;r=()=>n.parser.consume(i,ze,e)}else throw new cl(e.$cstNode,`Unexpected element type: ${e.$type}`);return $u(n,t?void 0:qr(e),r,e.cardinality)}function $p(n,e){const t=bs(e);return()=>n.parser.action(t,e)}function xp(n,e){const t=e.rule.ref;if(ke(t)){const r=n.subrule++,i=t.fragment,s=e.arguments.length>0?Sp(t,e.arguments):()=>({});return a=>n.parser.subrule(r,xu(n,t),i,e,s(a))}else if(ht(t)){const r=n.consume++,i=Es(n,t.name);return()=>n.parser.consume(r,i,e)}else if(t)Un();else throw new cl(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function Sp(n,e){const t=e.map(r=>Ue(r.value));return r=>{const i={};for(let s=0;s<t.length;s++){const a=n.parameters[s],o=t[s];i[a.name]=o(r)}return i}}function Ue(n){if(Dc(n)){const e=Ue(n.left),t=Ue(n.right);return r=>e(r)||t(r)}else if(Mc(n)){const e=Ue(n.left),t=Ue(n.right);return r=>e(r)&&t(r)}else if(Fc(n)){const e=Ue(n.value);return t=>!e(t)}else if(Gc(n)){const e=n.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Pc(n)){const e=!!n.true;return()=>e}Un()}function Ip(n,e){if(e.elements.length===1)return dt(n,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:dt(n,i,!0)},a=qr(i);a&&(s.GATE=Ue(a)),t.push(s)}const r=n.or++;return i=>n.parser.alternatives(r,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function Cp(n,e){if(e.elements.length===1)return dt(n,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:dt(n,o,!0)},u=qr(o);u&&(l.GATE=Ue(u)),t.push(l)}const r=n.or++,i=(o,l)=>{const u=l.getRuleStack().join("-");return`uGroup_${o}_${u}`},s=o=>n.parser.alternatives(r,t.map((l,u)=>{const c={ALT:()=>!0},d=n.parser;c.ALT=()=>{if(l.ALT(o),!d.isRecording()){const f=i(r,d);d.unorderedGroups.get(f)||d.unorderedGroups.set(f,[]);const y=d.unorderedGroups.get(f);typeof y?.[u]>"u"&&(y[u]=!0)}};const h=l.GATE;return h?c.GATE=()=>h(o):c.GATE=()=>{const f=d.unorderedGroups.get(i(r,d));return!f?.[u]},c})),a=$u(n,qr(e),s,"*");return o=>{a(o),n.parser.isRecording()||n.parser.unorderedGroups.delete(i(r,n.parser))}}function Np(n,e){const t=e.elements.map(r=>dt(n,r));return r=>t.forEach(i=>i(r))}function qr(n){if(Ns(n))return n.guardCondition}function ku(n,e,t=e.terminal){if(t)if(ut(t)&&ke(t.rule.ref)){const r=t.rule.ref,i=n.subrule++;return s=>n.parser.subrule(i,xu(n,r),!1,e,s)}else if(ut(t)&&ht(t.rule.ref)){const r=n.consume++,i=Es(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}else if(lt(t)){const r=n.consume++,i=Es(n,t.value);return()=>n.parser.consume(r,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=kl(e.type.ref),i=r?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+bs(e.type.ref));return ku(n,e,i)}}function wp(n,e){const t=n.consume++,r=n.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>n.parser.consume(t,r,e)}function $u(n,e,t,r){const i=e&&Ue(e);if(!r)if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:Na(),GATE:()=>!i(a)}])}else return t;if(r==="*"){const s=n.many++;return a=>n.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(r==="+"){const s=n.many++;if(i){const a=n.or++;return o=>n.parser.alternatives(a,[{ALT:()=>n.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:Na(),GATE:()=>!i(o)}])}else return a=>n.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(r==="?"){const s=n.optional++;return a=>n.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else Un()}function xu(n,e){const t=Lp(n,e),r=n.parser.getRule(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function Lp(n,e){if(ke(e))return e.name;if(n.ruleNames.has(e))return n.ruleNames.get(e);{let t=e,r=t.$container,i=e.$type;for(;!ke(r);)(Ns(r)||pl(r)||ml(r))&&(i=r.elements.indexOf(t).toString()+":"+i),t=r,r=r.$container;return i=r.name+":"+i,n.ruleNames.set(e,i),i}}function Es(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function _p(n){const e=n.Grammar,t=n.parser.Lexer,r=new vp(n);return Au(e,r,t.definition),r.finalize(),r}function bp(n){const e=Op(n);return e.finalize(),e}function Op(n){const e=n.Grammar,t=n.parser.Lexer,r=new Tp(n);return Au(e,r,t.definition)}class Su{constructor(){this.diagnostics=[]}buildTokens(e,t){const r=J(vl(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&qi(o)?s.unshift(a):s.push(a)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(ht).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Os(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=qi(t)?oe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(r,i)=>(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(ke).flatMap(i=>Bn(i).filter(lt)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!r?.caseInsensitive))}buildKeywordToken(e,t,r){const i=this.buildKeywordPattern(e,r),s={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,t)};return typeof i=="function"&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(e,t){return t?new RegExp(od(e.value)):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{const s=i?.PATTERN;return s?.source&&ld("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class Iu{convert(e,t){let r=t.grammarSource;if(Cs(r)&&(r=fd(r)),ut(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,r){var i;switch(e.name.toUpperCase()){case"INT":return De.convertInt(t);case"STRING":return De.convertString(t);case"ID":return De.convertID(t)}switch((i=Rd(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return De.convertNumber(t);case"boolean":return De.convertBoolean(t);case"bigint":return De.convertBigint(t);case"date":return De.convertDate(t);default:return t}}}var De;(function(n){function e(u){let c="";for(let d=1;d<u.length-1;d++){const h=u.charAt(d);if(h==="\\"){const f=u.charAt(++d);c+=t(f)}else c+=h}return c}n.convertString=e;function t(u){switch(u){case"b":return"\b";case"f":return"\f";case"n":return`
117
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return u}}function r(u){return u.charAt(0)==="^"?u.substring(1):u}n.convertID=r;function i(u){return parseInt(u)}n.convertInt=i;function s(u){return BigInt(u)}n.convertBigint=s;function a(u){return new Date(u)}n.convertDate=a;function o(u){return Number(u)}n.convertNumber=o;function l(u){return u.toLowerCase()==="true"}n.convertBoolean=l})(De||(De={}));var it={},or={},Mo;function Cu(){if(Mo)return or;Mo=1,Object.defineProperty(or,"__esModule",{value:!0});let n;function e(){if(n===void 0)throw new Error("No runtime abstraction layer installed");return n}return(function(t){function r(i){if(i===void 0)throw new Error("No runtime abstraction layer provided");n=i}t.install=r})(e||(e={})),or.default=e,or}var q={},Do;function Pp(){if(Do)return q;Do=1,Object.defineProperty(q,"__esModule",{value:!0}),q.stringArray=q.array=q.func=q.error=q.number=q.string=q.boolean=void 0;function n(o){return o===!0||o===!1}q.boolean=n;function e(o){return typeof o=="string"||o instanceof String}q.string=e;function t(o){return typeof o=="number"||o instanceof Number}q.number=t;function r(o){return o instanceof Error}q.error=r;function i(o){return typeof o=="function"}q.func=i;function s(o){return Array.isArray(o)}q.array=s;function a(o){return s(o)&&o.every(l=>e(l))}return q.stringArray=a,q}var st={},Fo;function Nu(){if(Fo)return st;Fo=1,Object.defineProperty(st,"__esModule",{value:!0}),st.Emitter=st.Event=void 0;const n=Cu();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(st.Event=e={}));class t{add(s,a=null,o){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(o)&&o.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let o=!1;for(let l=0,u=this._callbacks.length;l<u;l++)if(this._callbacks[l]===s)if(this._contexts[l]===a){this._callbacks.splice(l,1),this._contexts.splice(l,1);return}else o=!0;if(o)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],o=this._callbacks.slice(0),l=this._contexts.slice(0);for(let u=0,c=o.length;u<c;u++)try{a.push(o[u].apply(l[u],s))}catch(d){(0,n.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,o)=>{this._callbacks||(this._callbacks=new t),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const l={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),l.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(o)&&o.push(l),l}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return st.Emitter=r,r._noop=function(){},st}var Go;function Mp(){if(Go)return it;Go=1,Object.defineProperty(it,"__esModule",{value:!0}),it.CancellationTokenSource=it.CancellationToken=void 0;const n=Cu(),e=Pp(),t=Nu();var r;(function(o){o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:t.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:t.Event.None});function l(u){const c=u;return c&&(c===o.None||c===o.Cancelled||e.boolean(c.isCancellationRequested)&&!!c.onCancellationRequested)}o.is=l})(r||(it.CancellationToken=r={}));const i=Object.freeze(function(o,l){const u=(0,n.default)().timer.setTimeout(o.bind(l),0);return{dispose(){u.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?i:(this._emitter||(this._emitter=new t.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=r.None}}return it.CancellationTokenSource=a,it}var B=Mp();function Dp(){return new Promise(n=>{typeof setImmediate>"u"?setTimeout(n,0):setImmediate(n)})}let Ar=0,Fp=10;function Gp(){return Ar=performance.now(),new B.CancellationTokenSource}const Yr=Symbol("OperationCancelled");function fi(n){return n===Yr}async function ge(n){if(n===B.CancellationToken.None)return;const e=performance.now();if(e-Ar>=Fp&&(Ar=e,await Dp(),Ar=performance.now()),n.isCancellationRequested)throw Yr}class qs{constructor(){this.promise=new Promise((e,t)=>{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}}class Fn{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(const r of e)if(Fn.isIncremental(r)){const i=Lu(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let u=this._lineOffsets;const c=Uo(r.text,!1,s);if(l-o===c.length)for(let h=0,f=c.length;h<f;h++)u[h+o+1]=c[h];else c.length<1e4?u.splice(o+1,l-o,...c):this._lineOffsets=u=u.slice(0,o+1).concat(c,u.slice(l+1));const d=r.text.length-(a-s);if(d!==0)for(let h=o+1+c.length,f=u.length;h<f;h++)u[h]=u[h]+d}else if(Fn.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Uo(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let r=0,i=t.length;if(i===0)return{line:0,character:e};for(;r<i;){const a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}const s=r-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const r=t[e.line];if(e.character<=0)return r;const i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(r+e.character,i);return this.ensureBeforeEOL(s,r)}ensureBeforeEOL(e,t){for(;e>t&&wu(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}}var As;(function(n){function e(i,s,a,o){return new Fn(i,s,a,o)}n.create=e;function t(i,s,a){if(i instanceof Fn)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}n.update=t;function r(i,s){const a=i.getText(),o=ks(s.map(Up),(c,d)=>{const h=c.range.start.line-d.range.start.line;return h===0?c.range.start.character-d.range.start.character:h});let l=0;const u=[];for(const c of o){const d=i.offsetAt(c.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&u.push(a.substring(l,d)),c.newText.length&&u.push(c.newText),l=i.offsetAt(c.range.end)}return u.push(a.substr(l)),u.join("")}n.applyEdits=r})(As||(As={}));function ks(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);ks(r,e),ks(i,e);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)e(r[s],i[a])<=0?n[o++]=r[s++]:n[o++]=i[a++];for(;s<r.length;)n[o++]=r[s++];for(;a<i.length;)n[o++]=i[a++];return n}function Uo(n,e,t=0){const r=e?[t]:[];for(let i=0;i<n.length;i++){const s=n.charCodeAt(i);wu(s)&&(s===13&&i+1<n.length&&n.charCodeAt(i+1)===10&&i++,r.push(t+i+1))}return r}function wu(n){return n===13||n===10}function Lu(n){const e=n.start,t=n.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function Up(n){const e=Lu(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var _u;(()=>{var n={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,u){for(var c,d="",h=0,f=-1,y=0,T=0;T<=l.length;++T){if(T<l.length)c=l.charCodeAt(T);else{if(c===47)break;c=47}if(c===47){if(!(f===T-1||y===1))if(f!==T-1&&y===2){if(d.length<2||h!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var k=d.lastIndexOf("/");if(k!==d.length-1){k===-1?(d="",h=0):h=(d=d.slice(0,k)).length-1-d.lastIndexOf("/"),f=T,y=0;continue}}else if(d.length===2||d.length===1){d="",h=0,f=T,y=0;continue}}u&&(d.length>0?d+="/..":d="..",h=2)}else d.length>0?d+="/"+l.slice(f+1,T):d=l.slice(f+1,T),h=T-f-1;f=T,y=0}else c===46&&y!==-1?++y:y=-1}return d}var o={resolve:function(){for(var l,u="",c=!1,d=arguments.length-1;d>=-1&&!c;d--){var h;d>=0?h=arguments[d]:(l===void 0&&(l=process.cwd()),h=l),s(h),h.length!==0&&(u=h+"/"+u,c=h.charCodeAt(0)===47)}return u=a(u,!c),c?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(l){if(s(l),l.length===0)return".";var u=l.charCodeAt(0)===47,c=l.charCodeAt(l.length-1)===47;return(l=a(l,!u)).length!==0||u||(l="."),l.length>0&&c&&(l+="/"),u?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,u=0;u<arguments.length;++u){var c=arguments[u];s(c),c.length>0&&(l===void 0?l=c:l+="/"+c)}return l===void 0?".":o.normalize(l)},relative:function(l,u){if(s(l),s(u),l===u||(l=o.resolve(l))===(u=o.resolve(u)))return"";for(var c=1;c<l.length&&l.charCodeAt(c)===47;++c);for(var d=l.length,h=d-c,f=1;f<u.length&&u.charCodeAt(f)===47;++f);for(var y=u.length-f,T=h<y?h:y,k=-1,v=0;v<=T;++v){if(v===T){if(y>T){if(u.charCodeAt(f+v)===47)return u.slice(f+v+1);if(v===0)return u.slice(f+v)}else h>T&&(l.charCodeAt(c+v)===47?k=v:v===0&&(k=0));break}var x=l.charCodeAt(c+v);if(x!==u.charCodeAt(f+v))break;x===47&&(k=v)}var E="";for(v=c+k+1;v<=d;++v)v!==d&&l.charCodeAt(v)!==47||(E.length===0?E+="..":E+="/..");return E.length>0?E+u.slice(f+k):(f+=k,u.charCodeAt(f)===47&&++f,u.slice(f))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var u=l.charCodeAt(0),c=u===47,d=-1,h=!0,f=l.length-1;f>=1;--f)if((u=l.charCodeAt(f))===47){if(!h){d=f;break}}else h=!1;return d===-1?c?"/":".":c&&d===1?"//":l.slice(0,d)},basename:function(l,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');s(l);var c,d=0,h=-1,f=!0;if(u!==void 0&&u.length>0&&u.length<=l.length){if(u.length===l.length&&u===l)return"";var y=u.length-1,T=-1;for(c=l.length-1;c>=0;--c){var k=l.charCodeAt(c);if(k===47){if(!f){d=c+1;break}}else T===-1&&(f=!1,T=c+1),y>=0&&(k===u.charCodeAt(y)?--y==-1&&(h=c):(y=-1,h=T))}return d===h?h=T:h===-1&&(h=l.length),l.slice(d,h)}for(c=l.length-1;c>=0;--c)if(l.charCodeAt(c)===47){if(!f){d=c+1;break}}else h===-1&&(f=!1,h=c+1);return h===-1?"":l.slice(d,h)},extname:function(l){s(l);for(var u=-1,c=0,d=-1,h=!0,f=0,y=l.length-1;y>=0;--y){var T=l.charCodeAt(y);if(T!==47)d===-1&&(h=!1,d=y+1),T===46?u===-1?u=y:f!==1&&(f=1):u!==-1&&(f=-1);else if(!h){c=y+1;break}}return u===-1||d===-1||f===0||f===1&&u===d-1&&u===c+1?"":l.slice(u,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return(function(u,c){var d=c.dir||c.root,h=c.base||(c.name||"")+(c.ext||"");return d?d===c.root?d+h:d+"/"+h:h})(0,l)},parse:function(l){s(l);var u={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return u;var c,d=l.charCodeAt(0),h=d===47;h?(u.root="/",c=1):c=0;for(var f=-1,y=0,T=-1,k=!0,v=l.length-1,x=0;v>=c;--v)if((d=l.charCodeAt(v))!==47)T===-1&&(k=!1,T=v+1),d===46?f===-1?f=v:x!==1&&(x=1):f!==-1&&(x=-1);else if(!k){y=v+1;break}return f===-1||T===-1||x===0||x===1&&f===T-1&&f===y+1?T!==-1&&(u.base=u.name=y===0&&h?l.slice(1,T):l.slice(y,T)):(y===0&&h?(u.name=l.slice(1,f),u.base=l.slice(1,T)):(u.name=l.slice(y,f),u.base=l.slice(y,T)),u.ext=l.slice(f,T)),y>0?u.dir=l.slice(0,y-1):h&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return n[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>h,Utils:()=>Ee}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(S,R){if(!S.scheme&&R)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${S.authority}", path: "${S.path}", query: "${S.query}", fragment: "${S.fragment}"}`);if(S.scheme&&!s.test(S.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(S.path){if(S.authority){if(!a.test(S.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(S.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const u="",c="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{static isUri(R){return R instanceof h||!!R&&typeof R.authority=="string"&&typeof R.fragment=="string"&&typeof R.path=="string"&&typeof R.query=="string"&&typeof R.scheme=="string"&&typeof R.fsPath=="string"&&typeof R.with=="function"&&typeof R.toString=="function"}scheme;authority;path;query;fragment;constructor(R,C,I,b,_,L=!1){typeof R=="object"?(this.scheme=R.scheme||u,this.authority=R.authority||u,this.path=R.path||u,this.query=R.query||u,this.fragment=R.fragment||u):(this.scheme=(function(he,j){return he||j?he:"file"})(R,L),this.authority=C||u,this.path=(function(he,j){switch(he){case"https":case"http":case"file":j?j[0]!==c&&(j=c+j):j=c}return j})(this.scheme,I||u),this.query=b||u,this.fragment=_||u,l(this,L))}get fsPath(){return x(this)}with(R){if(!R)return this;let{scheme:C,authority:I,path:b,query:_,fragment:L}=R;return C===void 0?C=this.scheme:C===null&&(C=u),I===void 0?I=this.authority:I===null&&(I=u),b===void 0?b=this.path:b===null&&(b=u),_===void 0?_=this.query:_===null&&(_=u),L===void 0?L=this.fragment:L===null&&(L=u),C===this.scheme&&I===this.authority&&b===this.path&&_===this.query&&L===this.fragment?this:new y(C,I,b,_,L)}static parse(R,C=!1){const I=d.exec(R);return I?new y(I[2]||u,ee(I[4]||u),ee(I[5]||u),ee(I[7]||u),ee(I[9]||u),C):new y(u,u,u,u,u)}static file(R){let C=u;if(i&&(R=R.replace(/\\/g,c)),R[0]===c&&R[1]===c){const I=R.indexOf(c,2);I===-1?(C=R.substring(2),R=c):(C=R.substring(2,I),R=R.substring(I)||c)}return new y("file",C,R,u,u)}static from(R){const C=new y(R.scheme,R.authority,R.path,R.query,R.fragment);return l(C,!0),C}toString(R=!1){return E(this,R)}toJSON(){return this}static revive(R){if(R){if(R instanceof h)return R;{const C=new y(R);return C._formatted=R.external,C._fsPath=R._sep===f?R.fsPath:null,C}}return R}}const f=i?1:void 0;class y extends h{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=x(this)),this._fsPath}toString(R=!1){return R?E(this,!0):(this._formatted||(this._formatted=E(this,!1)),this._formatted)}toJSON(){const R={$mid:1};return this._fsPath&&(R.fsPath=this._fsPath,R._sep=f),this._formatted&&(R.external=this._formatted),this.path&&(R.path=this.path),this.scheme&&(R.scheme=this.scheme),this.authority&&(R.authority=this.authority),this.query&&(R.query=this.query),this.fragment&&(R.fragment=this.fragment),R}}const T={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function k(S,R,C){let I,b=-1;for(let _=0;_<S.length;_++){const L=S.charCodeAt(_);if(L>=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||R&&L===47||C&&L===91||C&&L===93||C&&L===58)b!==-1&&(I+=encodeURIComponent(S.substring(b,_)),b=-1),I!==void 0&&(I+=S.charAt(_));else{I===void 0&&(I=S.substr(0,_));const he=T[L];he!==void 0?(b!==-1&&(I+=encodeURIComponent(S.substring(b,_)),b=-1),I+=he):b===-1&&(b=_)}}return b!==-1&&(I+=encodeURIComponent(S.substring(b))),I!==void 0?I:S}function v(S){let R;for(let C=0;C<S.length;C++){const I=S.charCodeAt(C);I===35||I===63?(R===void 0&&(R=S.substr(0,C)),R+=T[I]):R!==void 0&&(R+=S[C])}return R!==void 0?R:S}function x(S,R){let C;return C=S.authority&&S.path.length>1&&S.scheme==="file"?`//${S.authority}${S.path}`:S.path.charCodeAt(0)===47&&(S.path.charCodeAt(1)>=65&&S.path.charCodeAt(1)<=90||S.path.charCodeAt(1)>=97&&S.path.charCodeAt(1)<=122)&&S.path.charCodeAt(2)===58?S.path[1].toLowerCase()+S.path.substr(2):S.path,i&&(C=C.replace(/\//g,"\\")),C}function E(S,R){const C=R?v:k;let I="",{scheme:b,authority:_,path:L,query:he,fragment:j}=S;if(b&&(I+=b,I+=":"),(_||b==="file")&&(I+=c,I+=c),_){let V=_.indexOf("@");if(V!==-1){const nt=_.substr(0,V);_=_.substr(V+1),V=nt.lastIndexOf(":"),V===-1?I+=C(nt,!1,!1):(I+=C(nt.substr(0,V),!1,!1),I+=":",I+=C(nt.substr(V+1),!1,!0)),I+="@"}_=_.toLowerCase(),V=_.lastIndexOf(":"),V===-1?I+=C(_,!1,!0):(I+=C(_.substr(0,V),!1,!0),I+=_.substr(V))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){const V=L.charCodeAt(1);V>=65&&V<=90&&(L=`/${String.fromCharCode(V+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){const V=L.charCodeAt(0);V>=65&&V<=90&&(L=`${String.fromCharCode(V+32)}:${L.substr(2)}`)}I+=C(L,!0,!1)}return he&&(I+="?",I+=C(he,!1,!1)),j&&(I+="#",I+=R?j:k(j,!1,!1)),I}function N(S){try{return decodeURIComponent(S)}catch{return S.length>3?S.substr(0,3)+N(S.substr(3)):S}}const D=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ee(S){return S.match(D)?S.replace(D,(R=>N(R))):S}var $e=t(470);const fe=$e.posix||$e,Le="/";var Ee;(function(S){S.joinPath=function(R,...C){return R.with({path:fe.join(R.path,...C)})},S.resolvePath=function(R,...C){let I=R.path,b=!1;I[0]!==Le&&(I=Le+I,b=!0);let _=fe.resolve(I,...C);return b&&_[0]===Le&&!R.authority&&(_=_.substring(1)),R.with({path:_})},S.dirname=function(R){if(R.path.length===0||R.path===Le)return R;let C=fe.dirname(R.path);return C.length===1&&C.charCodeAt(0)===46&&(C=""),R.with({path:C})},S.basename=function(R){return fe.basename(R.path)},S.extname=function(R){return fe.extname(R.path)}})(Ee||(Ee={}))})(),_u=r})();const{URI:ft,Utils:Xt}=_u;var Ye;(function(n){n.basename=Xt.basename,n.dirname=Xt.dirname,n.extname=Xt.extname,n.joinPath=Xt.joinPath,n.resolvePath=Xt.resolvePath;function e(i,s){return i?.toString()===s?.toString()}n.equals=e;function t(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(f=>f.length>0),u=o.split("/").filter(f=>f.length>0);let c=0;for(;c<l.length&&l[c]===u[c];c++);const d="../".repeat(l.length-c),h=u.slice(c).join("/");return d+h}n.relative=t;function r(i){return ft.parse(i.toString()).toString()}n.normalize=r})(Ye||(Ye={}));var G;(function(n){n[n.Changed=0]="Changed",n[n.Parsed=1]="Parsed",n[n.IndexedContent=2]="IndexedContent",n[n.ComputedScopes=3]="ComputedScopes",n[n.Linked=4]="Linked",n[n.IndexedReferences=5]="IndexedReferences",n[n.Validated=6]="Validated"})(G||(G={}));class Bp{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=B.CancellationToken.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??ft.parse(e.uri),B.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return B.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if(typeof t=="string"){const i=this.parse(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else if("$model"in t){const i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{const i=this.parse(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}async createAsync(e,t,r){if(typeof t=="string"){const i=await this.parseAsync(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else{const i=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,r,i){let s;if(r)s={parseResult:e,uri:t,state:G.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:G.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{const l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=G.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){const r=this.serviceRegistry;let i;return()=>i??(i=As.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Vp{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return J(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=G.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=G.Changed,this.documentMap.delete(t)),r}}const wi=Symbol("ref_resolving");class Kp{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=B.CancellationToken.None){for(const r of Et(e.parseResult.value))await ge(t),yl(r).forEach(i=>this.doLink(i,e))}doLink(e,t){var r;const i=e.reference;if(i._ref===void 0){i._ref=wi;try{const s=this.getCandidate(e);if(mr(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}t.references.push(i)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,t,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o;if(ne(this._ref))return this._ref;if(xc(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=wi;const l=zi(e).$document,u=s.getLinkedNode({reference:a,container:e,property:t});if(u.error&&l&&l.state<G.ComputedScopes)return this._ref=void 0;this._ref=(o=u.node)!==null&&o!==void 0?o:u.error,this._nodeDescription=u.descr,l?.references.push(this)}else if(this._ref===wi)throw new Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${i}')`);return ne(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return mr(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{const r=this.getCandidate(e);if(mr(r))return{error:r};const i=this.loadAstNode(r);return i?{node:i,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);const i=(t=r.message)!==null&&t!==void 0?t:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const r=zi(e.container).$document;r&&r.state<G.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:t})}}function Wp(n){return typeof n.name=="string"}class Hp{getName(e){if(Wp(e))return e.name}getNameNode(e){return Al(e.$cstNode,"name")}}class jp{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=yd(e),r=e.astNode;if(t&&r){const i=r[t.feature];if(be(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(be(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||Cc(e,i)))return r}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t?.$cstNode){const r=this.nameProvider.getNameNode(t);return r??t.$cstNode}}findReferences(e,t){const r=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>Ye.equals(s.sourceUri,t.documentUri))),r.push(...i),J(r)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const r=He(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:Lr(t),local:!0}}}}class Xr{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return Wi.sum(J(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(t);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{const r=this.map.get(e);return r?r.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return J(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return J(this.map.keys())}values(){return J(this.map.values()).flat()}entriesGroupedByKey(){return J(this.map.entries())}}class Bo{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}}class zp{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=B.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=ws,i=B.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await ge(i),this.exportNode(a,s,t);return s}exportNode(e,t,r){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,t=B.CancellationToken.None){const r=e.parseResult.value,i=new Xr;for(const s of Bn(r))await ge(t),this.processNode(s,e,i);return i}processNode(e,t,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,t))}}}class Vo{constructor(e,t,r){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class qp{constructor(e,t,r){var i;this.elements=new Map,this.caseInsensitive=(i=r?.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=J(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class bu{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 Yp extends bu{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const r=t();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Xp extends bu{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(r){const s=r();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class Jp extends Yp{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class Qp{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 Jp(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=He(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(J(o).filter(l=>this.reflection.isSubtype(l.type,r))),a=a.$container}while(a)}let s=this.getGlobalScope(r,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,r){return new Vo(J(e),t,r)}createScopeForNodes(e,t,r){const i=J(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new Vo(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new qp(this.indexManager.allElements(e)))}}function Zp(n){return typeof n.$comment=="string"}function Ko(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class em{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const r=t??{},i=t?.replacer,s=(o,l)=>this.replacer(o,l,r),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=He(e),JSON.stringify(e,a,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const r=t??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,t,{refText:r,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,u,c,d;if(!this.ignoreProperties.has(e))if(be(t)){const h=t.ref,f=r?t.$refText:void 0;if(h){const y=He(h);let T="";this.currentDocument&&this.currentDocument!==y&&(o?T=o(y.uri,t):T=y.uri.toString());const k=this.astNodeLocator.getAstNodePath(h);return{$ref:`${T}#${k}`,$refText:f}}else return{$error:(u=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&u!==void 0?u:"Could not resolve reference",$refText:f}}else if(ne(t)){let h;if(s&&(h=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&h?.$textRegion&&(h.$textRegion.documentURI=(c=this.currentDocument)===null||c===void 0?void 0:c.uri.toString())),i&&!e&&(h??(h=Object.assign({},t)),h.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){h??(h=Object.assign({},t));const f=this.commentProvider.getComment(t);f&&(h.$comment=f.replace(/\r/g,""))}return h??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=t(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=pd(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,r,i,s,a){for(const[l,u]of Object.entries(e))if(Array.isArray(u))for(let c=0;c<u.length;c++){const d=u[c];Ko(d)?u[c]=this.reviveReference(e,l,t,d,r):ne(d)&&this.linkNode(d,t,r,e,l,c)}else Ko(u)?e[l]=this.reviveReference(e,l,t,u,r):ne(u)&&this.linkNode(u,t,r,e,l);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,r,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const l=this.getRefNode(r,i.$ref,s.uriConverter);if(ne(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,r){try{const i=t.indexOf("#");if(i===0){const l=this.astNodeLocator.getAstNode(e,t.substring(1));return l||"Could not resolve path: "+t}if(i<0){const l=r?r(t):ft.parse(t),u=this.langiumDocuments.getDocument(l);return u?u.parseResult.value:"Could not find document for URI: "+t}const s=r?r(t.substring(0,i)):ft.parse(t.substring(0,i)),a=this.langiumDocuments.getDocument(s);if(!a)return"Could not find document for URI: "+t;if(i===t.length-1)return a.parseResult.value;const o=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1));return o||"Could not resolve URI: "+t}catch(i){return String(i)}}}class tm{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const r of t.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(t.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var t,r;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const i=(r=(t=this.textDocuments)===null||t===void 0?void 0:t.get(e))===null||r===void 0?void 0:r.languageId;if(i!==void 0){const o=this.languageIdMap.get(i);if(o)return o}const s=Ye.extname(e),a=this.fileExtensionMap.get(s);if(!a)throw i?new Error(`The service registry contains no services for the extension '${s}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${s}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Nn(n){return{code:n}}var Jr;(function(n){n.all=["fast","slow","built-in"]})(Jr||(Jr={}));class nm{constructor(e){this.entries=new Xr,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const l={check:this.wrapValidationException(o,t),category:r};this.addEntry(i,l)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:r};this.addEntry(i,o)}else Un()}}wrapValidationException(e,t){return async(r,i,s)=>{await this.handleException(()=>e.call(t,r,i,s),"An error occurred during validation",i,r)}}async handleException(e,t,r,i){try{await e()}catch(s){if(fi(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);r("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=J(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(i=>t.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(i,s,a,o)=>{await this.handleException(()=>e.call(r,i,s,a,o),t,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class rm{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=B.CancellationToken.None){const i=e.parseResult,s=[];if(await ge(r),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Se.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Se.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===Se.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,r))}catch(a){if(fi(a))throw a;console.error("An error occurred during validation:",a)}return await ge(r),s}processLexingErrors(e,t,r){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const l of o){const u=(a=l.severity)!==null&&a!==void 0?a:"error",c={severity:Li(u),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:sm(u),source:this.getSource()};t.push(c)}}processParsingErrors(e,t,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=ji(i.token);if(s){const a={severity:Li("error"),range:s,message:i.message,data:Nn(Se.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,r){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:Se.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,r=B.CancellationToken.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await this.validateAstBefore(e,t,s,r),await this.validateAstNodes(e,t,s,r),await this.validateAstAfter(e,t,s,r),i}async validateAstBefore(e,t,r,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await ge(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,r,i=B.CancellationToken.None){await Promise.all(Et(e).map(async s=>{await ge(i);const a=this.validationRegistry.getChecks(s.$type,t.categories);for(const o of a)await o(s,r,i)}))}async validateAstAfter(e,t,r,i=B.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await ge(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,r){return{message:t,range:im(r),severity:Li(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function im(n){if(n.range)return n.range;let e;return typeof n.property=="string"?e=Al(n.node.$cstNode,n.property,n.index):typeof n.keyword=="string"&&(e=md(n.node.$cstNode,n.keyword,n.index)),e??(e=n.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Li(n){switch(n){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+n)}}function sm(n){switch(n){case"error":return Nn(Se.LexingError);case"warning":return Nn(Se.LexingWarning);case"info":return Nn(Se.LexingInfo);case"hint":return Nn(Se.LexingHint);default:throw new Error("Invalid diagnostic severity: "+n)}}var Se;(function(n){n.LexingError="lexing-error",n.LexingWarning="lexing-warning",n.LexingInfo="lexing-info",n.LexingHint="lexing-hint",n.ParsingError="parsing-error",n.LinkingError="linking-error"})(Se||(Se={}));class am{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){const i=r??He(e);t??(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=Lr((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:Lr(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class om{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=B.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of Et(i))await ge(t),yl(s).filter(a=>!mr(a)).forEach(a=>{const o=this.createDescription(a);o&&r.push(o)});return r}createDescription(e){const t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;const i=He(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Lr(r),local:Ye.equals(t.documentUri,i)}}}class lm{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;const a=s.indexOf(this.indexSeparator);if(a>0){const o=s.substring(0,a),l=parseInt(s.substring(a+1)),u=i[o];return u?.[l]}return i[s]},e)}}var um=Nu();class cm{constructor(e){this._ready=new qs,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new um.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=(r=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const r=e.settings[t];this.updateSectionConfiguration(t,r),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:r})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var On;(function(n){function e(t){return{dispose:async()=>await t()}}n.create=e})(On||(On={}));class dm{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Xr,this.documentPhaseListeners=new Xr,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=G.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=B.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===G.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=G.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),u=(i=l?.result)===null||i===void 0?void 0:i.validationChecks;if(u){const d=((s=t.validation.categories)!==null&&s!==void 0?s:Jr.all).filter(h=>!u.includes(h));d.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:d})},result:l.result}),a.state=G.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=G.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=B.CancellationToken.None){this.currentState=G.Changed;for(const a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=G.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}const i=J(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,G.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await ge(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.state<G.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t<r;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;t<r&&([e[t],e[r]]=[e[r],e[t]])}return e}hasTextDocument(e){var t;return!!(!((t=this.textDocuments)===null||t===void 0)&&t.get(e.uri))}shouldRelink(e,t){return e.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),On.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,G.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,G.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,G.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,G.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,G.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,G.Validated,r,s=>this.validate(s,r));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s?.result})}}async runCancelable(e,t,r,i){const s=e.filter(o=>o.state<t);for(const o of s)await ge(r),await i(o),o.state=t,await this.notifyDocumentPhase(o,t,r);const a=e.filter(o=>o.state===t);await this.notifyBuildPhase(a,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),On.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),On.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r??(r=B.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(Yr):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const u=this.langiumDocuments.getDocument(i);s(u?.uri)}else s(void 0)}),l=r.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(Yr)})})}async notifyDocumentPhase(e,t,r){const s=this.documentPhaseListeners.get(t).slice();for(const a of s)try{await a(e,r)}catch(o){if(!fi(o))throw o}}async notifyBuildPhase(e,t,r){if(e.length===0)return;const s=this.buildPhaseListeners.get(t).slice();for(const a of s)await ge(r),await a(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const u=this.buildState.get(e.uri.toString());if(u){(r=u.result)!==null&&r!==void 0||(u.result={});const c=(i=o?.categories)!==null&&i!==void 0?i:Jr.all;u.result.validationChecks?u.result.validationChecks.push(...c):u.result.validationChecks=[...c]}}getBuildOptions(e){var t,r;return(r=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&r!==void 0?r:{}}}class fm{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Xp,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=He(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{Ye.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),J(i)}allElements(e,t){let r=J(this.symbolIndex.keys());return t&&(r=r.filter(i=>!t||t.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(o=>this.astReflection.isSubtype(o.type,t))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=B.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=B.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}}class hm{constructor(e){this.initialBuildOptions={},this._ready=new qs,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],t)})}async initializeWorkspace(e,t=B.CancellationToken.None){const r=await this.performStartup(e);await ge(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return ft.parse(e.uri)}async traverseFolder(e,t,r,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,r)){if(a.isDirectory)await this.traverseFolder(e,a.uri,r,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,r){const i=Ye.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=Ye.extname(t.uri);return r.includes(s)}return!1}}class pm{buildUnexpectedCharactersMessage(e,t,r,i,s){return Qi.buildUnexpectedCharactersMessage(e,t,r,i,s)}buildUnableToPopLexerModeMessage(e){return Qi.buildUnableToPopLexerModeMessage(e)}}const mm={mode:"full"};class gm{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const r=Wo(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new oe(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=mm){var r,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(r=a.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(Wo(e))return e;const t=Ou(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function ym(n){return Array.isArray(n)&&(n.length===0||"name"in n[0])}function Ou(n){return n&&"modes"in n&&"defaultMode"in n}function Wo(n){return!ym(n)&&!Ou(n)}function Tm(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=P.create(0,0));const s=Pu(n),a=Ys(r),o=Em({lines:s,position:i,options:a});return Sm({index:0,tokens:o,position:i})}function Rm(n,e){const t=Ys(e),r=Pu(n);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],a=t.start,o=t.end;return!!a?.exec(i)&&!!o?.exec(s)}function Pu(n){let e="";return typeof n=="string"?e=n:e=n.text,e.split(nd)}const Ho=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,vm=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function Em(n){var e,t,r;const i=[];let s=n.position.line,a=n.position.character;for(let o=0;o<n.lines.length;o++){const l=o===0,u=o===n.lines.length-1;let c=n.lines[o],d=0;if(l&&n.options.start){const f=(e=n.options.start)===null||e===void 0?void 0:e.exec(c);f&&(d=f.index+f[0].length)}else{const f=(t=n.options.line)===null||t===void 0?void 0:t.exec(c);f&&(d=f.index+f[0].length)}if(u){const f=(r=n.options.end)===null||r===void 0?void 0:r.exec(c);f&&(c=c.substring(0,f.index))}if(c=c.substring(0,xm(c)),$s(c,d)>=c.length){if(i.length>0){const f=P.create(s,a);i.push({type:"break",content:"",range:O.create(f,f)})}}else{Ho.lastIndex=d;const f=Ho.exec(c);if(f){const y=f[0],T=f[1],k=P.create(s,a+d),v=P.create(s,a+d+y.length);i.push({type:"tag",content:T,range:O.create(k,v)}),d+=y.length,d=$s(c,d)}if(d<c.length){const y=c.substring(d),T=Array.from(y.matchAll(vm));i.push(...Am(T,y,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function Am(n,e,t,r){const i=[];if(n.length===0){const s=P.create(t,r),a=P.create(t,r+e.length);i.push({type:"text",content:e,range:O.create(s,a)})}else{let s=0;for(const o of n){const l=o.index,u=e.substring(s,l);u.length>0&&i.push({type:"text",content:e.substring(s,l),range:O.create(P.create(t,s+r),P.create(t,l+r))});let c=u.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:O.create(P.create(t,s+c+r),P.create(t,s+c+d.length+r))}),c+=d.length,o.length===4){c+=o[2].length;const h=o[3];i.push({type:"text",content:h,range:O.create(P.create(t,s+c+r),P.create(t,s+c+h.length+r))})}else i.push({type:"text",content:"",range:O.create(P.create(t,s+c+r),P.create(t,s+c+r))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:O.create(P.create(t,s+r),P.create(t,s+r+a.length))})}return i}const km=/\S/,$m=/\s*$/;function $s(n,e){const t=n.substring(e).match(km);return t?e+t.index:n.length}function xm(n){const e=n.match($m);if(e&&typeof e.index=="number")return e.index}function Sm(n){var e,t,r,i;const s=P.create(n.position.line,n.position.character);if(n.tokens.length===0)return new jo([],O.create(s,s));const a=[];for(;n.index<n.tokens.length;){const u=Im(n,a[a.length-1]);u&&a.push(u)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(i=(r=a[a.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new jo(a,O.create(o,l))}function Im(n,e){const t=n.tokens[n.index];if(t.type==="tag")return Du(n,!1);if(t.type==="text"||t.type==="inline-tag")return Mu(n);Cm(t,e),n.index++}function Cm(n,e){if(e){const t=new Gu("",n.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function Mu(n){let e=n.tokens[n.index];const t=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(Nm(n)),r=e,e=n.tokens[n.index];return new xs(i,O.create(t.range.start,r.range.end))}function Nm(n){return n.tokens[n.index].type==="inline-tag"?Du(n,!0):Fu(n)}function Du(n,e){const t=n.tokens[n.index++],r=t.content.substring(1),i=n.tokens[n.index];if(i?.type==="text")if(e){const s=Fu(n);return new bi(r,new xs([s],s.range),e,O.create(t.range.start,s.range.end))}else{const s=Mu(n);return new bi(r,s,e,O.create(t.range.start,s.range.end))}else{const s=t.range;return new bi(r,new xs([],s),e,s)}}function Fu(n){const e=n.tokens[n.index++];return new Gu(e.content,e.range)}function Ys(n){if(!n)return Ys({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:r}=n;return{start:_i(e,!0),end:_i(t,!1),line:_i(r,!0)}}function _i(n,e){if(typeof n=="string"||typeof n=="object"){const t=typeof n=="string"?ii(n):n.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return n}class jo{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const t of this.elements)if(e.length===0)e=t.toString();else{const r=t.toString();e+=zo(e)+r}return e.trim()}toMarkdown(e){let t="";for(const r of this.elements)if(t.length===0)t=r.toMarkdown(e);else{const i=r.toMarkdown(e);t+=zo(t)+i}return t.trim()}}class bi{constructor(e,t,r,i){this.name=e,this.content=t,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}
118
+ ${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,r;return(r=(t=e?.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const s=wm(this.name,t,e??{});if(typeof s=="string")return s}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} — ${t}`:this.content.inlines.length>1&&(i=`${i}
119
+ ${t}`),this.inline?`{${i}}`:i}}function wm(n,e,t){var r,i;if(n==="linkplain"||n==="linkcode"||n==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const l=$s(e,s);a=e.substring(l),e=e.substring(0,s)}return(n==="linkcode"||n==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(r=t.renderLink)===null||r===void 0?void 0:r.call(t,e,a))!==null&&i!==void 0?i:Lm(e,a)}}function Lm(n,e){try{return ft.parse(n,!0),`[${e}](${n})`}catch{return n}}class xs{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const r=this.inlines[t],i=this.inlines[t+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
120
120
  `)}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){const i=this.inlines[r],s=this.inlines[r+1];t+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(t+=`
121
- `)}return t}}class Uu{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function qo(n){return n.endsWith(`
121
+ `)}return t}}class Gu{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function zo(n){return n.endsWith(`
122
122
  `)?`
123
123
  `:`
124
124
 
125
- `}class bm{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&vm(t))return Rm(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,t,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const i=je(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}}class Om{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return em(e)?e.$comment:(t=bc(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class Pm{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Mm{constructor(){this.previousTokenSource=new B.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=Up();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=B.CancellationToken.None){const i=new Ys,s={action:t,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));r.resolve(s)}catch(s){hi(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Dm{constructor(e){this.grammarElementIdMap=new Vo,this.tokenTypeIdMap=new Vo,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(t=>Object.assign(Object.assign({},t),{message:t.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,r=new Map;for(const i of At(e))t.set(i,{});if(e.$cstNode)for(const i of ji(e.$cstNode))r.set(i,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ne(o)?a.push(this.dehydrateAstNode(o,t)):Oe(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ne(s)?r[i]=this.dehydrateAstNode(s,t):Oe(s)?r[i]=this.dehydrateReference(s,t):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,t){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){const r=t.cstNodes.get(e);return cl(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),Dn(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):ul(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){const t=new Map,r=new Map;for(const s of At(e))t.set(s,{});let i;if(e.$cstNode)for(const s of ji(e.$cstNode)){let a;"fullText"in s?(a=new Ru(s.fullText),i=a):"content"in s?a=new zs:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(r.set(s,a),a.root=i)}return{astNodes:t,cstNodes:r}}hydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ne(o)?a.push(this.setParent(this.hydrateAstNode(o,t),r)):Oe(o)?a.push(this.hydrateReference(o,r,i,t)):a.push(o)}else ne(s)?r[i]=this.setParent(this.hydrateAstNode(s,t),r):Oe(s)?r[i]=this.hydrateReference(s,r,i,t):s!==void 0&&(r[i]=s);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,i){return this.linker.buildReference(t,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){const i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),Dn(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,u=e.hidden;return new vs(r,i,{start:{line:s,character:a},end:{line:o,character:l}},t,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of At(this.grammar))Pc(t)&&this.grammarElementIdMap.set(t,e++)}}function Ze(n){return{documentation:{CommentProvider:e=>new Om(e),DocumentationProvider:e=>new bm(e)},parser:{AsyncParser:e=>new Pm(e),GrammarConfig:e=>Sd(e),LangiumParser:e=>Op(e),CompletionParser:e=>bp(e),ValueConverter:()=>new Cu,TokenBuilder:()=>new Iu,Lexer:e=>new ym(e),ParserErrorMessageProvider:()=>new Au,LexerErrorMessageProvider:()=>new mm},workspace:{AstNodeLocator:()=>new um,AstNodeDescriptionProvider:e=>new om(e),ReferenceDescriptionProvider:e=>new lm(e)},references:{Linker:e=>new Wp(e),NameProvider:()=>new jp,ScopeProvider:e=>new Zp(e),ScopeComputation:e=>new qp(e),References:e=>new zp(e)},serializer:{Hydrator:e=>new Dm(e),JsonSerializer:e=>new tm(e)},validation:{DocumentValidator:e=>new im(e),ValidationRegistry:e=>new rm(e)},shared:()=>n.shared}}function et(n){return{ServiceRegistry:e=>new nm(e),workspace:{LangiumDocuments:e=>new Kp(e),LangiumDocumentFactory:e=>new Vp(e),DocumentBuilder:e=>new fm(e),IndexManager:e=>new hm(e),WorkspaceManager:e=>new pm(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new Mm,ConfigurationProvider:e=>new dm(e)}}}var Yo;(function(n){n.merge=(e,t)=>Zr(Zr({},e),t)})(Yo||(Yo={}));function re(n,e,t,r,i,s,a,o,l){const u=[n,e,t,r,i,s,a,o,l].reduce(Zr,{});return Bu(u)}const Fm=Symbol("isProxy");function Bu(n,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===Fm?!0:Jo(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>(Jo(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Object.getOwnPropertyNames(n)]});return t}const Xo=Symbol();function Jo(n,e,t,r){if(e in n){if(n[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:n[e]});if(n[e]===Xo)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return n[e]}else if(e in t){const i=t[e];n[e]=Xo;try{n[e]=typeof i=="function"?i(r):Bu(i,r)}catch(s){throw n[e]=s instanceof Error?s:void 0,s}return n[e]}else return}function Zr(n,e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const i=n[t];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?n[t]=Zr(i,r):n[t]=r}}return n}class Gm{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const tt={fileSystemProvider:()=>new Gm},Um={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Bm={AstReflection:()=>new yl};function Vm(){const n=re(et(tt),Bm),e=re(Ze({shared:n}),Um);return n.ServiceRegistry.register(e),e}function gt(n){var e;const t=Vm(),r=t.serializer.JsonSerializer.deserialize(n);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,ht.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Km=Object.defineProperty,A=(n,e)=>Km(n,"name",{value:e,configurable:!0}),Qo="Statement",$r="Architecture";function Wm(n){return Le.isInstance(n,$r)}A(Wm,"isArchitecture");var ur="Axis",Ln="Branch";function Hm(n){return Le.isInstance(n,Ln)}A(Hm,"isBranch");var cr="Checkout",dr="CherryPicking",Pi="ClassDefStatement",_n="Commit";function jm(n){return Le.isInstance(n,_n)}A(jm,"isCommit");var Mi="Curve",Di="Edge",Fi="Entry",bn="GitGraph";function zm(n){return Le.isInstance(n,bn)}A(zm,"isGitGraph");var Gi="Group",xr="Info";function qm(n){return Le.isInstance(n,xr)}A(qm,"isInfo");var fr="Item",Ui="Junction",On="Merge";function Ym(n){return Le.isInstance(n,On)}A(Ym,"isMerge");var Bi="Option",Sr="Packet";function Xm(n){return Le.isInstance(n,Sr)}A(Xm,"isPacket");var Ir="PacketBlock";function Jm(n){return Le.isInstance(n,Ir)}A(Jm,"isPacketBlock");var Cr="Pie";function Qm(n){return Le.isInstance(n,Cr)}A(Qm,"isPie");var Nr="PieSection";function Zm(n){return Le.isInstance(n,Nr)}A(Zm,"isPieSection");var Vi="Radar",Ki="Service",wr="Treemap";function eg(n){return Le.isInstance(n,wr)}A(eg,"isTreemap");var Wi="TreemapRow",hr="Direction",pr="Leaf",mr="Section",$t,Vu=($t=class extends ll{getAllTypes(){return[$r,ur,Ln,cr,dr,Pi,_n,Mi,hr,Di,Fi,bn,Gi,xr,fr,Ui,pr,On,Bi,Sr,Ir,Cr,Nr,Vi,mr,Ki,Qo,wr,Wi]}computeIsSubtype(e,t){switch(e){case Ln:case cr:case dr:case _n:case On:return this.isSubtype(Qo,t);case hr:return this.isSubtype(bn,t);case pr:case mr:return this.isSubtype(fr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if(t==="Entry:axis")return ur;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case $r:return{name:$r,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case ur:return{name:ur,properties:[{name:"label"},{name:"name"}]};case Ln:return{name:Ln,properties:[{name:"name"},{name:"order"}]};case cr:return{name:cr,properties:[{name:"branch"}]};case dr:return{name:dr,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Pi:return{name:Pi,properties:[{name:"className"},{name:"styleText"}]};case _n:return{name:_n,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Mi:return{name:Mi,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Di:return{name:Di,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 Fi:return{name:Fi,properties:[{name:"axis"},{name:"value"}]};case bn:return{name:bn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case Gi:return{name:Gi,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case xr:return{name:xr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case fr:return{name:fr,properties:[{name:"classSelector"},{name:"name"}]};case Ui:return{name:Ui,properties:[{name:"id"},{name:"in"}]};case On:return{name:On,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case Bi:return{name:Bi,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case Sr:return{name:Sr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case Ir:return{name:Ir,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case Cr:return{name:Cr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case Nr:return{name:Nr,properties:[{name:"label"},{name:"value"}]};case Vi:return{name:Vi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case Ki:return{name:Ki,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case wr:return{name:wr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Wi:return{name:Wi,properties:[{name:"indent"},{name:"item"}]};case hr:return{name:hr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case pr:return{name:pr,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case mr:return{name:mr,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},A($t,"MermaidAstReflection"),$t),Le=new Vu,Zo,tg=A(()=>Zo??(Zo=gt(`{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"InfoGrammar"),el,ng=A(()=>el??(el=gt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),tl,rg=A(()=>tl??(tl=gt(`{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PieGrammar"),nl,ig=A(()=>nl??(nl=gt(`{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"ArchitectureGrammar"),rl,sg=A(()=>rl??(rl=gt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),il,ag=A(()=>il??(il=gt(`{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),sl,og=A(()=>sl??(sl=gt(`{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammar"),lg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ug={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},cg={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},dg={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},fg={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},hg={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},pg={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},yt={AstReflection:A(()=>new Vu,"AstReflection")},mg={Grammar:A(()=>tg(),"Grammar"),LanguageMetaData:A(()=>lg,"LanguageMetaData"),parser:{}},gg={Grammar:A(()=>ng(),"Grammar"),LanguageMetaData:A(()=>ug,"LanguageMetaData"),parser:{}},yg={Grammar:A(()=>rg(),"Grammar"),LanguageMetaData:A(()=>cg,"LanguageMetaData"),parser:{}},Tg={Grammar:A(()=>ig(),"Grammar"),LanguageMetaData:A(()=>dg,"LanguageMetaData"),parser:{}},Rg={Grammar:A(()=>sg(),"Grammar"),LanguageMetaData:A(()=>fg,"LanguageMetaData"),parser:{}},vg={Grammar:A(()=>ag(),"Grammar"),LanguageMetaData:A(()=>hg,"LanguageMetaData"),parser:{}},Eg={Grammar:A(()=>og(),"Grammar"),LanguageMetaData:A(()=>pg,"LanguageMetaData"),parser:{}},Ag=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,kg=/accTitle[\t ]*:([^\n\r]*)/,$g=/title([\t ][^\n\r]*|)/,xg={ACC_DESCR:Ag,ACC_TITLE:kg,TITLE:$g},xt,pi=(xt=class extends Cu{runConverter(e,t,r){let i=this.runCommonConverter(e,t,r);return i===void 0&&(i=this.runCustomConverter(e,t,r)),i===void 0?super.runConverter(e,t,r):i}runCommonConverter(e,t,r){const i=xg[e.name];if(i===void 0)return;const s=i.exec(t);if(s!==null){if(s[1]!==void 0)return s[1].trim().replace(/[\t ]{2,}/gm," ");if(s[2]!==void 0)return s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
126
- `)}}},A(xt,"AbstractMermaidValueConverter"),xt),St,mi=(St=class extends pi{runCustomConverter(e,t,r){}},A(St,"CommonValueConverter"),St),It,nt=(It=class extends Iu{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){const i=super.buildKeywordTokens(e,t,r);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},A(It,"AbstractMermaidTokenBuilder"),It),Ct;Ct=class extends nt{},A(Ct,"CommonTokenBuilder");var Nt,Sg=(Nt=class extends nt{constructor(){super(["gitGraph"])}},A(Nt,"GitGraphTokenBuilder"),Nt),Ku={parser:{TokenBuilder:A(()=>new Sg,"TokenBuilder"),ValueConverter:A(()=>new mi,"ValueConverter")}};function Wu(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),Rg,Ku);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}A(Wu,"createGitGraphServices");var wt,Ig=(wt=class extends nt{constructor(){super(["info","showInfo"])}},A(wt,"InfoTokenBuilder"),wt),Hu={parser:{TokenBuilder:A(()=>new Ig,"TokenBuilder"),ValueConverter:A(()=>new mi,"ValueConverter")}};function ju(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),mg,Hu);return e.ServiceRegistry.register(t),{shared:e,Info:t}}A(ju,"createInfoServices");var Lt,Cg=(Lt=class extends nt{constructor(){super(["packet"])}},A(Lt,"PacketTokenBuilder"),Lt),zu={parser:{TokenBuilder:A(()=>new Cg,"TokenBuilder"),ValueConverter:A(()=>new mi,"ValueConverter")}};function qu(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),gg,zu);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}A(qu,"createPacketServices");var _t,Ng=(_t=class extends nt{constructor(){super(["pie","showData"])}},A(_t,"PieTokenBuilder"),_t),bt,wg=(bt=class extends pi{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},A(bt,"PieValueConverter"),bt),Yu={parser:{TokenBuilder:A(()=>new Ng,"TokenBuilder"),ValueConverter:A(()=>new wg,"ValueConverter")}};function Xu(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),yg,Yu);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}A(Xu,"createPieServices");var Ot,Lg=(Ot=class extends nt{constructor(){super(["architecture"])}},A(Ot,"ArchitectureTokenBuilder"),Ot),Pt,_g=(Pt=class extends pi{runCustomConverter(e,t,r){if(e.name==="ARCH_ICON")return t.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return t.replace(/["()]/g,"");if(e.name==="ARCH_TITLE")return t.replace(/[[\]]/g,"").trim()}},A(Pt,"ArchitectureValueConverter"),Pt),Ju={parser:{TokenBuilder:A(()=>new Lg,"TokenBuilder"),ValueConverter:A(()=>new _g,"ValueConverter")}};function Qu(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),Tg,Ju);return e.ServiceRegistry.register(t),{shared:e,Architecture:t}}A(Qu,"createArchitectureServices");var Mt,bg=(Mt=class extends nt{constructor(){super(["radar-beta"])}},A(Mt,"RadarTokenBuilder"),Mt),Zu={parser:{TokenBuilder:A(()=>new bg,"TokenBuilder"),ValueConverter:A(()=>new mi,"ValueConverter")}};function ec(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),vg,Zu);return e.ServiceRegistry.register(t),{shared:e,Radar:t}}A(ec,"createRadarServices");var Dt,Og=(Dt=class extends nt{constructor(){super(["treemap"])}},A(Dt,"TreemapTokenBuilder"),Dt),Pg=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Ft,Mg=(Ft=class extends pi{runCustomConverter(e,t,r){if(e.name==="NUMBER2")return parseFloat(t.replace(/,/g,""));if(e.name==="SEPARATOR")return t.substring(1,t.length-1);if(e.name==="STRING2")return t.substring(1,t.length-1);if(e.name==="INDENTATION")return t.length;if(e.name==="ClassDef"){if(typeof t!="string")return t;const i=Pg.exec(t);if(i)return{$type:"ClassDefStatement",className:i[1],styleText:i[2]||void 0}}}},A(Ft,"TreemapValueConverter"),Ft);function tc(n){const e=n.validation.TreemapValidator,t=n.validation.ValidationRegistry;if(t){const r={Treemap:e.checkSingleRoot.bind(e)};t.register(r,e)}}A(tc,"registerValidationChecks");var Gt,Dg=(Gt=class{checkSingleRoot(e,t){let r;for(const i of e.TreemapRows)i.item&&(r===void 0&&i.indent===void 0?r=0:i.indent===void 0?t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}):r!==void 0&&r>=parseInt(i.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}))}},A(Gt,"TreemapValidator"),Gt),nc={parser:{TokenBuilder:A(()=>new Og,"TokenBuilder"),ValueConverter:A(()=>new Mg,"ValueConverter")},validation:{TreemapValidator:A(()=>new Dg,"TreemapValidator")}};function rc(n=tt){const e=re(et(n),yt),t=re(Ze({shared:e}),Eg,nc);return e.ServiceRegistry.register(t),tc(t),{shared:e,Treemap:t}}A(rc,"createTreemapServices");var Ge={},Fg={info:A(async()=>{const{createInfoServices:n}=await Promise.resolve().then(()=>require("./info-NVLQJR56-CHsZUaj2.cjs")),e=n().Info.parser.LangiumParser;Ge.info=e},"info"),packet:A(async()=>{const{createPacketServices:n}=await Promise.resolve().then(()=>require("./packet-BFZMPI3H-DywTQVQ_.cjs")),e=n().Packet.parser.LangiumParser;Ge.packet=e},"packet"),pie:A(async()=>{const{createPieServices:n}=await Promise.resolve().then(()=>require("./pie-7BOR55EZ-ChNKQdbq.cjs")),e=n().Pie.parser.LangiumParser;Ge.pie=e},"pie"),architecture:A(async()=>{const{createArchitectureServices:n}=await Promise.resolve().then(()=>require("./architecture-U656AL7Q-CJqkeE6i.cjs")),e=n().Architecture.parser.LangiumParser;Ge.architecture=e},"architecture"),gitGraph:A(async()=>{const{createGitGraphServices:n}=await Promise.resolve().then(()=>require("./gitGraph-F6HP7TQM-4Bs7cINB.cjs")),e=n().GitGraph.parser.LangiumParser;Ge.gitGraph=e},"gitGraph"),radar:A(async()=>{const{createRadarServices:n}=await Promise.resolve().then(()=>require("./radar-NHE76QYJ-DZuF23ek.cjs")),e=n().Radar.parser.LangiumParser;Ge.radar=e},"radar"),treemap:A(async()=>{const{createTreemapServices:n}=await Promise.resolve().then(()=>require("./treemap-KMMF4GRG-C78aS1uB.cjs")),e=n().Treemap.parser.LangiumParser;Ge.treemap=e},"treemap")};async function ic(n,e){const t=Fg[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);Ge[n]||await t();const i=Ge[n].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new Gg(i);return i.value}A(ic,"parse");var Ut,Gg=(Ut=class extends Error{constructor(e){const t=e.lexerErrors.map(i=>i.message).join(`
125
+ `}class _m{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&Rm(t))return Tm(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,t,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const i=He(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}}class bm{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return Zp(e)?e.$comment:(t=_c(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class Om{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Pm{constructor(){this.previousTokenSource=new B.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=Gp();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=B.CancellationToken.None){const i=new qs,s={action:t,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));r.resolve(s)}catch(s){fi(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Mm{constructor(e){this.grammarElementIdMap=new Bo,this.tokenTypeIdMap=new Bo,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(t=>Object.assign(Object.assign({},t),{message:t.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,r=new Map;for(const i of Et(e))t.set(i,{});if(e.$cstNode)for(const i of Hi(e.$cstNode))r.set(i,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ne(o)?a.push(this.dehydrateAstNode(o,t)):be(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ne(s)?r[i]=this.dehydrateAstNode(s,t):be(s)?r[i]=this.dehydrateReference(s,t):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,t){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){const r=t.cstNodes.get(e);return ul(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),Mn(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):ll(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){const t=new Map,r=new Map;for(const s of Et(e))t.set(s,{});let i;if(e.$cstNode)for(const s of Hi(e.$cstNode)){let a;"fullText"in s?(a=new Tu(s.fullText),i=a):"content"in s?a=new js:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(r.set(s,a),a.root=i)}return{astNodes:t,cstNodes:r}}hydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ne(o)?a.push(this.setParent(this.hydrateAstNode(o,t),r)):be(o)?a.push(this.hydrateReference(o,r,i,t)):a.push(o)}else ne(s)?r[i]=this.setParent(this.hydrateAstNode(s,t),r):be(s)?r[i]=this.hydrateReference(s,r,i,t):s!==void 0&&(r[i]=s);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,i){return this.linker.buildReference(t,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){const i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),Mn(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,u=e.hidden;return new Rs(r,i,{start:{line:s,character:a},end:{line:o,character:l}},t,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of Et(this.grammar))Oc(t)&&this.grammarElementIdMap.set(t,e++)}}function Qe(n){return{documentation:{CommentProvider:e=>new bm(e),DocumentationProvider:e=>new _m(e)},parser:{AsyncParser:e=>new Om(e),GrammarConfig:e=>xd(e),LangiumParser:e=>bp(e),CompletionParser:e=>_p(e),ValueConverter:()=>new Iu,TokenBuilder:()=>new Su,Lexer:e=>new gm(e),ParserErrorMessageProvider:()=>new Eu,LexerErrorMessageProvider:()=>new pm},workspace:{AstNodeLocator:()=>new lm,AstNodeDescriptionProvider:e=>new am(e),ReferenceDescriptionProvider:e=>new om(e)},references:{Linker:e=>new Kp(e),NameProvider:()=>new Hp,ScopeProvider:e=>new Qp(e),ScopeComputation:e=>new zp(e),References:e=>new jp(e)},serializer:{Hydrator:e=>new Mm(e),JsonSerializer:e=>new em(e)},validation:{DocumentValidator:e=>new rm(e),ValidationRegistry:e=>new nm(e)},shared:()=>n.shared}}function Ze(n){return{ServiceRegistry:e=>new tm(e),workspace:{LangiumDocuments:e=>new Vp(e),LangiumDocumentFactory:e=>new Bp(e),DocumentBuilder:e=>new dm(e),IndexManager:e=>new fm(e),WorkspaceManager:e=>new hm(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new Pm,ConfigurationProvider:e=>new cm(e)}}}var qo;(function(n){n.merge=(e,t)=>Qr(Qr({},e),t)})(qo||(qo={}));function re(n,e,t,r,i,s,a,o,l){const u=[n,e,t,r,i,s,a,o,l].reduce(Qr,{});return Uu(u)}const Dm=Symbol("isProxy");function Uu(n,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===Dm?!0:Xo(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>(Xo(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Object.getOwnPropertyNames(n)]});return t}const Yo=Symbol();function Xo(n,e,t,r){if(e in n){if(n[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:n[e]});if(n[e]===Yo)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return n[e]}else if(e in t){const i=t[e];n[e]=Yo;try{n[e]=typeof i=="function"?i(r):Uu(i,r)}catch(s){throw n[e]=s instanceof Error?s:void 0,s}return n[e]}else return}function Qr(n,e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const i=n[t];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?n[t]=Qr(i,r):n[t]=r}}return n}class Fm{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const et={fileSystemProvider:()=>new Fm},Gm={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Um={AstReflection:()=>new gl};function Bm(){const n=re(Ze(et),Um),e=re(Qe({shared:n}),Gm);return n.ServiceRegistry.register(e),e}function mt(n){var e;const t=Bm(),r=t.serializer.JsonSerializer.deserialize(n);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,ft.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Vm=Object.defineProperty,A=(n,e)=>Vm(n,"name",{value:e,configurable:!0}),Jo="Statement",kr="Architecture";function Km(n){return we.isInstance(n,kr)}A(Km,"isArchitecture");var lr="Axis",wn="Branch";function Wm(n){return we.isInstance(n,wn)}A(Wm,"isBranch");var ur="Checkout",cr="CherryPicking",Oi="ClassDefStatement",Ln="Commit";function Hm(n){return we.isInstance(n,Ln)}A(Hm,"isCommit");var Pi="Curve",Mi="Edge",Di="Entry",_n="GitGraph";function jm(n){return we.isInstance(n,_n)}A(jm,"isGitGraph");var Fi="Group",$r="Info";function zm(n){return we.isInstance(n,$r)}A(zm,"isInfo");var dr="Item",Gi="Junction",bn="Merge";function qm(n){return we.isInstance(n,bn)}A(qm,"isMerge");var Ui="Option",xr="Packet";function Ym(n){return we.isInstance(n,xr)}A(Ym,"isPacket");var Sr="PacketBlock";function Xm(n){return we.isInstance(n,Sr)}A(Xm,"isPacketBlock");var Ir="Pie";function Jm(n){return we.isInstance(n,Ir)}A(Jm,"isPie");var Cr="PieSection";function Qm(n){return we.isInstance(n,Cr)}A(Qm,"isPieSection");var Bi="Radar",Vi="Service",Nr="Treemap";function Zm(n){return we.isInstance(n,Nr)}A(Zm,"isTreemap");var Ki="TreemapRow",fr="Direction",hr="Leaf",pr="Section",kt,Bu=(kt=class extends ol{getAllTypes(){return[kr,lr,wn,ur,cr,Oi,Ln,Pi,fr,Mi,Di,_n,Fi,$r,dr,Gi,hr,bn,Ui,xr,Sr,Ir,Cr,Bi,pr,Vi,Jo,Nr,Ki]}computeIsSubtype(e,t){switch(e){case wn:case ur:case cr:case Ln:case bn:return this.isSubtype(Jo,t);case fr:return this.isSubtype(_n,t);case hr:case pr:return this.isSubtype(dr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if(t==="Entry:axis")return lr;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case kr:return{name:kr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case lr:return{name:lr,properties:[{name:"label"},{name:"name"}]};case wn:return{name:wn,properties:[{name:"name"},{name:"order"}]};case ur:return{name:ur,properties:[{name:"branch"}]};case cr:return{name:cr,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"className"},{name:"styleText"}]};case Ln:return{name:Ln,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Mi:return{name:Mi,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 Di:return{name:Di,properties:[{name:"axis"},{name:"value"}]};case _n:return{name:_n,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case Fi:return{name:Fi,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case $r:return{name:$r,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case dr:return{name:dr,properties:[{name:"classSelector"},{name:"name"}]};case Gi:return{name:Gi,properties:[{name:"id"},{name:"in"}]};case bn:return{name:bn,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case Ui:return{name:Ui,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case xr:return{name:xr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case Sr:return{name:Sr,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case Ir:return{name:Ir,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case Cr:return{name:Cr,properties:[{name:"label"},{name:"value"}]};case Bi:return{name:Bi,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case Vi:return{name:Vi,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Nr:return{name:Nr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Ki:return{name:Ki,properties:[{name:"indent"},{name:"item"}]};case fr:return{name:fr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case hr:return{name:hr,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case pr:return{name:pr,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},A(kt,"MermaidAstReflection"),kt),we=new Bu,Qo,eg=A(()=>Qo??(Qo=mt(`{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"InfoGrammar"),Zo,tg=A(()=>Zo??(Zo=mt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),el,ng=A(()=>el??(el=mt(`{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PieGrammar"),tl,rg=A(()=>tl??(tl=mt(`{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"ArchitectureGrammar"),nl,ig=A(()=>nl??(nl=mt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),rl,sg=A(()=>rl??(rl=mt(`{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),il,ag=A(()=>il??(il=mt(`{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammar"),og={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},lg={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ug={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},cg={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},dg={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},fg={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},hg={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},gt={AstReflection:A(()=>new Bu,"AstReflection")},pg={Grammar:A(()=>eg(),"Grammar"),LanguageMetaData:A(()=>og,"LanguageMetaData"),parser:{}},mg={Grammar:A(()=>tg(),"Grammar"),LanguageMetaData:A(()=>lg,"LanguageMetaData"),parser:{}},gg={Grammar:A(()=>ng(),"Grammar"),LanguageMetaData:A(()=>ug,"LanguageMetaData"),parser:{}},yg={Grammar:A(()=>rg(),"Grammar"),LanguageMetaData:A(()=>cg,"LanguageMetaData"),parser:{}},Tg={Grammar:A(()=>ig(),"Grammar"),LanguageMetaData:A(()=>dg,"LanguageMetaData"),parser:{}},Rg={Grammar:A(()=>sg(),"Grammar"),LanguageMetaData:A(()=>fg,"LanguageMetaData"),parser:{}},vg={Grammar:A(()=>ag(),"Grammar"),LanguageMetaData:A(()=>hg,"LanguageMetaData"),parser:{}},Eg=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,Ag=/accTitle[\t ]*:([^\n\r]*)/,kg=/title([\t ][^\n\r]*|)/,$g={ACC_DESCR:Eg,ACC_TITLE:Ag,TITLE:kg},$t,hi=($t=class extends Iu{runConverter(e,t,r){let i=this.runCommonConverter(e,t,r);return i===void 0&&(i=this.runCustomConverter(e,t,r)),i===void 0?super.runConverter(e,t,r):i}runCommonConverter(e,t,r){const i=$g[e.name];if(i===void 0)return;const s=i.exec(t);if(s!==null){if(s[1]!==void 0)return s[1].trim().replace(/[\t ]{2,}/gm," ");if(s[2]!==void 0)return s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
126
+ `)}}},A($t,"AbstractMermaidValueConverter"),$t),xt,pi=(xt=class extends hi{runCustomConverter(e,t,r){}},A(xt,"CommonValueConverter"),xt),St,tt=(St=class extends Su{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){const i=super.buildKeywordTokens(e,t,r);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},A(St,"AbstractMermaidTokenBuilder"),St),It;It=class extends tt{},A(It,"CommonTokenBuilder");var Ct,xg=(Ct=class extends tt{constructor(){super(["gitGraph"])}},A(Ct,"GitGraphTokenBuilder"),Ct),Vu={parser:{TokenBuilder:A(()=>new xg,"TokenBuilder"),ValueConverter:A(()=>new pi,"ValueConverter")}};function Ku(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),Tg,Vu);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}A(Ku,"createGitGraphServices");var Nt,Sg=(Nt=class extends tt{constructor(){super(["info","showInfo"])}},A(Nt,"InfoTokenBuilder"),Nt),Wu={parser:{TokenBuilder:A(()=>new Sg,"TokenBuilder"),ValueConverter:A(()=>new pi,"ValueConverter")}};function Hu(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),pg,Wu);return e.ServiceRegistry.register(t),{shared:e,Info:t}}A(Hu,"createInfoServices");var wt,Ig=(wt=class extends tt{constructor(){super(["packet"])}},A(wt,"PacketTokenBuilder"),wt),ju={parser:{TokenBuilder:A(()=>new Ig,"TokenBuilder"),ValueConverter:A(()=>new pi,"ValueConverter")}};function zu(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),mg,ju);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}A(zu,"createPacketServices");var Lt,Cg=(Lt=class extends tt{constructor(){super(["pie","showData"])}},A(Lt,"PieTokenBuilder"),Lt),_t,Ng=(_t=class extends hi{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},A(_t,"PieValueConverter"),_t),qu={parser:{TokenBuilder:A(()=>new Cg,"TokenBuilder"),ValueConverter:A(()=>new Ng,"ValueConverter")}};function Yu(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),gg,qu);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}A(Yu,"createPieServices");var bt,wg=(bt=class extends tt{constructor(){super(["architecture"])}},A(bt,"ArchitectureTokenBuilder"),bt),Ot,Lg=(Ot=class extends hi{runCustomConverter(e,t,r){if(e.name==="ARCH_ICON")return t.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return t.replace(/["()]/g,"");if(e.name==="ARCH_TITLE")return t.replace(/[[\]]/g,"").trim()}},A(Ot,"ArchitectureValueConverter"),Ot),Xu={parser:{TokenBuilder:A(()=>new wg,"TokenBuilder"),ValueConverter:A(()=>new Lg,"ValueConverter")}};function Ju(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),yg,Xu);return e.ServiceRegistry.register(t),{shared:e,Architecture:t}}A(Ju,"createArchitectureServices");var Pt,_g=(Pt=class extends tt{constructor(){super(["radar-beta"])}},A(Pt,"RadarTokenBuilder"),Pt),Qu={parser:{TokenBuilder:A(()=>new _g,"TokenBuilder"),ValueConverter:A(()=>new pi,"ValueConverter")}};function Zu(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),Rg,Qu);return e.ServiceRegistry.register(t),{shared:e,Radar:t}}A(Zu,"createRadarServices");var Mt,bg=(Mt=class extends tt{constructor(){super(["treemap"])}},A(Mt,"TreemapTokenBuilder"),Mt),Og=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Dt,Pg=(Dt=class extends hi{runCustomConverter(e,t,r){if(e.name==="NUMBER2")return parseFloat(t.replace(/,/g,""));if(e.name==="SEPARATOR")return t.substring(1,t.length-1);if(e.name==="STRING2")return t.substring(1,t.length-1);if(e.name==="INDENTATION")return t.length;if(e.name==="ClassDef"){if(typeof t!="string")return t;const i=Og.exec(t);if(i)return{$type:"ClassDefStatement",className:i[1],styleText:i[2]||void 0}}}},A(Dt,"TreemapValueConverter"),Dt);function ec(n){const e=n.validation.TreemapValidator,t=n.validation.ValidationRegistry;if(t){const r={Treemap:e.checkSingleRoot.bind(e)};t.register(r,e)}}A(ec,"registerValidationChecks");var Ft,Mg=(Ft=class{checkSingleRoot(e,t){let r;for(const i of e.TreemapRows)i.item&&(r===void 0&&i.indent===void 0?r=0:i.indent===void 0?t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}):r!==void 0&&r>=parseInt(i.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}))}},A(Ft,"TreemapValidator"),Ft),tc={parser:{TokenBuilder:A(()=>new bg,"TokenBuilder"),ValueConverter:A(()=>new Pg,"ValueConverter")},validation:{TreemapValidator:A(()=>new Mg,"TreemapValidator")}};function nc(n=et){const e=re(Ze(n),gt),t=re(Qe({shared:e}),vg,tc);return e.ServiceRegistry.register(t),ec(t),{shared:e,Treemap:t}}A(nc,"createTreemapServices");var Fe={},Dg={info:A(async()=>{const{createInfoServices:n}=await Promise.resolve().then(()=>require("./info-NVLQJR56-BlLr9dLS.cjs")),e=n().Info.parser.LangiumParser;Fe.info=e},"info"),packet:A(async()=>{const{createPacketServices:n}=await Promise.resolve().then(()=>require("./packet-BFZMPI3H-CFs8sQKO.cjs")),e=n().Packet.parser.LangiumParser;Fe.packet=e},"packet"),pie:A(async()=>{const{createPieServices:n}=await Promise.resolve().then(()=>require("./pie-7BOR55EZ-D1z_FiDQ.cjs")),e=n().Pie.parser.LangiumParser;Fe.pie=e},"pie"),architecture:A(async()=>{const{createArchitectureServices:n}=await Promise.resolve().then(()=>require("./architecture-U656AL7Q-BlzcZYj0.cjs")),e=n().Architecture.parser.LangiumParser;Fe.architecture=e},"architecture"),gitGraph:A(async()=>{const{createGitGraphServices:n}=await Promise.resolve().then(()=>require("./gitGraph-F6HP7TQM-DAOdDfOa.cjs")),e=n().GitGraph.parser.LangiumParser;Fe.gitGraph=e},"gitGraph"),radar:A(async()=>{const{createRadarServices:n}=await Promise.resolve().then(()=>require("./radar-NHE76QYJ-buBWFcX8.cjs")),e=n().Radar.parser.LangiumParser;Fe.radar=e},"radar"),treemap:A(async()=>{const{createTreemapServices:n}=await Promise.resolve().then(()=>require("./treemap-KMMF4GRG-B3ovpU-a.cjs")),e=n().Treemap.parser.LangiumParser;Fe.treemap=e},"treemap")};async function rc(n,e){const t=Dg[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);Fe[n]||await t();const i=Fe[n].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new Fg(i);return i.value}A(rc,"parse");var Gt,Fg=(Gt=class extends Error{constructor(e){const t=e.lexerErrors.map(i=>i.message).join(`
127
127
  `),r=e.parserErrors.map(i=>i.message).join(`
128
- `);super(`Parsing failed: ${t} ${r}`),this.result=e}},A(Ut,"MermaidParseError"),Ut);exports.ArchitectureModule=Ju;exports.GitGraphModule=Ku;exports.InfoModule=Hu;exports.PacketModule=zu;exports.PieModule=Yu;exports.RadarModule=Zu;exports.TreemapModule=nc;exports.createArchitectureServices=Qu;exports.createGitGraphServices=Wu;exports.createInfoServices=ju;exports.createPacketServices=qu;exports.createPieServices=Xu;exports.createRadarServices=ec;exports.createTreemapServices=rc;exports.parse=ic;
128
+ `);super(`Parsing failed: ${t} ${r}`),this.result=e}},A(Gt,"MermaidParseError"),Gt);exports.ArchitectureModule=Xu;exports.GitGraphModule=Vu;exports.InfoModule=Wu;exports.PacketModule=ju;exports.PieModule=qu;exports.RadarModule=Qu;exports.TreemapModule=tc;exports.createArchitectureServices=Ju;exports.createGitGraphServices=Ku;exports.createInfoServices=Hu;exports.createPacketServices=zu;exports.createPieServices=Yu;exports.createRadarServices=Zu;exports.createTreemapServices=nc;exports.parse=rc;