likec4 1.57.0 → 1.58.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 (168) hide show
  1. package/__app__/codegen/react.mjs +7 -8
  2. package/__app__/codegen/webcomponent.mjs +70 -881
  3. package/__app__/src/aichat/index.mjs +8 -1
  4. package/__app__/src/chunks/AIChat.mjs +959 -0
  5. package/__app__/src/chunks/DiagramActorProvider.mjs +7638 -0
  6. package/__app__/src/chunks/LikeC4Styles.mjs +1866 -0
  7. package/__app__/src/chunks/Markdown.mjs +146 -0
  8. package/__app__/src/chunks/NavigationPanel.mjs +61 -0
  9. package/__app__/src/chunks/ProjectsOverview.mjs +540 -0
  10. package/__app__/src/chunks/adhoc-editor.mjs +3386 -0
  11. package/__app__/src/chunks/es.mjs +439 -0
  12. package/__app__/src/chunks/hooks.mjs +145 -0
  13. package/__app__/src/chunks/libs/@dagrejs/dagre.mjs +1894 -0
  14. package/__app__/src/chunks/libs/@floating-ui.mjs +2218 -0
  15. package/__app__/src/chunks/libs/@mantine.mjs +12070 -0
  16. package/__app__/src/chunks/libs/@tabler/icons-react.mjs +252 -0
  17. package/__app__/src/chunks/libs/@tanstack-ai.mjs +1768 -0
  18. package/__app__/src/chunks/libs/@tanstack.mjs +2718 -0
  19. package/__app__/src/chunks/libs/@xstate/react.mjs +1982 -0
  20. package/__app__/src/chunks/libs/@xyflow/react.mjs +5256 -0
  21. package/__app__/src/chunks/libs/bezier-js.mjs +1003 -0
  22. package/__app__/src/chunks/libs/d3.mjs +2842 -0
  23. package/__app__/src/chunks/libs/fast-equals.mjs +268 -0
  24. package/__app__/src/chunks/libs/framer.mjs +5872 -0
  25. package/__app__/src/chunks/libs/remeda.mjs +642 -0
  26. package/__app__/src/chunks/libs/zod.mjs +3170 -0
  27. package/__app__/src/chunks/rolldown-runtime.mjs +23 -0
  28. package/__app__/src/chunks/styled-system.mjs +1040 -0
  29. package/__app__/src/fonts.css +1 -1
  30. package/__app__/src/main.mjs +14816 -14
  31. package/__app__/src/style.css +1 -1
  32. package/dist/chunks/enableServer.mjs +1 -1
  33. package/dist/chunks/filenames.mjs +2 -2
  34. package/dist/chunks/index2.d.mts +1877 -734
  35. package/dist/chunks/libs/@chevrotain/gast.mjs +1 -1
  36. package/dist/chunks/libs/@logtape/logtape.mjs +4 -3
  37. package/dist/chunks/libs/chevrotain-allstar.mjs +2 -2
  38. package/dist/chunks/libs/chevrotain.mjs +25 -25
  39. package/dist/chunks/libs/langium.mjs +1 -1
  40. package/dist/chunks/libs/merge-error-cause.mjs +1 -1
  41. package/dist/chunks/libs/pretty-ms.mjs +1 -1
  42. package/dist/chunks/libs/remeda.mjs +1 -1
  43. package/dist/chunks/libs/ufo.mjs +1 -1
  44. package/dist/chunks/libs/unstorage.mjs +1 -1
  45. package/dist/chunks/libs/which.mjs +1 -1
  46. package/dist/chunks/libs/zod.mjs +65 -0
  47. package/dist/chunks/node.mjs +73 -62
  48. package/dist/chunks/{plugin.mjs → vite-plugin.mjs} +41 -41
  49. package/dist/cli/index.mjs +184 -144
  50. package/dist/index.d.mts +1 -1
  51. package/dist/index.mjs +1 -1
  52. package/dist/model/index.d.mts +1 -1
  53. package/dist/vite-plugin/index.mjs +1 -1
  54. package/dist/vite-plugin/internal/index.d.mts +52 -57
  55. package/dist/vite-plugin/internal/index.mjs +946 -1
  56. package/package.json +46 -47
  57. package/react/index.d.mts +92 -23
  58. package/react/index.mjs +44551 -42605
  59. package/__app__/chunks/AIChat2.mjs +0 -2
  60. package/__app__/chunks/DiagramActorProvider.mjs +0 -10
  61. package/__app__/chunks/EmbedPage.mjs +0 -1
  62. package/__app__/chunks/ExportPage.mjs +0 -2
  63. package/__app__/chunks/LikeC4Diagram.mjs +0 -19
  64. package/__app__/chunks/LikeC4Styles.mjs +0 -48
  65. package/__app__/chunks/Markdown.mjs +0 -1
  66. package/__app__/chunks/NavigationPanel.mjs +0 -1
  67. package/__app__/chunks/ViewReact.mjs +0 -1
  68. package/__app__/chunks/adhoc-editor.mjs +0 -1
  69. package/__app__/chunks/aichat.mjs +0 -1
  70. package/__app__/chunks/box.mjs +0 -1
  71. package/__app__/chunks/create-style-context.mjs +0 -1
  72. package/__app__/chunks/css.mjs +0 -1
  73. package/__app__/chunks/factory.mjs +0 -1
  74. package/__app__/chunks/hooks.mjs +0 -1
  75. package/__app__/chunks/hstack.mjs +0 -1
  76. package/__app__/chunks/libs/@dagrejs/dagre.mjs +0 -1
  77. package/__app__/chunks/libs/@floating-ui/core.mjs +0 -1
  78. package/__app__/chunks/libs/@floating-ui/dom.mjs +0 -1
  79. package/__app__/chunks/libs/@floating-ui/react.mjs +0 -1
  80. package/__app__/chunks/libs/@mantine/core.mjs +0 -41
  81. package/__app__/chunks/libs/@mantine/hooks.mjs +0 -1
  82. package/__app__/chunks/libs/@nanostores/react.mjs +0 -1
  83. package/__app__/chunks/libs/@react-hookz/web.mjs +0 -1
  84. package/__app__/chunks/libs/@tabler/icons-react.mjs +0 -358
  85. package/__app__/chunks/libs/@tanstack/ai-client.mjs +0 -2
  86. package/__app__/chunks/libs/@tanstack/ai-react-ui.mjs +0 -1
  87. package/__app__/chunks/libs/@tanstack/ai-react.mjs +0 -1
  88. package/__app__/chunks/libs/@tanstack/ai.mjs +0 -2
  89. package/__app__/chunks/libs/@tanstack/history.mjs +0 -1
  90. package/__app__/chunks/libs/@tanstack/react-router.mjs +0 -3
  91. package/__app__/chunks/libs/@tanstack/router-core.mjs +0 -1
  92. package/__app__/chunks/libs/@xstate/react.mjs +0 -1
  93. package/__app__/chunks/libs/@xstate/store.mjs +0 -1
  94. package/__app__/chunks/libs/@xyflow/react.mjs +0 -7
  95. package/__app__/chunks/libs/@zag-js/anatomy.mjs +0 -1
  96. package/__app__/chunks/libs/@zag-js/collection.mjs +0 -1
  97. package/__app__/chunks/libs/@zag-js/core.mjs +0 -1
  98. package/__app__/chunks/libs/@zag-js/react.mjs +0 -1
  99. package/__app__/chunks/libs/@zag-js/tree-view.mjs +0 -1
  100. package/__app__/chunks/libs/bezier-js.mjs +0 -1
  101. package/__app__/chunks/libs/copy-anything.mjs +0 -1
  102. package/__app__/chunks/libs/d3-path.mjs +0 -1
  103. package/__app__/chunks/libs/d3-shape.mjs +0 -1
  104. package/__app__/chunks/libs/fast-equals.mjs +0 -1
  105. package/__app__/chunks/libs/framer-motion.mjs +0 -9
  106. package/__app__/chunks/libs/html-to-image.mjs +0 -2
  107. package/__app__/chunks/libs/motion-dom.mjs +0 -1
  108. package/__app__/chunks/libs/nanostores.mjs +0 -1
  109. package/__app__/chunks/libs/react-error-boundary.mjs +0 -1
  110. package/__app__/chunks/libs/react-resizable-panels.mjs +0 -1
  111. package/__app__/chunks/libs/remeda.mjs +0 -1
  112. package/__app__/chunks/libs/superjson.mjs +0 -1
  113. package/__app__/chunks/libs/zod.mjs +0 -64
  114. package/__app__/chunks/rolldown-runtime.mjs +0 -1
  115. package/__app__/chunks/styles.css.mjs +0 -1
  116. package/__app__/chunks/txt.mjs +0 -1
  117. package/__app__/chunks/useLikeC4Project.mjs +0 -1
  118. package/__app__/src/pages/AdHocViewEditor.mjs +0 -1
  119. package/__app__/src/pages/EmbedPage.mjs +0 -1
  120. package/__app__/src/pages/ExportPage.mjs +0 -1
  121. package/__app__/src/pages/ProjectsOverview.mjs +0 -1
  122. package/__app__/src/pages/ViewAsD2.mjs +0 -1
  123. package/__app__/src/pages/ViewAsDot.mjs +0 -1
  124. package/__app__/src/pages/ViewAsMmd.mjs +0 -1
  125. package/__app__/src/pages/ViewAsPuml.mjs +0 -1
  126. package/__app__/src/pages/ViewEditor.mjs +0 -1
  127. package/__app__/src/pages/ViewReact.mjs +0 -1
  128. package/dist/chunks/libs/@chevrotain/utils.mjs +0 -1
  129. package/dist/chunks/libs/@hono/mcp.mjs +0 -70
  130. package/dist/chunks/libs/@hono/node-server.mjs +0 -1
  131. package/dist/chunks/libs/@logtape/logtape.d.mts +0 -1023
  132. package/dist/chunks/libs/@modelcontextprotocol/sdk.mjs +0 -12
  133. package/dist/chunks/libs/ajv.mjs +0 -1
  134. package/dist/chunks/libs/ansi-align.mjs +0 -2
  135. package/dist/chunks/libs/ansi-regex.mjs +0 -1
  136. package/dist/chunks/libs/ansi-styles.mjs +0 -1
  137. package/dist/chunks/libs/atomically.mjs +0 -1
  138. package/dist/chunks/libs/boxen.mjs +0 -22
  139. package/dist/chunks/libs/conf.mjs +0 -1
  140. package/dist/chunks/libs/defu.mjs +0 -1
  141. package/dist/chunks/libs/destr.mjs +0 -1
  142. package/dist/chunks/libs/find-up-simple.mjs +0 -1
  143. package/dist/chunks/libs/get-port.mjs +0 -1
  144. package/dist/chunks/libs/hono.mjs +0 -1
  145. package/dist/chunks/libs/is-docker.mjs +0 -1
  146. package/dist/chunks/libs/is-error-instance.mjs +0 -1
  147. package/dist/chunks/libs/is-inside-container.mjs +0 -1
  148. package/dist/chunks/libs/is-plain-obj.mjs +0 -1
  149. package/dist/chunks/libs/isexe.mjs +0 -1
  150. package/dist/chunks/libs/ky.mjs +0 -3
  151. package/dist/chunks/libs/p-debounce.mjs +0 -1
  152. package/dist/chunks/libs/p-limit.mjs +0 -1
  153. package/dist/chunks/libs/p-timeout.mjs +0 -1
  154. package/dist/chunks/libs/package-up.mjs +0 -1
  155. package/dist/chunks/libs/parse-ms.mjs +0 -1
  156. package/dist/chunks/libs/safe-stringify.mjs +0 -1
  157. package/dist/chunks/libs/strip-indent.mjs +0 -1
  158. package/dist/chunks/libs/tinyrainbow.mjs +0 -1
  159. package/dist/chunks/libs/ts-graphviz.mjs +0 -1
  160. package/dist/chunks/libs/unctx.mjs +0 -1
  161. package/dist/chunks/libs/vscode-languageserver.mjs +0 -1
  162. package/dist/chunks/libs/word-wrap.mjs +0 -12
  163. package/dist/vite-plugin/internal/chunks/libs/@nanostores/react.mjs +0 -1
  164. package/dist/vite-plugin/internal/chunks/libs/birpc.mjs +0 -1
  165. package/dist/vite-plugin/internal/chunks/libs/fast-equals.mjs +0 -1
  166. package/dist/vite-plugin/internal/chunks/libs/nanostores.mjs +0 -1
  167. package/dist/vite-plugin/internal/chunks/libs/remeda.mjs +0 -1
  168. package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +0 -1
@@ -1,58 +1,58 @@
1
- import{i as e}from"../rolldown-runtime.mjs";import{n as t,t as n}from"./@chevrotain/regexp-to-ast.mjs";import{$ as r,A as i,B as a,C as o,D as s,E as c,F as l,G as u,H as d,I as f,J as p,K as m,L as h,M as g,N as _,O as v,P as y,Q as ee,R as te,S as b,T as x,U as S,V as C,W as w,X as ne,Y as T,Z as E,_ as D,_t as O,a as k,at as re,b as A,c as j,ct as ie,d as M,dt as ae,et as oe,f as N,ft as se,g as ce,gt as le,h as P,i as ue,it as de,j as fe,k as pe,l as F,lt as I,m as me,mt as he,n as ge,nt as _e,o as L,ot as ve,p as ye,pt as R,q as be,r as xe,rt as Se,s as z,st as Ce,t as B,tt as we,u as V,ut as Te,v as Ee,vt as De,w as H,x as U,y as W,z as Oe}from"./@chevrotain/gast.mjs";import{i as ke,n as Ae,r as je,t as Me}from"./@chevrotain/utils.mjs";var Ne=Object.create,Pe=function(){function object(){}return function(e){if(!se(e))return{};if(Ne)return Ne(e);object.prototype=e;var t=new object;return object.prototype=void 0,t}}();function noop(){}function copyArray(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}function arrayIncludes(e,t){return!!(e!=null&&e.length)&&ve(e,t,0)>-1}var Fe=O?O.isConcatSpreadable:void 0;function isFlattenable(e){return R(e)||E(e)||!!(Fe&&e&&e[Fe])}function baseFlatten(e,t,n,r,i){var a=-1,o=e.length;for(n||=isFlattenable,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?baseFlatten(s,t-1,n,r,i):d(i,s):r||(i[i.length]=s)}return i}function flatten(e){return e!=null&&e.length?baseFlatten(e,1):[]}function baseSlice(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}function arrayReduce(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function baseAssign(e,t){return e&&_e(t,u(t),e)}function baseAssignIn(e,t){return e&&_e(t,S(t),e)}var Ie=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Le=Ie&&typeof module==`object`&&module&&!module.nodeType&&module,Re=Le&&Le.exports===Ie?De.Buffer:void 0,ze=Re?Re.allocUnsafe:void 0;function cloneBuffer(e,t){if(t)return e.slice();var n=e.length,r=ze?ze(n):new e.constructor(n);return e.copy(r),r}function copySymbols(e,t){return _e(e,te(e),t)}function copySymbolsIn(e,t){return _e(e,h(e),t)}var Be=Object.prototype.hasOwnProperty;function initCloneArray(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Be.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function cloneArrayBuffer(e){var t=new e.constructor(e.byteLength);return new g(t).set(new g(e)),t}function cloneDataView(e,t){var n=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Ve=/\w*$/;function cloneRegExp(e){var t=new e.constructor(e.source,Ve.exec(e));return t.lastIndex=e.lastIndex,t}var He=O?O.prototype:void 0,Ue=He?He.valueOf:void 0;function cloneSymbol(e){return Ue?Object(Ue.call(e)):{}}function cloneTypedArray(e,t){var n=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var We=`[object Boolean]`,Ge=`[object Date]`,Ke=`[object Map]`,qe=`[object Number]`,Je=`[object RegExp]`,Ye=`[object Set]`,Xe=`[object String]`,Ze=`[object Symbol]`,Qe=`[object ArrayBuffer]`,$e=`[object DataView]`,et=`[object Float32Array]`,tt=`[object Float64Array]`,nt=`[object Int8Array]`,rt=`[object Int16Array]`,it=`[object Int32Array]`,at=`[object Uint8Array]`,ot=`[object Uint8ClampedArray]`,st=`[object Uint16Array]`,ct=`[object Uint32Array]`;function initCloneByTag(e,t,n){var r=e.constructor;switch(t){case Qe:return cloneArrayBuffer(e);case We:case Ge:return new r(+e);case $e:return cloneDataView(e,n);case et:case tt:case nt:case rt:case it:case at:case ot:case st:case ct:return cloneTypedArray(e,n);case Ke:return new r;case qe:case Xe:return new r(e);case Je:return cloneRegExp(e);case Ye:return new r;case Ze:return cloneSymbol(e)}}function initCloneObject(e){return typeof e.constructor==`function`&&!ee(e)?Pe(C(e)):{}}var lt=`[object Map]`;function baseIsMap(e){return le(e)&&_(e)==lt}var ut=p&&p.isMap,dt=ut?T(ut):baseIsMap,ft=`[object Set]`;function baseIsSet(e){return le(e)&&_(e)==ft}var pt=p&&p.isSet,mt=pt?T(pt):baseIsSet,ht=1,gt=2,_t=4,vt=`[object Arguments]`,yt=`[object Array]`,bt=`[object Boolean]`,xt=`[object Date]`,St=`[object Error]`,Ct=`[object Function]`,wt=`[object GeneratorFunction]`,Tt=`[object Map]`,Et=`[object Number]`,Dt=`[object Object]`,Ot=`[object RegExp]`,kt=`[object Set]`,At=`[object String]`,jt=`[object Symbol]`,Mt=`[object WeakMap]`,Nt=`[object ArrayBuffer]`,Pt=`[object DataView]`,Ft=`[object Float32Array]`,It=`[object Float64Array]`,Lt=`[object Int8Array]`,Rt=`[object Int16Array]`,zt=`[object Int32Array]`,Bt=`[object Uint8Array]`,Vt=`[object Uint8ClampedArray]`,Ht=`[object Uint16Array]`,Ut=`[object Uint32Array]`,G={};G[vt]=G[yt]=G[Nt]=G[Pt]=G[bt]=G[xt]=G[Ft]=G[It]=G[Lt]=G[Rt]=G[zt]=G[Tt]=G[Et]=G[Dt]=G[Ot]=G[kt]=G[At]=G[jt]=G[Bt]=G[Vt]=G[Ht]=G[Ut]=!0,G[St]=G[Ct]=G[Mt]=!1;function baseClone(e,t,n,r,i,o){var s,c=t&ht,d=t&gt,p=t&_t;if(n&&(s=i?n(e,r,i,o):n(e)),s!==void 0)return s;if(!se(e))return e;var m=R(e);if(m){if(s=initCloneArray(e),!c)return copyArray(e,s)}else{var h=_(e),g=h==Ct||h==wt;if(ne(e))return cloneBuffer(e,c);if(h==Dt||h==vt||g&&!i){if(s=d||g?{}:initCloneObject(e),!c)return d?copySymbolsIn(e,baseAssignIn(s,e)):copySymbols(e,baseAssign(s,e))}else{if(!G[h])return i?e:{};s=initCloneByTag(e,h,c)}}o||=new a;var v=o.get(e);if(v)return v;o.set(e,s),mt(e)?e.forEach(function(r){s.add(baseClone(r,t,n,r,e,o))}):dt(e)&&e.forEach(function(r,i){s.set(i,baseClone(r,t,n,i,e,o))});var y=m?void 0:(p?d?l:f:d?S:u)(e);return ie(y||e,function(r,i){y&&(i=r,r=e[i]),Se(s,i,baseClone(r,t,n,i,e,o))}),s}var Wt=4;function clone(e){return baseClone(e,Wt)}function compact(e){for(var t=-1,n=e==null?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}function arrayAggregator(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}function baseAggregator(e,t,n,r){return c(e,function(e,i,a){t(r,e,n(e),a)}),r}function createAggregator(e,t){return function(n,r){var i=R(n)?arrayAggregator:baseAggregator,a=t?t():{};return i(n,e,s(r,2),a)}}var Gt=Object.prototype,Kt=Gt.hasOwnProperty,qt=we(function(e,t){e=Object(e);var n=-1,i=t.length,a=i>2?t[2]:void 0;for(a&&r(t[0],t[1],a)&&(i=1);++n<i;)for(var o=t[n],s=S(o),c=-1,l=s.length;++c<l;){var u=s[c],d=e[u];(d===void 0||de(d,Gt[u])&&!Kt.call(e,u))&&(e[u]=o[u])}return e});function isArrayLikeObject(e){return le(e)&&oe(e)}function arrayIncludesWith(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}var Jt=200;function baseDifference(e,t,n,r){var a=-1,o=arrayIncludes,s=!0,c=e.length,l=[],u=t.length;if(!c)return l;n&&(t=he(t,T(n))),r?(o=arrayIncludesWith,s=!1):t.length>=Jt&&(o=i,s=!1,t=new fe(t));outer:for(;++a<c;){var d=e[a],f=n==null?d:n(d);if(d=r||d!==0?d:0,s&&f===f){for(var p=u;p--;)if(t[p]===f)continue outer;l.push(d)}else o(t,f,r)||l.push(d)}return l}var Yt=we(function(e,t){return isArrayLikeObject(e)?baseDifference(e,baseFlatten(t,1,isArrayLikeObject,!0)):[]});function last(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function drop(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:ae(t),baseSlice(e,t<0?0:t,r)):[]}function dropRight(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:ae(t),t=r-t,baseSlice(e,0,t<0?0:t)):[]}function baseFilter(e,t){var n=[];return c(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function filter(e,t){return(R(e)?Oe:baseFilter)(e,s(t,3))}function createFind(e){return function(t,predicate,n){var r=Object(t);if(!oe(t)){var i=s(predicate,3);t=u(t),predicate=function(e){return i(r[e],e,r)}}var a=e(t,predicate,n);return a>-1?r[i?t[a]:a]:void 0}}var Xt=Math.max;function findIndex(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:ae(n);return i<0&&(i=Xt(r+i,0)),Ce(e,s(t,3),i)}var K=createFind(findIndex);function head(e){return e&&e.length?e[0]:void 0}function flatMap(e,t){return baseFlatten(o(e,t),1)}var Zt=Object.prototype.hasOwnProperty,Qt=createAggregator(function(e,t,n){Zt.call(e,n)?e[n].push(t):re(e,n,[t])}),$t=Object.prototype.hasOwnProperty;function baseHas(e,t){return e!=null&&$t.call(e,t)}function has(e,t){return e!=null&&v(e,t,baseHas)}var en=Math.max;function indexOf(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:ae(n);return i<0&&(i=en(r+i,0)),ve(e,t,i)}var tn=`[object Map]`,nn=`[object Set]`,rn=Object.prototype.hasOwnProperty;function isEmpty(e){if(e==null)return!0;if(oe(e)&&(R(e)||typeof e==`string`||typeof e.splice==`function`||ne(e)||be(e)||E(e)))return!e.length;var t=_(e);if(t==tn||t==nn)return!e.size;if(ee(e))return!m(e).length;for(var n in e)if(rn.call(e,n))return!1;return!0}function isUndefined(e){return e===void 0}var an=`Expected a function`;function negate(e){if(typeof e!=`function`)throw TypeError(an);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function baseReduce(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function reduce(e,t,n){var r=R(e)?arrayReduce:baseReduce,i=arguments.length<3;return r(e,s(t,4),n,i,c)}function reject(e,t){return(R(e)?Oe:baseFilter)(e,negate(s(t,3)))}var on=y&&1/pe(new y([,-0]))[1]==1/0?function(e){return new y(e)}:noop,sn=200;function baseUniq(e,t,n){var r=-1,a=arrayIncludes,o=e.length,s=!0,c=[],l=c;if(n)s=!1,a=arrayIncludesWith;else if(o>=sn){var u=t?null:on(e);if(u)return pe(u);s=!1,a=i,l=new fe}else l=t?[]:c;outer:for(;++r<o;){var d=e[r],f=t?t(d):d;if(d=n||d!==0?d:0,s&&f===f){for(var p=l.length;p--;)if(l[p]===f)continue outer;t&&l.push(f),c.push(d)}else a(l,f,n)||(l!==c&&l.push(f),c.push(d))}return c}function uniq(e){return e&&e.length?baseUniq(e):[]}var RestWalker=class{walk(e,t=[]){x(e.definition,(n,r)=>{let i=drop(e.definition,r+1);if(n instanceof j)this.walkProdRef(n,i,t);else if(n instanceof P)this.walkTerminal(n,i,t);else if(n instanceof z)this.walkFlat(n,i,t);else if(n instanceof F)this.walkOption(n,i,t);else if(n instanceof M)this.walkAtLeastOne(n,i,t);else if(n instanceof N)this.walkAtLeastOneSep(n,i,t);else if(n instanceof ye)this.walkManySep(n,i,t);else if(n instanceof V)this.walkMany(n,i,t);else if(n instanceof L)this.walkOr(n,i,t);else throw Error(`non exhaustive match`)})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){let r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){let r=[new F({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){let r=restForRepetitionWithSeparator(e,t,n);this.walk(e,r)}walkMany(e,t,n){let r=[new F({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){let r=restForRepetitionWithSeparator(e,t,n);this.walk(e,r)}walkOr(e,t,n){let r=t.concat(n);x(e.definition,e=>{let t=new z({definition:[e]});this.walk(t,r)})}};function restForRepetitionWithSeparator(e,t,n){return[new F({definition:[new P({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function first(e){if(e instanceof j)return first(e.referencedRule);if(e instanceof P)return firstForTerminal(e);if(ue(e))return firstForSequence(e);if(ge(e))return firstForBranching(e);throw Error(`non exhaustive match`)}function firstForSequence(e){let t=[],n=e.definition,r=0,i=n.length>r,a,o=!0;for(;i&&o;)a=n[r],o=xe(a),t=t.concat(first(a)),r+=1,i=n.length>r;return uniq(t)}function firstForBranching(e){return uniq(flatten(o(e.definition,e=>first(e))))}function firstForTerminal(e){return[e.terminalType]}const cn=`_~IN~_`;var ResyncFollowsWalker=class extends RestWalker{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let r=buildBetweenProdsFollowPrefix(e.referencedRule,e.idx)+this.topProd.name,i=first(new z({definition:t.concat(n)}));this.follows[r]=i}};function computeAllProdsFollows(e){let t={};return x(e,e=>{w(t,new ResyncFollowsWalker(e).startWalking())}),t}function buildBetweenProdsFollowPrefix(e,t){return e.name+t+cn}let ln={};const un=new t;function getRegExpAst(e){let t=e.toString();if(ln.hasOwnProperty(t))return ln[t];{let e=un.pattern(t);return ln[t]=e,e}}function clearRegExpParserCache(){ln={}}const dn=`Complement Sets are not supported for first char optimization`,fn=`Unable to use "first char" lexer optimizations:
2
- `;function getOptimizedStartCodesIndices(e,t=!1){try{let t=getRegExpAst(e);return firstCharOptimizedIndices(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===dn)t&&ke(`${fn}\tUnable to optimize: < ${e.toString()} >\n Complement Sets cannot be automatically optimized.
1
+ import{i as e}from"../rolldown-runtime.mjs";import{n as t,t as n}from"./@chevrotain/regexp-to-ast.mjs";import{$ as r,A as i,B as a,C as o,D as s,E as c,F as l,G as u,H as d,I as f,J as p,K as m,L as h,M as g,N as _,O as v,P as y,Q as ee,R as te,S as b,T as x,U as S,V as C,W as w,X as ne,Y as T,Z as E,_ as D,_t as O,a as k,at as re,b as A,c as j,ct as ie,d as M,dt as ae,et as oe,f as N,ft as se,g as ce,gt as le,h as P,ht as ue,i as de,it as fe,j as pe,k as me,l as F,lt as I,m as he,mt as ge,n as _e,nt as ve,o as L,ot as ye,p as be,pt as R,q as xe,r as Se,rt as Ce,s as z,st as we,t as B,tt as Te,u as V,ut as Ee,v as De,w as H,x as U,y as W,z as Oe}from"./@chevrotain/gast.mjs";var ke=Object.create,Ae=function(){function object(){}return function(e){if(!se(e))return{};if(ke)return ke(e);object.prototype=e;var t=new object;return object.prototype=void 0,t}}();function noop(){}function copyArray(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}function arrayIncludes(e,t){return!!(e!=null&&e.length)&&ye(e,t,0)>-1}var je=le?le.isConcatSpreadable:void 0;function isFlattenable(e){return R(e)||E(e)||!!(je&&e&&e[je])}function baseFlatten(e,t,n,r,i){var a=-1,o=e.length;for(n||=isFlattenable,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?baseFlatten(s,t-1,n,r,i):d(i,s):r||(i[i.length]=s)}return i}function flatten(e){return e!=null&&e.length?baseFlatten(e,1):[]}function baseSlice(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}function arrayReduce(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function baseAssign(e,t){return e&&ve(t,u(t),e)}function baseAssignIn(e,t){return e&&ve(t,S(t),e)}var Me=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Ne=Me&&typeof module==`object`&&module&&!module.nodeType&&module,Pe=Ne&&Ne.exports===Me?O.Buffer:void 0,Fe=Pe?Pe.allocUnsafe:void 0;function cloneBuffer(e,t){if(t)return e.slice();var n=e.length,r=Fe?Fe(n):new e.constructor(n);return e.copy(r),r}function copySymbols(e,t){return ve(e,te(e),t)}function copySymbolsIn(e,t){return ve(e,h(e),t)}var Ie=Object.prototype.hasOwnProperty;function initCloneArray(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Ie.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function cloneArrayBuffer(e){var t=new e.constructor(e.byteLength);return new g(t).set(new g(e)),t}function cloneDataView(e,t){var n=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Le=/\w*$/;function cloneRegExp(e){var t=new e.constructor(e.source,Le.exec(e));return t.lastIndex=e.lastIndex,t}var Re=le?le.prototype:void 0,ze=Re?Re.valueOf:void 0;function cloneSymbol(e){return ze?Object(ze.call(e)):{}}function cloneTypedArray(e,t){var n=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var Be=`[object Boolean]`,Ve=`[object Date]`,He=`[object Map]`,Ue=`[object Number]`,We=`[object RegExp]`,Ge=`[object Set]`,Ke=`[object String]`,qe=`[object Symbol]`,Je=`[object ArrayBuffer]`,Ye=`[object DataView]`,Xe=`[object Float32Array]`,Ze=`[object Float64Array]`,Qe=`[object Int8Array]`,$e=`[object Int16Array]`,et=`[object Int32Array]`,tt=`[object Uint8Array]`,nt=`[object Uint8ClampedArray]`,rt=`[object Uint16Array]`,it=`[object Uint32Array]`;function initCloneByTag(e,t,n){var r=e.constructor;switch(t){case Je:return cloneArrayBuffer(e);case Be:case Ve:return new r(+e);case Ye:return cloneDataView(e,n);case Xe:case Ze:case Qe:case $e:case et:case tt:case nt:case rt:case it:return cloneTypedArray(e,n);case He:return new r;case Ue:case Ke:return new r(e);case We:return cloneRegExp(e);case Ge:return new r;case qe:return cloneSymbol(e)}}function initCloneObject(e){return typeof e.constructor==`function`&&!ee(e)?Ae(C(e)):{}}var at=`[object Map]`;function baseIsMap(e){return ue(e)&&_(e)==at}var ot=p&&p.isMap,st=ot?T(ot):baseIsMap,ct=`[object Set]`;function baseIsSet(e){return ue(e)&&_(e)==ct}var lt=p&&p.isSet,ut=lt?T(lt):baseIsSet,dt=1,ft=2,pt=4,mt=`[object Arguments]`,ht=`[object Array]`,gt=`[object Boolean]`,_t=`[object Date]`,vt=`[object Error]`,yt=`[object Function]`,bt=`[object GeneratorFunction]`,xt=`[object Map]`,St=`[object Number]`,Ct=`[object Object]`,wt=`[object RegExp]`,Tt=`[object Set]`,Et=`[object String]`,Dt=`[object Symbol]`,Ot=`[object WeakMap]`,kt=`[object ArrayBuffer]`,At=`[object DataView]`,jt=`[object Float32Array]`,Mt=`[object Float64Array]`,Nt=`[object Int8Array]`,Pt=`[object Int16Array]`,Ft=`[object Int32Array]`,It=`[object Uint8Array]`,Lt=`[object Uint8ClampedArray]`,Rt=`[object Uint16Array]`,zt=`[object Uint32Array]`,G={};G[mt]=G[ht]=G[kt]=G[At]=G[gt]=G[_t]=G[jt]=G[Mt]=G[Nt]=G[Pt]=G[Ft]=G[xt]=G[St]=G[Ct]=G[wt]=G[Tt]=G[Et]=G[Dt]=G[It]=G[Lt]=G[Rt]=G[zt]=!0,G[vt]=G[yt]=G[Ot]=!1;function baseClone(e,t,n,r,i,o){var s,c=t&dt,d=t&ft,p=t&pt;if(n&&(s=i?n(e,r,i,o):n(e)),s!==void 0)return s;if(!se(e))return e;var m=R(e);if(m){if(s=initCloneArray(e),!c)return copyArray(e,s)}else{var h=_(e),g=h==yt||h==bt;if(ne(e))return cloneBuffer(e,c);if(h==Ct||h==mt||g&&!i){if(s=d||g?{}:initCloneObject(e),!c)return d?copySymbolsIn(e,baseAssignIn(s,e)):copySymbols(e,baseAssign(s,e))}else{if(!G[h])return i?e:{};s=initCloneByTag(e,h,c)}}o||=new a;var v=o.get(e);if(v)return v;o.set(e,s),ut(e)?e.forEach(function(r){s.add(baseClone(r,t,n,r,e,o))}):st(e)&&e.forEach(function(r,i){s.set(i,baseClone(r,t,n,i,e,o))});var y=m?void 0:(p?d?l:f:d?S:u)(e);return ie(y||e,function(r,i){y&&(i=r,r=e[i]),Ce(s,i,baseClone(r,t,n,i,e,o))}),s}var Bt=4;function clone(e){return baseClone(e,Bt)}function compact(e){for(var t=-1,n=e==null?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}function arrayAggregator(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}function baseAggregator(e,t,n,r){return c(e,function(e,i,a){t(r,e,n(e),a)}),r}function createAggregator(e,t){return function(n,r){var i=R(n)?arrayAggregator:baseAggregator,a=t?t():{};return i(n,e,s(r,2),a)}}var Vt=Object.prototype,Ht=Vt.hasOwnProperty,Ut=Te(function(e,t){e=Object(e);var n=-1,i=t.length,a=i>2?t[2]:void 0;for(a&&r(t[0],t[1],a)&&(i=1);++n<i;)for(var o=t[n],s=S(o),c=-1,l=s.length;++c<l;){var u=s[c],d=e[u];(d===void 0||fe(d,Vt[u])&&!Ht.call(e,u))&&(e[u]=o[u])}return e});function isArrayLikeObject(e){return ue(e)&&oe(e)}function arrayIncludesWith(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}var Wt=200;function baseDifference(e,t,n,r){var a=-1,o=arrayIncludes,s=!0,c=e.length,l=[],u=t.length;if(!c)return l;n&&(t=ge(t,T(n))),r?(o=arrayIncludesWith,s=!1):t.length>=Wt&&(o=i,s=!1,t=new pe(t));outer:for(;++a<c;){var d=e[a],f=n==null?d:n(d);if(d=r||d!==0?d:0,s&&f===f){for(var p=u;p--;)if(t[p]===f)continue outer;l.push(d)}else o(t,f,r)||l.push(d)}return l}var Gt=Te(function(e,t){return isArrayLikeObject(e)?baseDifference(e,baseFlatten(t,1,isArrayLikeObject,!0)):[]});function last(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function drop(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:ae(t),baseSlice(e,t<0?0:t,r)):[]}function dropRight(e,t,n){var r=e==null?0:e.length;return r?(t=n||t===void 0?1:ae(t),t=r-t,baseSlice(e,0,t<0?0:t)):[]}function baseFilter(e,t){var n=[];return c(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function filter(e,t){return(R(e)?Oe:baseFilter)(e,s(t,3))}function createFind(e){return function(t,predicate,n){var r=Object(t);if(!oe(t)){var i=s(predicate,3);t=u(t),predicate=function(e){return i(r[e],e,r)}}var a=e(t,predicate,n);return a>-1?r[i?t[a]:a]:void 0}}var Kt=Math.max;function findIndex(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:ae(n);return i<0&&(i=Kt(r+i,0)),we(e,s(t,3),i)}var K=createFind(findIndex);function head(e){return e&&e.length?e[0]:void 0}function flatMap(e,t){return baseFlatten(o(e,t),1)}var qt=Object.prototype.hasOwnProperty,Jt=createAggregator(function(e,t,n){qt.call(e,n)?e[n].push(t):re(e,n,[t])}),Yt=Object.prototype.hasOwnProperty;function baseHas(e,t){return e!=null&&Yt.call(e,t)}function has(e,t){return e!=null&&v(e,t,baseHas)}var Xt=Math.max;function indexOf(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:ae(n);return i<0&&(i=Xt(r+i,0)),ye(e,t,i)}var Zt=`[object Map]`,Qt=`[object Set]`,$t=Object.prototype.hasOwnProperty;function isEmpty(e){if(e==null)return!0;if(oe(e)&&(R(e)||typeof e==`string`||typeof e.splice==`function`||ne(e)||xe(e)||E(e)))return!e.length;var t=_(e);if(t==Zt||t==Qt)return!e.size;if(ee(e))return!m(e).length;for(var n in e)if($t.call(e,n))return!1;return!0}function isUndefined(e){return e===void 0}var en=`Expected a function`;function negate(e){if(typeof e!=`function`)throw TypeError(en);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function baseReduce(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function reduce(e,t,n){var r=R(e)?arrayReduce:baseReduce,i=arguments.length<3;return r(e,s(t,4),n,i,c)}function reject(e,t){return(R(e)?Oe:baseFilter)(e,negate(s(t,3)))}var tn=y&&1/me(new y([,-0]))[1]==1/0?function(e){return new y(e)}:noop,nn=200;function baseUniq(e,t,n){var r=-1,a=arrayIncludes,o=e.length,s=!0,c=[],l=c;if(n)s=!1,a=arrayIncludesWith;else if(o>=nn){var u=t?null:tn(e);if(u)return me(u);s=!1,a=i,l=new pe}else l=t?[]:c;outer:for(;++r<o;){var d=e[r],f=t?t(d):d;if(d=n||d!==0?d:0,s&&f===f){for(var p=l.length;p--;)if(l[p]===f)continue outer;t&&l.push(f),c.push(d)}else a(l,f,n)||(l!==c&&l.push(f),c.push(d))}return c}function uniq(e){return e&&e.length?baseUniq(e):[]}function PRINT_ERROR(e){console&&console.error&&console.error(`Error: ${e}`)}function PRINT_WARNING(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function timer(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function toFastProperties(e){function FakeConstructor(){}FakeConstructor.prototype=e;let t=new FakeConstructor;function fakeAccess(){return typeof t.bar}return fakeAccess(),fakeAccess(),e}var RestWalker=class{walk(e,t=[]){x(e.definition,(n,r)=>{let i=drop(e.definition,r+1);if(n instanceof j)this.walkProdRef(n,i,t);else if(n instanceof P)this.walkTerminal(n,i,t);else if(n instanceof z)this.walkFlat(n,i,t);else if(n instanceof F)this.walkOption(n,i,t);else if(n instanceof M)this.walkAtLeastOne(n,i,t);else if(n instanceof N)this.walkAtLeastOneSep(n,i,t);else if(n instanceof be)this.walkManySep(n,i,t);else if(n instanceof V)this.walkMany(n,i,t);else if(n instanceof L)this.walkOr(n,i,t);else throw Error(`non exhaustive match`)})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){let r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){let r=[new F({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){let r=restForRepetitionWithSeparator(e,t,n);this.walk(e,r)}walkMany(e,t,n){let r=[new F({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){let r=restForRepetitionWithSeparator(e,t,n);this.walk(e,r)}walkOr(e,t,n){let r=t.concat(n);x(e.definition,e=>{let t=new z({definition:[e]});this.walk(t,r)})}};function restForRepetitionWithSeparator(e,t,n){return[new F({definition:[new P({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function first(e){if(e instanceof j)return first(e.referencedRule);if(e instanceof P)return firstForTerminal(e);if(de(e))return firstForSequence(e);if(_e(e))return firstForBranching(e);throw Error(`non exhaustive match`)}function firstForSequence(e){let t=[],n=e.definition,r=0,i=n.length>r,a,o=!0;for(;i&&o;)a=n[r],o=Se(a),t=t.concat(first(a)),r+=1,i=n.length>r;return uniq(t)}function firstForBranching(e){return uniq(flatten(o(e.definition,e=>first(e))))}function firstForTerminal(e){return[e.terminalType]}const rn=`_~IN~_`;var ResyncFollowsWalker=class extends RestWalker{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let r=buildBetweenProdsFollowPrefix(e.referencedRule,e.idx)+this.topProd.name,i=first(new z({definition:t.concat(n)}));this.follows[r]=i}};function computeAllProdsFollows(e){let t={};return x(e,e=>{w(t,new ResyncFollowsWalker(e).startWalking())}),t}function buildBetweenProdsFollowPrefix(e,t){return e.name+t+rn}let an={};const on=new t;function getRegExpAst(e){let t=e.toString();if(an.hasOwnProperty(t))return an[t];{let e=on.pattern(t);return an[t]=e,e}}function clearRegExpParserCache(){an={}}const sn=`Complement Sets are not supported for first char optimization`,cn=`Unable to use "first char" lexer optimizations:
2
+ `;function getOptimizedStartCodesIndices(e,t=!1){try{let t=getRegExpAst(e);return firstCharOptimizedIndices(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===sn)t&&PRINT_WARNING(`${cn}\tUnable to optimize: < ${e.toString()} >\n Complement Sets cannot be automatically optimized.
3
3
  This will disable the lexer's first char optimizations.
4
4
  See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n=``;t&&(n=`
5
5
  This will disable the lexer's first char optimizations.
6
- See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),je(`${fn}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function firstCharOptimizedIndices(e,t,n){switch(e.type){case`Disjunction`:for(let r=0;r<e.value.length;r++)firstCharOptimizedIndices(e.value[r],t,n);break;case`Alternative`:let r=e.value;for(let e=0;e<r.length;e++){let i=r[e];switch(i.type){case`EndAnchor`:case`GroupBackReference`:case`Lookahead`:case`NegativeLookahead`:case`StartAnchor`:case`WordBoundary`:case`NonWordBoundary`:continue}let a=i;switch(a.type){case`Character`:addOptimizedIdxToResult(a.value,t,n);break;case`Set`:if(a.complement===!0)throw Error(dn);x(a.value,e=>{if(typeof e==`number`)addOptimizedIdxToResult(e,t,n);else{let r=e;if(n===!0)for(let e=r.from;e<=r.to;e++)addOptimizedIdxToResult(e,t,n);else{for(let e=r.from;e<=r.to&&e<256;e++)addOptimizedIdxToResult(e,t,n);if(r.to>=256){let e=r.from>=256?r.from:256,n=r.to,i=charCodeToOptimizedIndex(e),a=charCodeToOptimizedIndex(n);for(let e=i;e<=a;e++)t[e]=e}}}});break;case`Group`:firstCharOptimizedIndices(a.value,t,n);break;default:throw Error(`Non Exhaustive Match`)}let o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type===`Group`&&isWholeOptional(a)===!1||a.type!==`Group`&&o===!1)break}break;default:throw Error(`non exhaustive match!`)}return U(t)}function addOptimizedIdxToResult(e,t,n){let r=charCodeToOptimizedIndex(e);t[r]=r,n===!0&&handleIgnoreCase(e,t)}function handleIgnoreCase(e,t){let n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){let e=charCodeToOptimizedIndex(r.charCodeAt(0));t[e]=e}else{let e=n.toLowerCase();if(e!==n){let n=charCodeToOptimizedIndex(e.charCodeAt(0));t[n]=n}}}function findCode(e,t){return K(e.value,e=>{if(typeof e==`number`)return A(t,e);{let n=e;return K(t,e=>n.from<=e&&e<=n.to)!==void 0}})}function isWholeOptional(e){let t=e.quantifier;return t&&t.atLeast===0?!0:e.value?R(e.value)?H(e.value,isWholeOptional):isWholeOptional(e.value):!1}var CharCodeFinder=class extends n{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){A(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?findCode(e,this.targetCharCodes)===void 0&&(this.found=!0):findCode(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};function canMatchCharCode(e,t){if(t instanceof RegExp){let n=getRegExpAst(t),r=new CharCodeFinder(e);return r.visit(n),r.found}else return K(t,t=>A(e,t.charCodeAt(0)))!==void 0}const q=`PATTERN`,pn=`defaultMode`;let mn=typeof RegExp(`(?:)`).sticky==`boolean`;function analyzeTokenTypes(e,t){t=qt(t,{useSticky:mn,debug:!1,safeMode:!1,positionTracking:`full`,lineTerminatorCharacters:[`\r`,`
7
- `],tracer:(e,t)=>t()});let n=t.tracer;n(`initCharCodeToOptimizedIndexMap`,()=>{initCharCodeToOptimizedIndexMap()});let r;n(`Reject Lexer.NA`,()=>{r=reject(e,e=>e[q]===Lexer.NA)});let i=!1,a;n(`Transform Patterns`,()=>{i=!1,a=o(r,e=>{let n=e[q];if(W(n)){let e=n.source;return e.length===1&&e!==`^`&&e!==`$`&&e!==`.`&&!n.ignoreCase?e:e.length===2&&e[0]===`\\`&&!A([`d`,`D`,`s`,`S`,`t`,`r`,`n`,`t`,`0`,`c`,`b`,`B`,`f`,`v`,`w`,`W`],e[1])?e[1]:t.useSticky?addStickyFlag(n):addStartOfInput(n)}else if(I(n))return i=!0,{exec:n};else if(typeof n==`object`)return i=!0,n;else if(typeof n==`string`){if(n.length===1)return n;{let e=n.replace(/[\\^$.*+?()[\]{}|]/g,`\\$&`),r=new RegExp(e);return t.useSticky?addStickyFlag(r):addStartOfInput(r)}}else throw Error(`non exhaustive match`)})});let s,c,l,u,d;n(`misc mapping`,()=>{s=o(r,e=>e.tokenTypeIdx),c=o(r,e=>{let t=e.GROUP;if(t!==Lexer.SKIPPED){if(b(t))return t;if(isUndefined(t))return!1;throw Error(`non exhaustive match`)}}),l=o(r,e=>{let t=e.LONGER_ALT;if(t)return R(t)?o(t,e=>indexOf(r,e)):[indexOf(r,t)]}),u=o(r,e=>e.PUSH_MODE),d=o(r,e=>has(e,`POP_MODE`))});let f;n(`Line Terminator Handling`,()=>{let e=getCharCodes(t.lineTerminatorCharacters);f=o(r,e=>!1),t.positionTracking!==`onlyOffset`&&(f=o(r,t=>has(t,`LINE_BREAKS`)?!!t.LINE_BREAKS:checkLineBreaksIssues(t,e)===!1&&canMatchCharCode(e,t.PATTERN)))});let p,m,h,g;n(`Misc Mapping #2`,()=>{p=o(r,isCustomPattern),m=o(a,isShortPattern),h=reduce(r,(e,t)=>{let n=t.GROUP;return b(n)&&n!==Lexer.SKIPPED&&(e[n]=[]),e},{}),g=o(a,(e,t)=>({pattern:a[t],longerAlt:l[t],canLineTerminator:f[t],isCustom:p[t],short:m[t],group:c[t],push:u[t],pop:d[t],tokenTypeIdx:s[t],tokenType:r[t]}))});let _=!0,v=[];return t.safeMode||n(`First Char Optimization`,()=>{v=reduce(r,(e,n,r)=>{if(typeof n.PATTERN==`string`)addToMapOfArrays(e,charCodeToOptimizedIndex(n.PATTERN.charCodeAt(0)),g[r]);else if(R(n.START_CHARS_HINT)){let t;x(n.START_CHARS_HINT,n=>{let i=charCodeToOptimizedIndex(typeof n==`string`?n.charCodeAt(0):n);t!==i&&(t=i,addToMapOfArrays(e,i,g[r]))})}else if(W(n.PATTERN))if(n.PATTERN.unicode)_=!1,t.ensureOptimizations&&je(`${fn}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n The regexp unicode flag is not currently supported by the regexp-to-ast library.
6
+ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),PRINT_ERROR(`${cn}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function firstCharOptimizedIndices(e,t,n){switch(e.type){case`Disjunction`:for(let r=0;r<e.value.length;r++)firstCharOptimizedIndices(e.value[r],t,n);break;case`Alternative`:let r=e.value;for(let e=0;e<r.length;e++){let i=r[e];switch(i.type){case`EndAnchor`:case`GroupBackReference`:case`Lookahead`:case`NegativeLookahead`:case`StartAnchor`:case`WordBoundary`:case`NonWordBoundary`:continue}let a=i;switch(a.type){case`Character`:addOptimizedIdxToResult(a.value,t,n);break;case`Set`:if(a.complement===!0)throw Error(sn);x(a.value,e=>{if(typeof e==`number`)addOptimizedIdxToResult(e,t,n);else{let r=e;if(n===!0)for(let e=r.from;e<=r.to;e++)addOptimizedIdxToResult(e,t,n);else{for(let e=r.from;e<=r.to&&e<256;e++)addOptimizedIdxToResult(e,t,n);if(r.to>=256){let e=r.from>=256?r.from:256,n=r.to,i=charCodeToOptimizedIndex(e),a=charCodeToOptimizedIndex(n);for(let e=i;e<=a;e++)t[e]=e}}}});break;case`Group`:firstCharOptimizedIndices(a.value,t,n);break;default:throw Error(`Non Exhaustive Match`)}let o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type===`Group`&&isWholeOptional(a)===!1||a.type!==`Group`&&o===!1)break}break;default:throw Error(`non exhaustive match!`)}return U(t)}function addOptimizedIdxToResult(e,t,n){let r=charCodeToOptimizedIndex(e);t[r]=r,n===!0&&handleIgnoreCase(e,t)}function handleIgnoreCase(e,t){let n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){let e=charCodeToOptimizedIndex(r.charCodeAt(0));t[e]=e}else{let e=n.toLowerCase();if(e!==n){let n=charCodeToOptimizedIndex(e.charCodeAt(0));t[n]=n}}}function findCode(e,t){return K(e.value,e=>{if(typeof e==`number`)return A(t,e);{let n=e;return K(t,e=>n.from<=e&&e<=n.to)!==void 0}})}function isWholeOptional(e){let t=e.quantifier;return t&&t.atLeast===0?!0:e.value?R(e.value)?H(e.value,isWholeOptional):isWholeOptional(e.value):!1}var CharCodeFinder=class extends n{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){A(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?findCode(e,this.targetCharCodes)===void 0&&(this.found=!0):findCode(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};function canMatchCharCode(e,t){if(t instanceof RegExp){let n=getRegExpAst(t),r=new CharCodeFinder(e);return r.visit(n),r.found}else return K(t,t=>A(e,t.charCodeAt(0)))!==void 0}const q=`PATTERN`,ln=`defaultMode`;let un=typeof RegExp(`(?:)`).sticky==`boolean`;function analyzeTokenTypes(e,t){t=Ut(t,{useSticky:un,debug:!1,safeMode:!1,positionTracking:`full`,lineTerminatorCharacters:[`\r`,`
7
+ `],tracer:(e,t)=>t()});let n=t.tracer;n(`initCharCodeToOptimizedIndexMap`,()=>{initCharCodeToOptimizedIndexMap()});let r;n(`Reject Lexer.NA`,()=>{r=reject(e,e=>e[q]===Lexer.NA)});let i=!1,a;n(`Transform Patterns`,()=>{i=!1,a=o(r,e=>{let n=e[q];if(W(n)){let e=n.source;return e.length===1&&e!==`^`&&e!==`$`&&e!==`.`&&!n.ignoreCase?e:e.length===2&&e[0]===`\\`&&!A([`d`,`D`,`s`,`S`,`t`,`r`,`n`,`t`,`0`,`c`,`b`,`B`,`f`,`v`,`w`,`W`],e[1])?e[1]:t.useSticky?addStickyFlag(n):addStartOfInput(n)}else if(I(n))return i=!0,{exec:n};else if(typeof n==`object`)return i=!0,n;else if(typeof n==`string`){if(n.length===1)return n;{let e=n.replace(/[\\^$.*+?()[\]{}|]/g,`\\$&`),r=new RegExp(e);return t.useSticky?addStickyFlag(r):addStartOfInput(r)}}else throw Error(`non exhaustive match`)})});let s,c,l,u,d;n(`misc mapping`,()=>{s=o(r,e=>e.tokenTypeIdx),c=o(r,e=>{let t=e.GROUP;if(t!==Lexer.SKIPPED){if(b(t))return t;if(isUndefined(t))return!1;throw Error(`non exhaustive match`)}}),l=o(r,e=>{let t=e.LONGER_ALT;if(t)return R(t)?o(t,e=>indexOf(r,e)):[indexOf(r,t)]}),u=o(r,e=>e.PUSH_MODE),d=o(r,e=>has(e,`POP_MODE`))});let f;n(`Line Terminator Handling`,()=>{let e=getCharCodes(t.lineTerminatorCharacters);f=o(r,e=>!1),t.positionTracking!==`onlyOffset`&&(f=o(r,t=>has(t,`LINE_BREAKS`)?!!t.LINE_BREAKS:checkLineBreaksIssues(t,e)===!1&&canMatchCharCode(e,t.PATTERN)))});let p,m,h,g;n(`Misc Mapping #2`,()=>{p=o(r,isCustomPattern),m=o(a,isShortPattern),h=reduce(r,(e,t)=>{let n=t.GROUP;return b(n)&&n!==Lexer.SKIPPED&&(e[n]=[]),e},{}),g=o(a,(e,t)=>({pattern:a[t],longerAlt:l[t],canLineTerminator:f[t],isCustom:p[t],short:m[t],group:c[t],push:u[t],pop:d[t],tokenTypeIdx:s[t],tokenType:r[t]}))});let _=!0,v=[];return t.safeMode||n(`First Char Optimization`,()=>{v=reduce(r,(e,n,r)=>{if(typeof n.PATTERN==`string`)addToMapOfArrays(e,charCodeToOptimizedIndex(n.PATTERN.charCodeAt(0)),g[r]);else if(R(n.START_CHARS_HINT)){let t;x(n.START_CHARS_HINT,n=>{let i=charCodeToOptimizedIndex(typeof n==`string`?n.charCodeAt(0):n);t!==i&&(t=i,addToMapOfArrays(e,i,g[r]))})}else if(W(n.PATTERN))if(n.PATTERN.unicode)_=!1,t.ensureOptimizations&&PRINT_ERROR(`${cn}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n The regexp unicode flag is not currently supported by the regexp-to-ast library.
8
8
  This will disable the lexer's first char optimizations.
9
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let i=getOptimizedStartCodesIndices(n.PATTERN,t.ensureOptimizations);isEmpty(i)&&(_=!1),x(i,t=>{addToMapOfArrays(e,t,g[r])})}else t.ensureOptimizations&&je(`${fn}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n This will disable the lexer's first char optimizations.
10
- For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),_=!1;return e},[])}),{emptyGroups:h,patternIdxToConfig:g,charCodeToPatternIdxToConfig:v,hasCustom:i,canBeOptimized:_}}function validatePatterns(e,t){let n=[],r=findMissingPatterns(e);n=n.concat(r.errors);let i=findInvalidPatterns(r.valid),a=i.valid;return n=n.concat(i.errors),n=n.concat(validateRegExpPattern(a)),n=n.concat(findInvalidGroupType(a)),n=n.concat(findModesThatDoNotExist(a,t)),n=n.concat(findUnreachablePatterns(a)),n}function validateRegExpPattern(e){let t=[],n=filter(e,e=>W(e[q]));return t=t.concat(findEndOfInputAnchor(n)),t=t.concat(findStartOfInputAnchor(n)),t=t.concat(findUnsupportedFlags(n)),t=t.concat(findDuplicatePatterns(n)),t=t.concat(findEmptyMatchRegExps(n)),t}function findMissingPatterns(e){let t=filter(e,e=>!has(e,q));return{errors:o(t,e=>({message:`Token Type: ->`+e.name+`<- missing static 'PATTERN' property`,type:J.MISSING_PATTERN,tokenTypes:[e]})),valid:Yt(e,t)}}function findInvalidPatterns(e){let t=filter(e,e=>{let t=e[q];return!W(t)&&!I(t)&&!has(t,`exec`)&&!b(t)});return{errors:o(t,e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.`,type:J.INVALID_PATTERN,tokenTypes:[e]})),valid:Yt(e,t)}}const hn=/[^\\][$]/;function findEndOfInputAnchor(e){class EndAnchorFinder extends n{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}return o(filter(e,e=>{let t=e.PATTERN;try{let e=getRegExpAst(t),n=new EndAnchorFinder;return n.visit(e),n.found}catch{return hn.test(t.source)}}),e=>({message:`Unexpected RegExp Anchor Error:
9
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let i=getOptimizedStartCodesIndices(n.PATTERN,t.ensureOptimizations);isEmpty(i)&&(_=!1),x(i,t=>{addToMapOfArrays(e,t,g[r])})}else t.ensureOptimizations&&PRINT_ERROR(`${cn}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n This will disable the lexer's first char optimizations.
10
+ For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),_=!1;return e},[])}),{emptyGroups:h,patternIdxToConfig:g,charCodeToPatternIdxToConfig:v,hasCustom:i,canBeOptimized:_}}function validatePatterns(e,t){let n=[],r=findMissingPatterns(e);n=n.concat(r.errors);let i=findInvalidPatterns(r.valid),a=i.valid;return n=n.concat(i.errors),n=n.concat(validateRegExpPattern(a)),n=n.concat(findInvalidGroupType(a)),n=n.concat(findModesThatDoNotExist(a,t)),n=n.concat(findUnreachablePatterns(a)),n}function validateRegExpPattern(e){let t=[],n=filter(e,e=>W(e[q]));return t=t.concat(findEndOfInputAnchor(n)),t=t.concat(findStartOfInputAnchor(n)),t=t.concat(findUnsupportedFlags(n)),t=t.concat(findDuplicatePatterns(n)),t=t.concat(findEmptyMatchRegExps(n)),t}function findMissingPatterns(e){let t=filter(e,e=>!has(e,q));return{errors:o(t,e=>({message:`Token Type: ->`+e.name+`<- missing static 'PATTERN' property`,type:J.MISSING_PATTERN,tokenTypes:[e]})),valid:Gt(e,t)}}function findInvalidPatterns(e){let t=filter(e,e=>{let t=e[q];return!W(t)&&!I(t)&&!has(t,`exec`)&&!b(t)});return{errors:o(t,e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.`,type:J.INVALID_PATTERN,tokenTypes:[e]})),valid:Gt(e,t)}}const dn=/[^\\][$]/;function findEndOfInputAnchor(e){class EndAnchorFinder extends n{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}return o(filter(e,e=>{let t=e.PATTERN;try{let e=getRegExpAst(t),n=new EndAnchorFinder;return n.visit(e),n.found}catch{return dn.test(t.source)}}),e=>({message:`Unexpected RegExp Anchor Error:
11
11
  Token Type: ->`+e.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
12
- See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:J.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}function findEmptyMatchRegExps(e){return o(filter(e,e=>e.PATTERN.test(``)),e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' must not match an empty string`,type:J.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}const gn=/[^\\[][\^]|^\^/;function findStartOfInputAnchor(e){class StartAnchorFinder extends n{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}return o(filter(e,e=>{let t=e.PATTERN;try{let e=getRegExpAst(t),n=new StartAnchorFinder;return n.visit(e),n.found}catch{return gn.test(t.source)}}),e=>({message:`Unexpected RegExp Anchor Error:
12
+ See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:J.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}function findEmptyMatchRegExps(e){return o(filter(e,e=>e.PATTERN.test(``)),e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' must not match an empty string`,type:J.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}const fn=/[^\\[][\^]|^\^/;function findStartOfInputAnchor(e){class StartAnchorFinder extends n{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}return o(filter(e,e=>{let t=e.PATTERN;try{let e=getRegExpAst(t),n=new StartAnchorFinder;return n.visit(e),n.found}catch{return fn.test(t.source)}}),e=>({message:`Unexpected RegExp Anchor Error:
13
13
  Token Type: ->`+e.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
14
14
  See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:J.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}function findUnsupportedFlags(e){return o(filter(e,e=>{let t=e[q];return t instanceof RegExp&&(t.multiline||t.global)}),e=>({message:`Token Type: ->`+e.name+`<- static 'PATTERN' may NOT contain global('g') or multiline('m')`,type:J.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}function findDuplicatePatterns(e){let t=[],n=o(e,n=>reduce(e,(e,r)=>n.PATTERN.source===r.PATTERN.source&&!A(t,r)&&r.PATTERN!==Lexer.NA?(t.push(r),e.push(r),e):e,[]));return n=compact(n),o(filter(n,e=>e.length>1),e=>{let t=o(e,e=>e.name);return{message:`The same RegExp pattern ->${head(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(`, `)} <-`,type:J.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}function findInvalidGroupType(e){return o(filter(e,e=>{if(!has(e,`GROUP`))return!1;let t=e.GROUP;return t!==Lexer.SKIPPED&&t!==Lexer.NA&&!b(t)}),e=>({message:`Token Type: ->`+e.name+`<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String`,type:J.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}function findModesThatDoNotExist(e,t){return o(filter(e,e=>e.PUSH_MODE!==void 0&&!A(t,e.PUSH_MODE)),e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:J.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}function findUnreachablePatterns(e){let t=[],n=reduce(e,(e,t,n)=>{let r=t.PATTERN;return r===Lexer.NA||(b(r)?e.push({str:r,idx:n,tokenType:t}):W(r)&&noMetaChar(r)&&e.push({str:r.source,idx:n,tokenType:t})),e},[]);return x(e,(e,r)=>{x(n,({str:n,idx:i,tokenType:a})=>{if(r<i&&testTokenType(n,e.PATTERN)){let n=`Token: ->${a.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:J.UNREACHABLE_PATTERN,tokenTypes:[e,a]})}})}),t}function testTokenType(e,t){if(W(t)){let n=t.exec(e);return n!==null&&n.index===0}else if(I(t))return t(e,0,[],{});else if(has(t,`exec`))return t.exec(e,0,[],{});else if(typeof t==`string`)return t===e;else throw Error(`non exhaustive match`)}function noMetaChar(e){return K([`.`,`\\`,`[`,`]`,`|`,`^`,`$`,`(`,`)`,`?`,`*`,`+`,`{`],t=>e.source.indexOf(t)!==-1)===void 0}function addStartOfInput(e){let t=e.ignoreCase?`i`:``;return RegExp(`^(?:${e.source})`,t)}function addStickyFlag(e){let t=e.ignoreCase?`iy`:`y`;return RegExp(`${e.source}`,t)}function performRuntimeChecks(e,t,n){let r=[];return has(e,`defaultMode`)||r.push({message:`A MultiMode Lexer cannot be initialized without a <defaultMode> property in its definition
15
15
  `,type:J.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),has(e,`modes`)||r.push({message:`A MultiMode Lexer cannot be initialized without a <modes> property in its definition
16
- `,type:J.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),has(e,`modes`)&&has(e,`defaultMode`)&&!has(e.modes,e.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${pn}: <${e.defaultMode}>which does not exist\n`,type:J.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),has(e,`modes`)&&x(e.modes,(e,t)=>{x(e,(n,i)=>{isUndefined(n)?r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}>\n`,type:J.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):has(n,`LONGER_ALT`)&&x(R(n.LONGER_ALT)?n.LONGER_ALT:[n.LONGER_ALT],i=>{!isUndefined(i)&&!A(e,i)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${n.name}> outside of mode <${t}>\n`,type:J.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})})}),r}function performWarningRuntimeChecks(e,t,n){let r=[],i=!1,a=reject(compact(flatten(U(e.modes))),e=>e[q]===Lexer.NA),o=getCharCodes(n);return t&&x(a,e=>{let t=checkLineBreaksIssues(e,o);if(t!==!1){let n={message:buildLineBreakIssueMessage(e,t),type:t.issue,tokenType:e};r.push(n)}else has(e,`LINE_BREAKS`)?e.LINE_BREAKS===!0&&(i=!0):canMatchCharCode(o,e.PATTERN)&&(i=!0)}),t&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
16
+ `,type:J.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),has(e,`modes`)&&has(e,`defaultMode`)&&!has(e.modes,e.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${ln}: <${e.defaultMode}>which does not exist\n`,type:J.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),has(e,`modes`)&&x(e.modes,(e,t)=>{x(e,(n,i)=>{isUndefined(n)?r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}>\n`,type:J.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):has(n,`LONGER_ALT`)&&x(R(n.LONGER_ALT)?n.LONGER_ALT:[n.LONGER_ALT],i=>{!isUndefined(i)&&!A(e,i)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${n.name}> outside of mode <${t}>\n`,type:J.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})})}),r}function performWarningRuntimeChecks(e,t,n){let r=[],i=!1,a=reject(compact(flatten(U(e.modes))),e=>e[q]===Lexer.NA),o=getCharCodes(n);return t&&x(a,e=>{let t=checkLineBreaksIssues(e,o);if(t!==!1){let n={message:buildLineBreakIssueMessage(e,t),type:t.issue,tokenType:e};r.push(n)}else has(e,`LINE_BREAKS`)?e.LINE_BREAKS===!0&&(i=!0):canMatchCharCode(o,e.PATTERN)&&(i=!0)}),t&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
17
17
  This Lexer has been defined to track line and column information,
18
18
  But none of the Token Types can be identified as matching a line terminator.
19
19
  See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
20
- for details.`,type:J.NO_LINE_BREAKS_FLAGS}),r}function cloneEmptyGroups(e){let t={};return x(u(e),n=>{let r=e[n];if(R(r))t[n]=[];else throw Error(`non exhaustive match`)}),t}function isCustomPattern(e){let t=e.PATTERN;if(W(t))return!1;if(I(t)||has(t,`exec`))return!0;if(b(t))return!1;throw Error(`non exhaustive match`)}function isShortPattern(e){return b(e)&&e.length===1?e.charCodeAt(0):!1}const _n={test:function(e){let t=e.length;for(let n=this.lastIndex;n<t;n++){let t=e.charCodeAt(n);if(t===10)return this.lastIndex=n+1,!0;if(t===13)return e.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function checkLineBreaksIssues(e,t){if(has(e,`LINE_BREAKS`))return!1;if(W(e.PATTERN)){try{canMatchCharCode(t,e.PATTERN)}catch(e){return{issue:J.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}else if(b(e.PATTERN))return!1;else if(isCustomPattern(e))return{issue:J.CUSTOM_LINE_BREAK};else throw Error(`non exhaustive match`)}function buildLineBreakIssueMessage(e,t){if(t.issue===J.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
20
+ for details.`,type:J.NO_LINE_BREAKS_FLAGS}),r}function cloneEmptyGroups(e){let t={};return x(u(e),n=>{let r=e[n];if(R(r))t[n]=[];else throw Error(`non exhaustive match`)}),t}function isCustomPattern(e){let t=e.PATTERN;if(W(t))return!1;if(I(t)||has(t,`exec`))return!0;if(b(t))return!1;throw Error(`non exhaustive match`)}function isShortPattern(e){return b(e)&&e.length===1?e.charCodeAt(0):!1}const pn={test:function(e){let t=e.length;for(let n=this.lastIndex;n<t;n++){let t=e.charCodeAt(n);if(t===10)return this.lastIndex=n+1,!0;if(t===13)return e.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function checkLineBreaksIssues(e,t){if(has(e,`LINE_BREAKS`))return!1;if(W(e.PATTERN)){try{canMatchCharCode(t,e.PATTERN)}catch(e){return{issue:J.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}else if(b(e.PATTERN))return!1;else if(isCustomPattern(e))return{issue:J.CUSTOM_LINE_BREAK};else throw Error(`non exhaustive match`)}function buildLineBreakIssueMessage(e,t){if(t.issue===J.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
21
21
  \tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===J.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
22
- \tThe problem is in the <${e.name}> Token Type\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error(`non exhaustive match`)}function getCharCodes(e){return o(e,e=>b(e)?e.charCodeAt(0):e)}function addToMapOfArrays(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}let vn=[];function charCodeToOptimizedIndex(e){return e<256?e:vn[e]}function initCharCodeToOptimizedIndexMap(){if(isEmpty(vn)){vn=Array(65536);for(let e=0;e<65536;e++)vn[e]=e>255?255+~~(e/255):e}}function tokenStructuredMatcher(e,t){let n=e.tokenTypeIdx;return n===t.tokenTypeIdx?!0:t.isParent===!0&&t.categoryMatchesMap[n]===!0}function tokenStructuredMatcherNoCategories(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let yn=1;const bn={};function augmentTokenTypes(e){let t=expandCategories(e);assignTokenDefaultProps(t),assignCategoriesMapProp(t),assignCategoriesTokensProp(t),x(t,e=>{e.isParent=e.categoryMatches.length>0})}function expandCategories(e){let t=clone(e),n=e,r=!0;for(;r;){n=compact(flatten(o(n,e=>e.CATEGORIES)));let e=Yt(n,t);t=t.concat(e),isEmpty(e)?r=!1:n=e}return t}function assignTokenDefaultProps(e){x(e,e=>{hasShortKeyProperty(e)||(bn[yn]=e,e.tokenTypeIdx=yn++),hasCategoriesProperty(e)&&!R(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),hasCategoriesProperty(e)||(e.CATEGORIES=[]),hasExtendingTokensTypesProperty(e)||(e.categoryMatches=[]),hasExtendingTokensTypesMapProperty(e)||(e.categoryMatchesMap={})})}function assignCategoriesTokensProp(e){x(e,e=>{e.categoryMatches=[],x(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(bn[n].tokenTypeIdx)})})}function assignCategoriesMapProp(e){x(e,e=>{singleAssignCategoriesToksMap([],e)})}function singleAssignCategoriesToksMap(e,t){x(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),x(t.CATEGORIES,n=>{let r=e.concat(t);A(r,n)||singleAssignCategoriesToksMap(r,n)})}function hasShortKeyProperty(e){return has(e,`tokenTypeIdx`)}function hasCategoriesProperty(e){return has(e,`CATEGORIES`)}function hasExtendingTokensTypesProperty(e){return has(e,`categoryMatches`)}function hasExtendingTokensTypesMapProperty(e){return has(e,`categoryMatchesMap`)}function isTokenType(e){return has(e,`tokenTypeIdx`)}const xn={buildUnableToPopLexerModeMessage(e){return`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,n,r,i){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`}};var J;(function(e){e[e.MISSING_PATTERN=0]=`MISSING_PATTERN`,e[e.INVALID_PATTERN=1]=`INVALID_PATTERN`,e[e.EOI_ANCHOR_FOUND=2]=`EOI_ANCHOR_FOUND`,e[e.UNSUPPORTED_FLAGS_FOUND=3]=`UNSUPPORTED_FLAGS_FOUND`,e[e.DUPLICATE_PATTERNS_FOUND=4]=`DUPLICATE_PATTERNS_FOUND`,e[e.INVALID_GROUP_TYPE_FOUND=5]=`INVALID_GROUP_TYPE_FOUND`,e[e.PUSH_MODE_DOES_NOT_EXIST=6]=`PUSH_MODE_DOES_NOT_EXIST`,e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]=`MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE`,e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]=`MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY`,e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]=`MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST`,e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]=`LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED`,e[e.SOI_ANCHOR_FOUND=11]=`SOI_ANCHOR_FOUND`,e[e.EMPTY_MATCH_PATTERN=12]=`EMPTY_MATCH_PATTERN`,e[e.NO_LINE_BREAKS_FLAGS=13]=`NO_LINE_BREAKS_FLAGS`,e[e.UNREACHABLE_PATTERN=14]=`UNREACHABLE_PATTERN`,e[e.IDENTIFY_TERMINATOR=15]=`IDENTIFY_TERMINATOR`,e[e.CUSTOM_LINE_BREAK=16]=`CUSTOM_LINE_BREAK`,e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]=`MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE`})(J||={});const Sn={deferDefinitionErrorsHandling:!1,positionTracking:`full`,lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
23
- `,`\r`],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:xn,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Sn);var Lexer=class{constructor(e,t=Sn){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let n=Array(this.traceInitIndent+1).join(` `);this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:r,value:i}=Ae(t),a=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}else return t()},typeof t==`boolean`)throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
24
- a boolean 2nd argument is no longer supported`);this.config=w({},Sn,t);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n==`number`&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT(`Lexer Constructor`,()=>{let n,r=!0;this.TRACE_INIT(`Lexer Config handling`,()=>{if(this.config.lineTerminatorsPattern===Sn.lineTerminatorsPattern)this.config.lineTerminatorsPattern=_n;else if(this.config.lineTerminatorCharacters===Sn.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
25
- 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),R(e)?n={modes:{defaultMode:clone(e)},defaultMode:pn}:(r=!1,n=clone(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT(`performRuntimeChecks`,()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(performRuntimeChecks(n,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT(`performWarningRuntimeChecks`,()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(performWarningRuntimeChecks(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),n.modes=n.modes?n.modes:{},x(n.modes,(e,t)=>{n.modes[t]=reject(e,e=>isUndefined(e))});let i=u(n.modes);if(x(n.modes,(e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,()=>{if(this.modes.push(n),this.config.skipValidations===!1&&this.TRACE_INIT(`validatePatterns`,()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(validatePatterns(e,i))}),isEmpty(this.lexerDefinitionErrors)){augmentTokenTypes(e);let r;this.TRACE_INIT(`analyzeTokenTypes`,()=>{r=analyzeTokenTypes(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[n]=r.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=r.charCodeToPatternIdxToConfig,this.emptyGroups=w({},this.emptyGroups,r.emptyGroups),this.hasCustom=r.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=r.canBeOptimized}})}),this.defaultMode=n.defaultMode,!isEmpty(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let e=o(this.lexerDefinitionErrors,e=>e.message).join(`-----------------------
22
+ \tThe problem is in the <${e.name}> Token Type\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error(`non exhaustive match`)}function getCharCodes(e){return o(e,e=>b(e)?e.charCodeAt(0):e)}function addToMapOfArrays(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}let mn=[];function charCodeToOptimizedIndex(e){return e<256?e:mn[e]}function initCharCodeToOptimizedIndexMap(){if(isEmpty(mn)){mn=Array(65536);for(let e=0;e<65536;e++)mn[e]=e>255?255+~~(e/255):e}}function tokenStructuredMatcher(e,t){let n=e.tokenTypeIdx;return n===t.tokenTypeIdx?!0:t.isParent===!0&&t.categoryMatchesMap[n]===!0}function tokenStructuredMatcherNoCategories(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let hn=1;const gn={};function augmentTokenTypes(e){let t=expandCategories(e);assignTokenDefaultProps(t),assignCategoriesMapProp(t),assignCategoriesTokensProp(t),x(t,e=>{e.isParent=e.categoryMatches.length>0})}function expandCategories(e){let t=clone(e),n=e,r=!0;for(;r;){n=compact(flatten(o(n,e=>e.CATEGORIES)));let e=Gt(n,t);t=t.concat(e),isEmpty(e)?r=!1:n=e}return t}function assignTokenDefaultProps(e){x(e,e=>{hasShortKeyProperty(e)||(gn[hn]=e,e.tokenTypeIdx=hn++),hasCategoriesProperty(e)&&!R(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),hasCategoriesProperty(e)||(e.CATEGORIES=[]),hasExtendingTokensTypesProperty(e)||(e.categoryMatches=[]),hasExtendingTokensTypesMapProperty(e)||(e.categoryMatchesMap={})})}function assignCategoriesTokensProp(e){x(e,e=>{e.categoryMatches=[],x(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(gn[n].tokenTypeIdx)})})}function assignCategoriesMapProp(e){x(e,e=>{singleAssignCategoriesToksMap([],e)})}function singleAssignCategoriesToksMap(e,t){x(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),x(t.CATEGORIES,n=>{let r=e.concat(t);A(r,n)||singleAssignCategoriesToksMap(r,n)})}function hasShortKeyProperty(e){return has(e,`tokenTypeIdx`)}function hasCategoriesProperty(e){return has(e,`CATEGORIES`)}function hasExtendingTokensTypesProperty(e){return has(e,`categoryMatches`)}function hasExtendingTokensTypesMapProperty(e){return has(e,`categoryMatchesMap`)}function isTokenType(e){return has(e,`tokenTypeIdx`)}const _n={buildUnableToPopLexerModeMessage(e){return`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,n,r,i){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`}};var J;(function(e){e[e.MISSING_PATTERN=0]=`MISSING_PATTERN`,e[e.INVALID_PATTERN=1]=`INVALID_PATTERN`,e[e.EOI_ANCHOR_FOUND=2]=`EOI_ANCHOR_FOUND`,e[e.UNSUPPORTED_FLAGS_FOUND=3]=`UNSUPPORTED_FLAGS_FOUND`,e[e.DUPLICATE_PATTERNS_FOUND=4]=`DUPLICATE_PATTERNS_FOUND`,e[e.INVALID_GROUP_TYPE_FOUND=5]=`INVALID_GROUP_TYPE_FOUND`,e[e.PUSH_MODE_DOES_NOT_EXIST=6]=`PUSH_MODE_DOES_NOT_EXIST`,e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]=`MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE`,e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]=`MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY`,e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]=`MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST`,e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]=`LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED`,e[e.SOI_ANCHOR_FOUND=11]=`SOI_ANCHOR_FOUND`,e[e.EMPTY_MATCH_PATTERN=12]=`EMPTY_MATCH_PATTERN`,e[e.NO_LINE_BREAKS_FLAGS=13]=`NO_LINE_BREAKS_FLAGS`,e[e.UNREACHABLE_PATTERN=14]=`UNREACHABLE_PATTERN`,e[e.IDENTIFY_TERMINATOR=15]=`IDENTIFY_TERMINATOR`,e[e.CUSTOM_LINE_BREAK=16]=`CUSTOM_LINE_BREAK`,e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]=`MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE`})(J||={});const vn={deferDefinitionErrorsHandling:!1,positionTracking:`full`,lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
23
+ `,`\r`],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:_n,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(vn);var Lexer=class{constructor(e,t=vn){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let n=Array(this.traceInitIndent+1).join(` `);this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:r,value:i}=timer(t),a=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}else return t()},typeof t==`boolean`)throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
24
+ a boolean 2nd argument is no longer supported`);this.config=w({},vn,t);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n==`number`&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT(`Lexer Constructor`,()=>{let n,r=!0;this.TRACE_INIT(`Lexer Config handling`,()=>{if(this.config.lineTerminatorsPattern===vn.lineTerminatorsPattern)this.config.lineTerminatorsPattern=pn;else if(this.config.lineTerminatorCharacters===vn.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
25
+ 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),R(e)?n={modes:{defaultMode:clone(e)},defaultMode:ln}:(r=!1,n=clone(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT(`performRuntimeChecks`,()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(performRuntimeChecks(n,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT(`performWarningRuntimeChecks`,()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(performWarningRuntimeChecks(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),n.modes=n.modes?n.modes:{},x(n.modes,(e,t)=>{n.modes[t]=reject(e,e=>isUndefined(e))});let i=u(n.modes);if(x(n.modes,(e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,()=>{if(this.modes.push(n),this.config.skipValidations===!1&&this.TRACE_INIT(`validatePatterns`,()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(validatePatterns(e,i))}),isEmpty(this.lexerDefinitionErrors)){augmentTokenTypes(e);let r;this.TRACE_INIT(`analyzeTokenTypes`,()=>{r=analyzeTokenTypes(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[n]=r.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=r.charCodeToPatternIdxToConfig,this.emptyGroups=w({},this.emptyGroups,r.emptyGroups),this.hasCustom=r.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=r.canBeOptimized}})}),this.defaultMode=n.defaultMode,!isEmpty(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let e=o(this.lexerDefinitionErrors,e=>e.message).join(`-----------------------
26
26
  `);throw Error(`Errors detected in definition of Lexer:
27
- `+e)}x(this.lexerDefinitionWarning,e=>{ke(e.message)}),this.TRACE_INIT(`Choosing sub-methods implementations`,()=>{if(mn?(this.chopInput=Te,this.match=this.matchWithTest):(this.updateLastIndex=noop,this.match=this.matchWithExec),r&&(this.handleModes=noop),this.trackStartLines===!1&&(this.computeNewColumn=Te),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=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`,()=>{let e=reduce(this.canModeBeOptimized,(e,t,n)=>(t===!1&&e.push(n),e),[]);if(t.ensureOptimizations&&!isEmpty(e))throw Error(`Lexer Modes: < ${e.join(`, `)} > cannot be optimized.\n Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
28
- Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT(`clearRegExpParserCache`,()=>{clearRegExpParserCache()}),this.TRACE_INIT(`toFastProperties`,()=>{Me(this)})})}tokenize(e,t=this.defaultMode){if(!isEmpty(this.lexerDefinitionErrors)){let e=o(this.lexerDefinitionErrors,e=>e.message).join(`-----------------------
27
+ `+e)}x(this.lexerDefinitionWarning,e=>{PRINT_WARNING(e.message)}),this.TRACE_INIT(`Choosing sub-methods implementations`,()=>{if(un?(this.chopInput=Ee,this.match=this.matchWithTest):(this.updateLastIndex=noop,this.match=this.matchWithExec),r&&(this.handleModes=noop),this.trackStartLines===!1&&(this.computeNewColumn=Ee),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=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`,()=>{let e=reduce(this.canModeBeOptimized,(e,t,n)=>(t===!1&&e.push(n),e),[]);if(t.ensureOptimizations&&!isEmpty(e))throw Error(`Lexer Modes: < ${e.join(`, `)} > cannot be optimized.\n Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
28
+ Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT(`clearRegExpParserCache`,()=>{clearRegExpParserCache()}),this.TRACE_INIT(`toFastProperties`,()=>{toFastProperties(this)})})}tokenize(e,t=this.defaultMode){if(!isEmpty(this.lexerDefinitionErrors)){let e=o(this.lexerDefinitionErrors,e=>e.message).join(`-----------------------
29
29
  `);throw Error(`Unable to Tokenize because Errors detected in definition of Lexer:
30
- `+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_=e,v=_.length,y=0,ee=0,te=this.hasCustom?0:Math.floor(e.length/10),b=Array(te),x=[],S=this.trackStartLines?1:void 0,C=this.trackStartLines?1:void 0,w=cloneEmptyGroups(this.emptyGroups),ne=this.trackStartLines,T=this.config.lineTerminatorsPattern,E=0,D=[],O=[],k=[],re=[];Object.freeze(re);let A;function getPossiblePatternsSlow(){return D}function getPossiblePatternsOptimized(e){let t=charCodeToOptimizedIndex(e),n=O[t];return n===void 0?re:n}let pop_mode=e=>{if(k.length===1&&e.tokenType.PUSH_MODE===void 0){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);x.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{k.pop();let e=last(k);D=this.patternIdxToConfig[e],O=this.charCodeToPatternIdxToConfig[e],E=D.length;let t=this.canModeBeOptimized[e]&&this.config.safeMode===!1;A=O&&t?getPossiblePatternsOptimized:getPossiblePatternsSlow}};function push_mode(e){k.push(e),O=this.charCodeToPatternIdxToConfig[e],D=this.patternIdxToConfig[e],E=D.length,E=D.length;let t=this.canModeBeOptimized[e]&&this.config.safeMode===!1;A=O&&t?getPossiblePatternsOptimized:getPossiblePatternsSlow}push_mode.call(this,t);let j,ie=this.config.recoveryEnabled;for(;y<v;){s=null;let t=_.charCodeAt(y),te=A(t),O=te.length;for(n=0;n<O;n++){j=te[n];let r=j.pattern;c=null;let u=j.short;if(u===!1?j.isCustom===!0?(g=r.exec(_,y,b,w),g===null?s=null:(s=g[0],g.payload!==void 0&&(c=g.payload))):(this.updateLastIndex(r,y),s=this.match(r,e,y)):t===u&&(s=r),s!==null){if(o=j.longerAlt,o!==void 0){let t=o.length;for(i=0;i<t;i++){let t=D[o[i]],n=t.pattern;if(l=null,t.isCustom===!0?(g=n.exec(_,y,b,w),g===null?a=null:(a=g[0],g.payload!==void 0&&(l=g.payload))):(this.updateLastIndex(n,y),a=this.match(n,e,y)),a&&a.length>s.length){s=a,c=l,j=t;break}}}break}}if(s!==null){if(u=s.length,d=j.group,d!==void 0&&(f=j.tokenTypeIdx,p=this.createTokenInstance(s,y,f,j.tokenType,S,C,u),this.handlePayload(p,c),d===!1?ee=this.addToken(b,ee,p):w[d].push(p)),e=this.chopInput(e,u),y+=u,C=this.computeNewColumn(C,u),ne===!0&&j.canLineTerminator===!0){let e=0,t,n;T.lastIndex=0;do t=T.test(s),t===!0&&(n=T.lastIndex-1,e++);while(t===!0);e!==0&&(S+=e,C=u-n,this.updateTokenEndLineColumnLocation(p,d,n,e,S,C,u))}this.handleModes(j,pop_mode,push_mode,p)}else{let t=y,n=S,i=C,a=ie===!1;for(;a===!1&&y<v;)for(e=this.chopInput(e,1),y++,r=0;r<E;r++){let t=D[r],n=t.pattern,i=t.short;if(i===!1?t.isCustom===!0?a=n.exec(_,y,b,w)!==null:(this.updateLastIndex(n,y),a=n.exec(e)!==null):_.charCodeAt(y)===i&&(a=!0),a===!0)break}if(m=y-t,C=this.computeNewColumn(C,m),h=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(_,t,m,n,i),x.push({offset:t,line:n,column:i,length:m,message:h}),ie===!1)break}}return this.hasCustom||(b.length=ee),{tokens:b,groups:w,errors:x}}handleModes(e,t,n,r){if(e.pop===!0){let i=e.push;t(r),i!==void 0&&n.call(this,i)}else e.push!==void 0&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,r,i,a,o){let s,c;t!==void 0&&(s=n===o-1,c=s?-1:0,r===1&&s===!0||(e.endLine=i+c,e.endColumn=a-1+-c))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,r){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:r}}createStartOnlyToken(e,t,n,r,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:n,tokenType:r}}createFullToken(e,t,n,r,i,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:i,endLine:i,startColumn:a,endColumn:a+o-1,tokenTypeIdx:n,tokenType:r}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,n){return e.test(t)===!0?t.substring(n,e.lastIndex):null}matchWithExec(e,t){let n=e.exec(t);return n===null?null:n[0]}};Lexer.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.`,Lexer.NA=/NOT_APPLICABLE/;function tokenLabel(e){return hasTokenLabel(e)?e.LABEL:e.name}function hasTokenLabel(e){return b(e.LABEL)&&e.LABEL!==``}const Cn=`categories`,wn=`label`,Tn=`group`,En=`push_mode`,Dn=`pop_mode`,On=`longer_alt`,kn=`line_breaks`,An=`start_chars_hint`;function createToken(e){return createTokenInternal(e)}function createTokenInternal(e){let t=e.pattern,n={};if(n.name=e.name,isUndefined(t)||(n.PATTERN=t),has(e,`parent`))throw`The parent property is no longer supported.
31
- See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return has(e,Cn)&&(n.CATEGORIES=e[Cn]),augmentTokenTypes([n]),has(e,wn)&&(n.LABEL=e[wn]),has(e,Tn)&&(n.GROUP=e[Tn]),has(e,Dn)&&(n.POP_MODE=e[Dn]),has(e,En)&&(n.PUSH_MODE=e[En]),has(e,On)&&(n.LONGER_ALT=e[On]),has(e,kn)&&(n.LINE_BREAKS=e[kn]),has(e,An)&&(n.START_CHARS_HINT=e[An]),n}const Y=createToken({name:`EOF`,pattern:Lexer.NA});augmentTokenTypes([Y]);function createTokenInstance(e,t,n,r,i,a,o,s){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:a,startColumn:o,endColumn:s,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function tokenMatcher(e,t){return tokenStructuredMatcher(e,t)}const jn={buildMismatchTokenMessage({expected:e,actual:t,previous:n,ruleName:r}){return`Expecting ${hasTokenLabel(e)?`--> ${tokenLabel(e)} <--`:`token of type --> ${e.name} <--`} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:e,ruleName:t}){return`Redundant input, expecting EOF but found: `+e.image},buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:i}){let a=`
30
+ `+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_=e,v=_.length,y=0,ee=0,te=this.hasCustom?0:Math.floor(e.length/10),b=Array(te),x=[],S=this.trackStartLines?1:void 0,C=this.trackStartLines?1:void 0,w=cloneEmptyGroups(this.emptyGroups),ne=this.trackStartLines,T=this.config.lineTerminatorsPattern,E=0,D=[],O=[],k=[],re=[];Object.freeze(re);let A;function getPossiblePatternsSlow(){return D}function getPossiblePatternsOptimized(e){let t=charCodeToOptimizedIndex(e),n=O[t];return n===void 0?re:n}let pop_mode=e=>{if(k.length===1&&e.tokenType.PUSH_MODE===void 0){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);x.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{k.pop();let e=last(k);D=this.patternIdxToConfig[e],O=this.charCodeToPatternIdxToConfig[e],E=D.length;let t=this.canModeBeOptimized[e]&&this.config.safeMode===!1;A=O&&t?getPossiblePatternsOptimized:getPossiblePatternsSlow}};function push_mode(e){k.push(e),O=this.charCodeToPatternIdxToConfig[e],D=this.patternIdxToConfig[e],E=D.length,E=D.length;let t=this.canModeBeOptimized[e]&&this.config.safeMode===!1;A=O&&t?getPossiblePatternsOptimized:getPossiblePatternsSlow}push_mode.call(this,t);let j,ie=this.config.recoveryEnabled;for(;y<v;){s=null;let t=_.charCodeAt(y),te=A(t),O=te.length;for(n=0;n<O;n++){j=te[n];let r=j.pattern;c=null;let u=j.short;if(u===!1?j.isCustom===!0?(g=r.exec(_,y,b,w),g===null?s=null:(s=g[0],g.payload!==void 0&&(c=g.payload))):(this.updateLastIndex(r,y),s=this.match(r,e,y)):t===u&&(s=r),s!==null){if(o=j.longerAlt,o!==void 0){let t=o.length;for(i=0;i<t;i++){let t=D[o[i]],n=t.pattern;if(l=null,t.isCustom===!0?(g=n.exec(_,y,b,w),g===null?a=null:(a=g[0],g.payload!==void 0&&(l=g.payload))):(this.updateLastIndex(n,y),a=this.match(n,e,y)),a&&a.length>s.length){s=a,c=l,j=t;break}}}break}}if(s!==null){if(u=s.length,d=j.group,d!==void 0&&(f=j.tokenTypeIdx,p=this.createTokenInstance(s,y,f,j.tokenType,S,C,u),this.handlePayload(p,c),d===!1?ee=this.addToken(b,ee,p):w[d].push(p)),e=this.chopInput(e,u),y+=u,C=this.computeNewColumn(C,u),ne===!0&&j.canLineTerminator===!0){let e=0,t,n;T.lastIndex=0;do t=T.test(s),t===!0&&(n=T.lastIndex-1,e++);while(t===!0);e!==0&&(S+=e,C=u-n,this.updateTokenEndLineColumnLocation(p,d,n,e,S,C,u))}this.handleModes(j,pop_mode,push_mode,p)}else{let t=y,n=S,i=C,a=ie===!1;for(;a===!1&&y<v;)for(e=this.chopInput(e,1),y++,r=0;r<E;r++){let t=D[r],n=t.pattern,i=t.short;if(i===!1?t.isCustom===!0?a=n.exec(_,y,b,w)!==null:(this.updateLastIndex(n,y),a=n.exec(e)!==null):_.charCodeAt(y)===i&&(a=!0),a===!0)break}if(m=y-t,C=this.computeNewColumn(C,m),h=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(_,t,m,n,i),x.push({offset:t,line:n,column:i,length:m,message:h}),ie===!1)break}}return this.hasCustom||(b.length=ee),{tokens:b,groups:w,errors:x}}handleModes(e,t,n,r){if(e.pop===!0){let i=e.push;t(r),i!==void 0&&n.call(this,i)}else e.push!==void 0&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,r,i,a,o){let s,c;t!==void 0&&(s=n===o-1,c=s?-1:0,r===1&&s===!0||(e.endLine=i+c,e.endColumn=a-1+-c))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,r){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:r}}createStartOnlyToken(e,t,n,r,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:n,tokenType:r}}createFullToken(e,t,n,r,i,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:i,endLine:i,startColumn:a,endColumn:a+o-1,tokenTypeIdx:n,tokenType:r}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,n){return e.test(t)===!0?t.substring(n,e.lastIndex):null}matchWithExec(e,t){let n=e.exec(t);return n===null?null:n[0]}};Lexer.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.`,Lexer.NA=/NOT_APPLICABLE/;function tokenLabel(e){return hasTokenLabel(e)?e.LABEL:e.name}function hasTokenLabel(e){return b(e.LABEL)&&e.LABEL!==``}const yn=`categories`,bn=`label`,xn=`group`,Sn=`push_mode`,Cn=`pop_mode`,wn=`longer_alt`,Tn=`line_breaks`,En=`start_chars_hint`;function createToken(e){return createTokenInternal(e)}function createTokenInternal(e){let t=e.pattern,n={};if(n.name=e.name,isUndefined(t)||(n.PATTERN=t),has(e,`parent`))throw`The parent property is no longer supported.
31
+ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return has(e,yn)&&(n.CATEGORIES=e[yn]),augmentTokenTypes([n]),has(e,bn)&&(n.LABEL=e[bn]),has(e,xn)&&(n.GROUP=e[xn]),has(e,Cn)&&(n.POP_MODE=e[Cn]),has(e,Sn)&&(n.PUSH_MODE=e[Sn]),has(e,wn)&&(n.LONGER_ALT=e[wn]),has(e,Tn)&&(n.LINE_BREAKS=e[Tn]),has(e,En)&&(n.START_CHARS_HINT=e[En]),n}const Y=createToken({name:`EOF`,pattern:Lexer.NA});augmentTokenTypes([Y]);function createTokenInstance(e,t,n,r,i,a,o,s){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:a,startColumn:o,endColumn:s,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function tokenMatcher(e,t){return tokenStructuredMatcher(e,t)}const Dn={buildMismatchTokenMessage({expected:e,actual:t,previous:n,ruleName:r}){return`Expecting ${hasTokenLabel(e)?`--> ${tokenLabel(e)} <--`:`token of type --> ${e.name} <--`} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:e,ruleName:t}){return`Redundant input, expecting EOF but found: `+e.image},buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:i}){let a=`
32
32
  but found: '`+head(t).image+`'`;return r?`Expecting: `+r+a:`Expecting: one of these possible Token sequences:\n${o(o(reduce(e,(e,t)=>e.concat(t),[]),e=>`[${o(e,e=>tokenLabel(e)).join(`, `)}]`),(e,t)=>` ${t+1}. ${e}`).join(`
33
33
  `)}`+a},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){let i=`
34
- but found: '`+head(t).image+`'`;return n?`Expecting: `+n+i:`Expecting: expecting at least one iteration which starts with one of these possible Token sequences::\n <${o(e,e=>`[${o(e,e=>tokenLabel(e)).join(`,`)}]`).join(` ,`)}>`+i}};Object.freeze(jn);const Mn={buildRuleNotFoundError(e,t){return`Invalid grammar, reference to a rule which is not defined: ->`+t.nonTerminalName+`<-
34
+ but found: '`+head(t).image+`'`;return n?`Expecting: `+n+i:`Expecting: expecting at least one iteration which starts with one of these possible Token sequences::\n <${o(e,e=>`[${o(e,e=>tokenLabel(e)).join(`,`)}]`).join(` ,`)}>`+i}};Object.freeze(Dn);const On={buildRuleNotFoundError(e,t){return`Invalid grammar, reference to a rule which is not defined: ->`+t.nonTerminalName+`<-
35
35
  inside top level rule: ->`+e.name+`<-`}},X={buildDuplicateFoundError(e,t){function getExtraProductionArgument(e){return e instanceof P?e.terminalType.name:e instanceof j?e.nonTerminalName:``}let n=e.name,r=head(t),i=r.idx,a=B(r),o=getExtraProductionArgument(r),s=`->${a}${i>0?i:``}<- ${o?`with argument: ->${o}<-`:``}
36
36
  appears more than once (${t.length} times) in the top level rule: ->${n}<-.
37
37
  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
38
38
  `;return s=s.replace(/[ \t]+/g,` `),s=s.replace(/\s\s+/g,`
39
39
  `),s},buildNamespaceConflictError(e){return`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(e){let t=o(e.prefixPath,e=>tokenLabel(e)).join(`, `),n=e.alternation.idx===0?``:e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(` ,`)}> due to common lookahead prefix\nin <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){let t=o(e.prefixPath,e=>tokenLabel(e)).join(`, `),n=e.alternation.idx===0?``:e.alternation.idx,r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(` ,`)}> in <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+=`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
40
- For Further details.`,r},buildEmptyRepetitionError(e){let t=B(e.repetition);return e.repetition.idx!==0&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError(e){return`deprecated`},buildEmptyAlternationError(e){return`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`},buildTooManyAlternativesError(e){return`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(e){let t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${`${t} --> ${o(e.leftRecursionPath,e=>e.name).concat([t]).join(` --> `)}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return`deprecated`},buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof me?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function resolveGrammar$1(e,t){let n=new GastRefResolverVisitor(e,t);return n.resolveRefs(),n.errors}e(resolveGrammar$1,`resolveGrammar`);var GastRefResolverVisitor=class extends k{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){x(U(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:$.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},AbstractNextPossibleTokensWalker=class extends RestWalker{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=clone(this.path.ruleStack).reverse(),this.occurrenceStack=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,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){isEmpty(this.ruleStack)?(this.nextProductionName=``,this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},NextAfterTokenWalker=class extends AbstractNextPossibleTokensWalker{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName=``,this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let e=new z({definition:t.concat(n)});this.possibleTokTypes=first(e),this.found=!0}}},AbstractNextTerminalAfterProductionWalker=class extends RestWalker{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}},NextTerminalAfterManyWalker=class extends AbstractNextTerminalAfterProductionWalker{walkMany(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}},NextTerminalAfterManySepWalker=class extends AbstractNextTerminalAfterProductionWalker{walkManySep(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}},NextTerminalAfterAtLeastOneWalker=class extends AbstractNextTerminalAfterProductionWalker{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}},NextTerminalAfterAtLeastOneSepWalker=class extends AbstractNextTerminalAfterProductionWalker{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}};function possiblePathsFrom(e,t,n=[]){n=clone(n);let r=[],i=0;function remainingPathWith(t){return t.concat(drop(e,i+1))}function getAlternativesForProd(e){let i=possiblePathsFrom(remainingPathWith(e),t,n);return r.concat(i)}for(;n.length<t&&i<e.length;){let t=e[i];if(t instanceof z||t instanceof j)return getAlternativesForProd(t.definition);if(t instanceof F)r=getAlternativesForProd(t.definition);else if(t instanceof M)return getAlternativesForProd(t.definition.concat([new V({definition:t.definition})]));else if(t instanceof N)return getAlternativesForProd([new z({definition:t.definition}),new V({definition:[new P({terminalType:t.separator})].concat(t.definition)})]);else if(t instanceof ye)r=getAlternativesForProd(t.definition.concat([new V({definition:[new P({terminalType:t.separator})].concat(t.definition)})]));else if(t instanceof V)r=getAlternativesForProd(t.definition.concat([new V({definition:t.definition})]));else if(t instanceof L)return x(t.definition,e=>{isEmpty(e.definition)===!1&&(r=getAlternativesForProd(e.definition))}),r;else if(t instanceof P)n.push(t.terminalType);else throw Error(`non exhaustive match`);i++}return r.push({partialPath:n,suffixDef:drop(e,i)}),r}function nextPossibleTokensAfter(e,t,n,r){let i=`EXIT_NONE_TERMINAL`,a=[i],o=`EXIT_ALTERNATIVE`,s=!1,c=t.length,l=c-r-1,u=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!isEmpty(d);){let e=d.pop();if(e===o){s&&last(d).idx<=l&&d.pop();continue}let r=e.def,f=e.idx,p=e.ruleStack,m=e.occurrenceStack;if(isEmpty(r))continue;let h=r[0];if(h===i){let e={idx:f,def:drop(r),ruleStack:dropRight(p),occurrenceStack:dropRight(m)};d.push(e)}else if(h instanceof P)if(f<c-1){let e=f+1,i=t[e];if(n(i,h.terminalType)){let t={idx:e,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(t)}}else if(f===c-1)u.push({nextTokenType:h.terminalType,nextTokenOccurrence:h.idx,ruleStack:p,occurrenceStack:m}),s=!0;else throw Error(`non exhaustive match`);else if(h instanceof j){let e=clone(p);e.push(h.nonTerminalName);let t=clone(m);t.push(h.idx);let n={idx:f,def:h.definition.concat(a,drop(r)),ruleStack:e,occurrenceStack:t};d.push(n)}else if(h instanceof F){let e={idx:f,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t={idx:f,def:h.definition.concat(drop(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof M){let e=new V({definition:h.definition,idx:h.idx}),t={idx:f,def:h.definition.concat([e],drop(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof N){let e=new V({definition:[new P({terminalType:h.separator})].concat(h.definition),idx:h.idx}),t={idx:f,def:h.definition.concat([e],drop(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof ye){let e={idx:f,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t=new V({definition:[new P({terminalType:h.separator})].concat(h.definition),idx:h.idx}),n={idx:f,def:h.definition.concat([t],drop(r)),ruleStack:p,occurrenceStack:m};d.push(n)}else if(h instanceof V){let e={idx:f,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t=new V({definition:h.definition,idx:h.idx}),n={idx:f,def:h.definition.concat([t],drop(r)),ruleStack:p,occurrenceStack:m};d.push(n)}else if(h instanceof L)for(let e=h.definition.length-1;e>=0;e--){let t={idx:f,def:h.definition[e].definition.concat(drop(r)),ruleStack:p,occurrenceStack:m};d.push(t),d.push(o)}else if(h instanceof z)d.push({idx:f,def:h.definition.concat(drop(r)),ruleStack:p,occurrenceStack:m});else if(h instanceof me)d.push(expandTopLevelRule(h,f,p,m));else throw Error(`non exhaustive match`)}return u}function expandTopLevelRule(e,t,n,r){let i=clone(n);i.push(e.name);let a=clone(r);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}var Z;(function(e){e[e.OPTION=0]=`OPTION`,e[e.REPETITION=1]=`REPETITION`,e[e.REPETITION_MANDATORY=2]=`REPETITION_MANDATORY`,e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]=`REPETITION_MANDATORY_WITH_SEPARATOR`,e[e.REPETITION_WITH_SEPARATOR=4]=`REPETITION_WITH_SEPARATOR`,e[e.ALTERNATION=5]=`ALTERNATION`})(Z||={});function getProdType(e){if(e instanceof F||e===`Option`)return Z.OPTION;if(e instanceof V||e===`Repetition`)return Z.REPETITION;if(e instanceof M||e===`RepetitionMandatory`)return Z.REPETITION_MANDATORY;if(e instanceof N||e===`RepetitionMandatoryWithSeparator`)return Z.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof ye||e===`RepetitionWithSeparator`)return Z.REPETITION_WITH_SEPARATOR;if(e instanceof L||e===`Alternation`)return Z.ALTERNATION;throw Error(`non exhaustive match`)}function getLookaheadPaths(e){let{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,a=getProdType(r);return a===Z.ALTERNATION?getLookaheadPathsForOr(t,n,i):getLookaheadPathsForOptionalProd(t,n,a,i)}function buildLookaheadFuncForOr(e,t,n,r,i,a){let o=getLookaheadPathsForOr(e,t,n);return a(o,r,areTokenCategoriesNotUsed(o)?tokenStructuredMatcherNoCategories:tokenStructuredMatcher,i)}function buildLookaheadFuncForOptionalProd(e,t,n,r,i,a){let o=getLookaheadPathsForOptionalProd(e,t,i,n),s=areTokenCategoriesNotUsed(o)?tokenStructuredMatcherNoCategories:tokenStructuredMatcher;return a(o[0],s,r)}function buildAlternativesLookAheadFunc(e,t,n,r){let i=e.length,a=H(e,e=>H(e,e=>e.length===1));if(t)return function(t){let r=o(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,o=r[t];if(!(o!==void 0&&o.call(this)===!1))nextPath:for(let e=0;e<a;e++){let r=i[e],a=r.length;for(let e=0;e<a;e++)if(n(this.LA(e+1),r[e])===!1)continue nextPath;return t}}};if(a&&!r){let t=reduce(o(e,e=>flatten(e)),(e,t,n)=>(x(t,t=>{has(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),x(t.categoryMatches,t=>{has(e,t)||(e[t]=n)})}),e),{});return function(){return t[this.LA(1).tokenTypeIdx]}}else return function(){for(let t=0;t<i;t++){let r=e[t],i=r.length;nextPath:for(let e=0;e<i;e++){let i=r[e],a=i.length;for(let e=0;e<a;e++)if(n(this.LA(e+1),i[e])===!1)continue nextPath;return t}}}}function buildSingleAlternativeLookaheadFunction(e,t,n){let r=H(e,e=>e.length===1),i=e.length;if(r&&!n){let t=flatten(e);if(t.length===1&&isEmpty(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}else{let e=reduce(t,(e,t,n)=>(e[t.tokenTypeIdx]=!0,x(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return e[this.LA(1).tokenTypeIdx]===!0}}}else return function(){nextPath:for(let n=0;n<i;n++){let r=e[n],i=r.length;for(let e=0;e<i;e++)if(t(this.LA(e+1),r[e])===!1)continue nextPath;return!0}return!1}}var RestDefinitionFinderWalker=class extends RestWalker{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,r){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=n.concat(r),!0):!1}walkOption(e,t,n){this.checkIsTarget(e,Z.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,Z.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,Z.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,Z.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,Z.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}},InsideDefinitionFinderVisitor=class extends k{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Z.OPTION)}visitRepetition(e){this.checkIsTarget(e,Z.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Z.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Z.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Z.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Z.ALTERNATION)}};function initializeArrayOfArrays(e){let t=Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function pathToHashKeys(e){let t=[``];for(let n=0;n<e.length;n++){let r=e[n],i=[];for(let e=0;e<t.length;e++){let n=t[e];i.push(n+`_`+r.tokenTypeIdx);for(let e=0;e<r.categoryMatches.length;e++){let t=`_`+r.categoryMatches[e];i.push(n+t)}}t=i}return t}function isUniquePrefixHash(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;let i=e[r];for(let e=0;e<t.length;e++)if(i[t[e]]===!0)return!1}return!0}function lookAheadSequenceFromAlternatives(e,t){let n=o(e,e=>possiblePathsFrom([e],1)),r=initializeArrayOfArrays(n.length),i=o(n,e=>{let t={};return x(e,e=>{x(pathToHashKeys(e.partialPath),e=>{t[e]=!0})}),t}),a=n;for(let e=1;e<=t;e++){let n=a;a=initializeArrayOfArrays(n.length);for(let o=0;o<n.length;o++){let s=n[o];for(let n=0;n<s.length;n++){let c=s[n].partialPath,l=s[n].suffixDef,u=pathToHashKeys(c);if(isUniquePrefixHash(i,u,o)||isEmpty(l)||c.length===t){let e=r[o];if(containsPath(e,c)===!1){e.push(c);for(let e=0;e<u.length;e++){let t=u[e];i[o][t]=!0}}}else{let t=possiblePathsFrom(l,e+1,c);a[o]=a[o].concat(t),x(t,e=>{x(pathToHashKeys(e.partialPath),e=>{i[o][e]=!0})})}}}}return r}function getLookaheadPathsForOr(e,t,n,r){let i=new InsideDefinitionFinderVisitor(e,Z.ALTERNATION,r);return t.accept(i),lookAheadSequenceFromAlternatives(i.result,n)}function getLookaheadPathsForOptionalProd(e,t,n,r){let i=new InsideDefinitionFinderVisitor(e,n);t.accept(i);let a=i.result,o=new RestDefinitionFinderWalker(t,e,n).startWalking();return lookAheadSequenceFromAlternatives([new z({definition:a}),new z({definition:o})],r)}function containsPath(e,t){compareOtherPath:for(let n=0;n<e.length;n++){let r=e[n];if(r.length===t.length){for(let e=0;e<r.length;e++){let n=t[e],i=r[e];if(!(n===i||i.categoryMatchesMap[n.tokenTypeIdx]!==void 0))continue compareOtherPath}return!0}}return!1}function isStrictPrefixOfPath(e,t){return e.length<t.length&&H(e,(e,n)=>{let r=t[n];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})}function areTokenCategoriesNotUsed(e){return H(e,e=>H(e,e=>H(e,e=>isEmpty(e.categoryMatches))))}function validateLookahead(e){return o(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),e=>Object.assign({type:$.CUSTOM_LOOKAHEAD_VALIDATION},e))}function validateGrammar$1(e,t,n,r){let i=flatMap(e,e=>validateDuplicateProductions(e,n)),a=checkTerminalAndNoneTerminalsNameSpace(e,t,n),o=flatMap(e,e=>validateTooManyAlts(e,n)),s=flatMap(e,t=>validateRuleDoesNotAlreadyExist(t,e,r,n));return i.concat(a,o,s)}e(validateGrammar$1,`validateGrammar`);function validateDuplicateProductions(e,t){let n=new OccurrenceValidationCollector;e.accept(n);let r=n.allProductions;return o(U(Ee(Qt(r,identifyProductionForDuplicates),e=>e.length>1)),n=>{let r=head(n),i=t.buildDuplicateFoundError(e,n),a=B(r),o={message:i,type:$.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:r.idx},s=getExtraProductionArgument(r);return s&&(o.parameter=s),o})}function identifyProductionForDuplicates(e){return`${B(e)}_#_${e.idx}_#_${getExtraProductionArgument(e)}`}function getExtraProductionArgument(e){return e instanceof P?e.terminalType.name:e instanceof j?e.nonTerminalName:``}var OccurrenceValidationCollector=class extends k{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 validateRuleDoesNotAlreadyExist(e,t,n,r){let i=[];if(reduce(t,(t,n)=>n.name===e.name?t+1:t,0)>1){let t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:t,type:$.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function validateRuleIsOverridden(e,t,n){let r=[],i;return A(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:$.INVALID_RULE_OVERRIDE,ruleName:e})),r}function validateNoLeftRecursion(e,t,n,r=[]){let i=[],a=getFirstNoneTerminal(t.definition);if(isEmpty(a))return[];{let t=e.name;A(a,e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:$.LEFT_RECURSION,ruleName:t});let o=flatMap(Yt(a,r.concat([e])),t=>{let i=clone(r);return i.push(t),validateNoLeftRecursion(e,t,n,i)});return i.concat(o)}}function getFirstNoneTerminal(e){let t=[];if(isEmpty(e))return t;let n=head(e);if(n instanceof j)t.push(n.referencedRule);else if(n instanceof z||n instanceof F||n instanceof M||n instanceof N||n instanceof ye||n instanceof V)t=t.concat(getFirstNoneTerminal(n.definition));else if(n instanceof L)t=flatten(o(n.definition,e=>getFirstNoneTerminal(e.definition)));else if(!(n instanceof P))throw Error(`non exhaustive match`);let r=xe(n),i=e.length>1;if(r&&i){let n=drop(e);return t.concat(getFirstNoneTerminal(n))}else return t}var OrCollector=class extends k{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function validateEmptyOrAlternative(e,t){let n=new OrCollector;e.accept(n);let r=n.alternations;return flatMap(r,n=>flatMap(dropRight(n.definition),(r,i)=>isEmpty(nextPossibleTokensAfter([r],[],tokenStructuredMatcher,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:i}),type:$.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:i+1}]:[]))}function validateAmbiguousAlternationAlternatives(e,t,n){let r=new OrCollector;e.accept(r);let i=r.alternations;return i=reject(i,e=>e.ignoreAmbiguities===!0),flatMap(i,r=>{let i=r.idx,a=getLookaheadPathsForOr(i,e,r.maxLookahead||t,r),o=checkAlternativesAmbiguities(a,r,e,n),s=checkPrefixAlternativesAmbiguities(a,r,e,n);return o.concat(s)})}var RepetitionCollector=class extends k{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 validateTooManyAlts(e,t){let n=new OrCollector;e.accept(n);let r=n.alternations;return flatMap(r,n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:$.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[])}function validateSomeNonEmptyLookaheadPath(e,t,n){let r=[];return x(e,e=>{let i=new RepetitionCollector;e.accept(i);let a=i.allProductions;x(a,i=>{let a=getProdType(i),o=i.maxLookahead||t,s=i.idx,c=getLookaheadPathsForOptionalProd(s,e,a,o)[0];if(isEmpty(flatten(c))){let t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});r.push({message:t,type:$.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),r}function checkAlternativesAmbiguities(e,t,n,r){let i=[];return o(reduce(e,(n,r,a)=>(t.definition[a].ignoreAmbiguities===!0||x(r,r=>{let o=[a];x(e,(e,n)=>{a!==n&&containsPath(e,r)&&t.definition[n].ignoreAmbiguities!==!0&&o.push(n)}),o.length>1&&!containsPath(i,r)&&(i.push(r),n.push({alts:o,path:r}))}),n),[]),e=>{let i=o(e.alts,e=>e+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:$.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}})}function checkPrefixAlternativesAmbiguities(e,t,n,r){let i=reduce(e,(e,t,n)=>{let r=o(t,e=>({idx:n,path:e}));return e.concat(r)},[]);return compact(flatMap(i,e=>{if(t.definition[e.idx].ignoreAmbiguities===!0)return[];let a=e.idx,s=e.path;return o(filter(i,e=>t.definition[e.idx].ignoreAmbiguities!==!0&&e.idx<a&&isStrictPrefixOfPath(e.path,s)),e=>{let i=[e.idx+1,a+1],o=t.idx===0?``:t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:$.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:o,alternatives:i}})}))}function checkTerminalAndNoneTerminalsNameSpace(e,t,n){let r=[],i=o(t,e=>e.name);return x(e,e=>{let t=e.name;if(A(i,t)){let i=n.buildNamespaceConflictError(e);r.push({message:i,type:$.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),r}function resolveGrammar(e){let t=qt(e,{errMsgProvider:Mn}),n={};return x(e.rules,e=>{n[e.name]=e}),resolveGrammar$1(n,t.errMsgProvider)}function validateGrammar(e){return e=qt(e,{errMsgProvider:X}),validateGrammar$1(e.rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}const Nn=`MismatchedTokenException`,Pn=`NoViableAltException`,Fn=`EarlyExitException`,In=`NotAllInputParsedException`,Ln=[Nn,Pn,Fn,In];Object.freeze(Ln);function isRecognitionException(e){return A(Ln,e.name)}var RecognitionException=class extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},MismatchedTokenException=class extends RecognitionException{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Nn}},NoViableAltException=class extends RecognitionException{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Pn}},NotAllInputParsedException=class extends RecognitionException{constructor(e,t){super(e,t),this.name=In}},EarlyExitException=class extends RecognitionException{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Fn}};const Rn={};var InRuleRecoveryException=class extends Error{constructor(e){super(e),this.name=`InRuleRecoveryException`}},Recoverable=class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=has(e,`recoveryEnabled`)?e.recoveryEnabled:Q.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=attemptInRepetitionRecovery)}getTokenToInsert(e){let t=createTokenInstance(e,``,NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){let i=this.findReSyncTokenType(),a=this.exportLexerState(),o=[],s=!1,c=this.LA(1),l=this.LA(1),generateErrorMessage=()=>{let e=this.LA(0),t=new MismatchedTokenException(this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:c,previous:e,ruleName:this.getCurrRuleFullName()}),c,this.LA(0));t.resyncedTokens=dropRight(o),this.SAVE_ERROR(t)};for(;!s;)if(this.tokenMatcher(l,r)){generateErrorMessage();return}else if(n.call(this)){generateErrorMessage(),e.apply(this,t);return}else this.tokenMatcher(l,i)?s=!0:(l=this.SKIP_TOKEN(),this.addToResyncTokens(l,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new InRuleRecoveryException(`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;let n=this.LA(1);return K(t,e=>this.tokenMatcher(n,e))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return A(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),n=2;for(;;){let r=K(e,e=>tokenMatcher(t,e));if(r!==void 0)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Rn;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return o(e,(n,r)=>r===0?Rn:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])})}flattenFollowSet(){return flatten(o(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e)))}getFollowSetFromFollowKey(e){if(e===Rn)return[Y];let t=e.ruleName+e.idxInCallingRule+cn+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Y)||t.push(e),t}reSyncTo(e){let t=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return dropRight(t)}attemptInRepetitionRecovery(e,t,n,r,i,a,o){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:clone(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return o(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function attemptInRepetitionRecovery(e,t,n,r,i,a,o){let s=this.getKeyForAutomaticLookahead(r,i),c=this.firstAfterRepMap[s];if(c===void 0){let e=this.getCurrRuleFullName(),t=this.getGAstProductions()[e];c=new a(t,i).startWalking(),this.firstAfterRepMap[s]=c}let l=c.token,u=c.occurrence,d=c.isEndOfRule;this.RULE_STACK.length===1&&d&&l===void 0&&(l=Y,u=1),!(l===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(l,u,o)&&this.tryInRepetitionRecovery(e,t,n,l)}const zn=1024,Bn=1280,Vn=1536;function getKeyForAutomaticLookahead(e,t,n){return n|t|e}var LLkLookaheadStrategy=class{constructor(e){this.maxLookahead=e?.maxLookahead??Q.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if(isEmpty(t)){let n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return flatMap(e,e=>validateNoLeftRecursion(e,e,X))}validateEmptyOrAlternatives(e){return flatMap(e,e=>validateEmptyOrAlternative(e,X))}validateAmbiguousAlternationAlternatives(e,t){return flatMap(e,e=>validateAmbiguousAlternationAlternatives(e,t,X))}validateSomeNonEmptyLookaheadPath(e,t){return validateSomeNonEmptyLookaheadPath(e,t,X)}buildLookaheadForAlternation(e){return buildLookaheadFuncForOr(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,buildAlternativesLookAheadFunc)}buildLookaheadForOptional(e){return buildLookaheadFuncForOptionalProd(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,getProdType(e.prodType),buildSingleAlternativeLookaheadFunction)}},LooksAhead=class{initLooksAhead(e){this.dynamicTokensEnabled=has(e,`dynamicTokensEnabled`)?e.dynamicTokensEnabled:Q.dynamicTokensEnabled,this.maxLookahead=has(e,`maxLookahead`)?e.maxLookahead:Q.maxLookahead,this.lookaheadStrategy=has(e,`lookaheadStrategy`)?e.lookaheadStrategy:new LLkLookaheadStrategy({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){x(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:n,option:r,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=collectMethods(e);x(t,t=>{let n=t.idx===0?``:t.idx;this.TRACE_INIT(`${B(t)}${n}`,()=>{let n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=getKeyForAutomaticLookahead(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)})}),x(n,t=>{this.computeLookaheadFunc(e,t.idx,768,`Repetition`,t.maxLookahead,B(t))}),x(r,t=>{this.computeLookaheadFunc(e,t.idx,512,`Option`,t.maxLookahead,B(t))}),x(i,t=>{this.computeLookaheadFunc(e,t.idx,zn,`RepetitionMandatory`,t.maxLookahead,B(t))}),x(a,t=>{this.computeLookaheadFunc(e,t.idx,Vn,`RepetitionMandatoryWithSeparator`,t.maxLookahead,B(t))}),x(o,t=>{this.computeLookaheadFunc(e,t.idx,Bn,`RepetitionWithSeparator`,t.maxLookahead,B(t))})})})}computeLookaheadFunc(e,t,n,r,i,a){this.TRACE_INIT(`${a}${t===0?``:t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),o=getKeyForAutomaticLookahead(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(o,a)})}getKeyForAutomaticLookahead(e,t){return getKeyForAutomaticLookahead(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},DslMethodsCollectorVisitor=class extends k{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 Hn=new DslMethodsCollectorVisitor;function collectMethods(e){Hn.reset(),e.accept(Hn);let t=Hn.dslMethods;return Hn.reset(),t}function setNodeLocationOnlyOffset(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function setNodeLocationFull(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function addTerminalToCst(e,t,n){e.children[n]===void 0?e.children[n]=[t]:e.children[n].push(t)}function addNoneTerminalToCst(e,t,n){e.children[t]===void 0?e.children[t]=[n]:e.children[t].push(n)}function defineNameProp(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function defaultVisit(e,t){let n=u(e),r=n.length;for(let i=0;i<r;i++){let r=e[n[i]],a=r.length;for(let e=0;e<a;e++){let n=r[e];n.tokenTypeIdx===void 0&&this[n.name](n.children,t)}}}function createBaseSemanticVisitorConstructor(e,t){let derivedConstructor=function(){};return defineNameProp(derivedConstructor,e+`BaseSemantics`),derivedConstructor.prototype={visit:function(e,t){if(R(e)&&(e=e[0]),!isUndefined(e))return this[e.name](e.children,t)},validateVisitor:function(){let e=validateVisitor(this,t);if(!isEmpty(e)){let t=o(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join(`
40
+ For Further details.`,r},buildEmptyRepetitionError(e){let t=B(e.repetition);return e.repetition.idx!==0&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError(e){return`deprecated`},buildEmptyAlternationError(e){return`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`},buildTooManyAlternativesError(e){return`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(e){let t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${`${t} --> ${o(e.leftRecursionPath,e=>e.name).concat([t]).join(` --> `)}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return`deprecated`},buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof he?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function resolveGrammar$1(e,t){let n=new GastRefResolverVisitor(e,t);return n.resolveRefs(),n.errors}e(resolveGrammar$1,`resolveGrammar`);var GastRefResolverVisitor=class extends k{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){x(U(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:$.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},AbstractNextPossibleTokensWalker=class extends RestWalker{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=clone(this.path.ruleStack).reverse(),this.occurrenceStack=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,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){isEmpty(this.ruleStack)?(this.nextProductionName=``,this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},NextAfterTokenWalker=class extends AbstractNextPossibleTokensWalker{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName=``,this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let e=new z({definition:t.concat(n)});this.possibleTokTypes=first(e),this.found=!0}}},AbstractNextTerminalAfterProductionWalker=class extends RestWalker{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}},NextTerminalAfterManyWalker=class extends AbstractNextTerminalAfterProductionWalker{walkMany(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}},NextTerminalAfterManySepWalker=class extends AbstractNextTerminalAfterProductionWalker{walkManySep(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}},NextTerminalAfterAtLeastOneWalker=class extends AbstractNextTerminalAfterProductionWalker{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}},NextTerminalAfterAtLeastOneSepWalker=class extends AbstractNextTerminalAfterProductionWalker{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){let e=head(t.concat(n));this.result.isEndOfRule=e===void 0,e instanceof P&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}};function possiblePathsFrom(e,t,n=[]){n=clone(n);let r=[],i=0;function remainingPathWith(t){return t.concat(drop(e,i+1))}function getAlternativesForProd(e){let i=possiblePathsFrom(remainingPathWith(e),t,n);return r.concat(i)}for(;n.length<t&&i<e.length;){let t=e[i];if(t instanceof z||t instanceof j)return getAlternativesForProd(t.definition);if(t instanceof F)r=getAlternativesForProd(t.definition);else if(t instanceof M)return getAlternativesForProd(t.definition.concat([new V({definition:t.definition})]));else if(t instanceof N)return getAlternativesForProd([new z({definition:t.definition}),new V({definition:[new P({terminalType:t.separator})].concat(t.definition)})]);else if(t instanceof be)r=getAlternativesForProd(t.definition.concat([new V({definition:[new P({terminalType:t.separator})].concat(t.definition)})]));else if(t instanceof V)r=getAlternativesForProd(t.definition.concat([new V({definition:t.definition})]));else if(t instanceof L)return x(t.definition,e=>{isEmpty(e.definition)===!1&&(r=getAlternativesForProd(e.definition))}),r;else if(t instanceof P)n.push(t.terminalType);else throw Error(`non exhaustive match`);i++}return r.push({partialPath:n,suffixDef:drop(e,i)}),r}function nextPossibleTokensAfter(e,t,n,r){let i=`EXIT_NONE_TERMINAL`,a=[i],o=`EXIT_ALTERNATIVE`,s=!1,c=t.length,l=c-r-1,u=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!isEmpty(d);){let e=d.pop();if(e===o){s&&last(d).idx<=l&&d.pop();continue}let r=e.def,f=e.idx,p=e.ruleStack,m=e.occurrenceStack;if(isEmpty(r))continue;let h=r[0];if(h===i){let e={idx:f,def:drop(r),ruleStack:dropRight(p),occurrenceStack:dropRight(m)};d.push(e)}else if(h instanceof P)if(f<c-1){let e=f+1,i=t[e];if(n(i,h.terminalType)){let t={idx:e,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(t)}}else if(f===c-1)u.push({nextTokenType:h.terminalType,nextTokenOccurrence:h.idx,ruleStack:p,occurrenceStack:m}),s=!0;else throw Error(`non exhaustive match`);else if(h instanceof j){let e=clone(p);e.push(h.nonTerminalName);let t=clone(m);t.push(h.idx);let n={idx:f,def:h.definition.concat(a,drop(r)),ruleStack:e,occurrenceStack:t};d.push(n)}else if(h instanceof F){let e={idx:f,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t={idx:f,def:h.definition.concat(drop(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof M){let e=new V({definition:h.definition,idx:h.idx}),t={idx:f,def:h.definition.concat([e],drop(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof N){let e=new V({definition:[new P({terminalType:h.separator})].concat(h.definition),idx:h.idx}),t={idx:f,def:h.definition.concat([e],drop(r)),ruleStack:p,occurrenceStack:m};d.push(t)}else if(h instanceof be){let e={idx:f,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t=new V({definition:[new P({terminalType:h.separator})].concat(h.definition),idx:h.idx}),n={idx:f,def:h.definition.concat([t],drop(r)),ruleStack:p,occurrenceStack:m};d.push(n)}else if(h instanceof V){let e={idx:f,def:drop(r),ruleStack:p,occurrenceStack:m};d.push(e),d.push(o);let t=new V({definition:h.definition,idx:h.idx}),n={idx:f,def:h.definition.concat([t],drop(r)),ruleStack:p,occurrenceStack:m};d.push(n)}else if(h instanceof L)for(let e=h.definition.length-1;e>=0;e--){let t={idx:f,def:h.definition[e].definition.concat(drop(r)),ruleStack:p,occurrenceStack:m};d.push(t),d.push(o)}else if(h instanceof z)d.push({idx:f,def:h.definition.concat(drop(r)),ruleStack:p,occurrenceStack:m});else if(h instanceof he)d.push(expandTopLevelRule(h,f,p,m));else throw Error(`non exhaustive match`)}return u}function expandTopLevelRule(e,t,n,r){let i=clone(n);i.push(e.name);let a=clone(r);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}var Z;(function(e){e[e.OPTION=0]=`OPTION`,e[e.REPETITION=1]=`REPETITION`,e[e.REPETITION_MANDATORY=2]=`REPETITION_MANDATORY`,e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]=`REPETITION_MANDATORY_WITH_SEPARATOR`,e[e.REPETITION_WITH_SEPARATOR=4]=`REPETITION_WITH_SEPARATOR`,e[e.ALTERNATION=5]=`ALTERNATION`})(Z||={});function getProdType(e){if(e instanceof F||e===`Option`)return Z.OPTION;if(e instanceof V||e===`Repetition`)return Z.REPETITION;if(e instanceof M||e===`RepetitionMandatory`)return Z.REPETITION_MANDATORY;if(e instanceof N||e===`RepetitionMandatoryWithSeparator`)return Z.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof be||e===`RepetitionWithSeparator`)return Z.REPETITION_WITH_SEPARATOR;if(e instanceof L||e===`Alternation`)return Z.ALTERNATION;throw Error(`non exhaustive match`)}function getLookaheadPaths(e){let{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,a=getProdType(r);return a===Z.ALTERNATION?getLookaheadPathsForOr(t,n,i):getLookaheadPathsForOptionalProd(t,n,a,i)}function buildLookaheadFuncForOr(e,t,n,r,i,a){let o=getLookaheadPathsForOr(e,t,n);return a(o,r,areTokenCategoriesNotUsed(o)?tokenStructuredMatcherNoCategories:tokenStructuredMatcher,i)}function buildLookaheadFuncForOptionalProd(e,t,n,r,i,a){let o=getLookaheadPathsForOptionalProd(e,t,i,n),s=areTokenCategoriesNotUsed(o)?tokenStructuredMatcherNoCategories:tokenStructuredMatcher;return a(o[0],s,r)}function buildAlternativesLookAheadFunc(e,t,n,r){let i=e.length,a=H(e,e=>H(e,e=>e.length===1));if(t)return function(t){let r=o(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,o=r[t];if(!(o!==void 0&&o.call(this)===!1))nextPath:for(let e=0;e<a;e++){let r=i[e],a=r.length;for(let e=0;e<a;e++)if(n(this.LA(e+1),r[e])===!1)continue nextPath;return t}}};if(a&&!r){let t=reduce(o(e,e=>flatten(e)),(e,t,n)=>(x(t,t=>{has(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),x(t.categoryMatches,t=>{has(e,t)||(e[t]=n)})}),e),{});return function(){return t[this.LA(1).tokenTypeIdx]}}else return function(){for(let t=0;t<i;t++){let r=e[t],i=r.length;nextPath:for(let e=0;e<i;e++){let i=r[e],a=i.length;for(let e=0;e<a;e++)if(n(this.LA(e+1),i[e])===!1)continue nextPath;return t}}}}function buildSingleAlternativeLookaheadFunction(e,t,n){let r=H(e,e=>e.length===1),i=e.length;if(r&&!n){let t=flatten(e);if(t.length===1&&isEmpty(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}else{let e=reduce(t,(e,t,n)=>(e[t.tokenTypeIdx]=!0,x(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return e[this.LA(1).tokenTypeIdx]===!0}}}else return function(){nextPath:for(let n=0;n<i;n++){let r=e[n],i=r.length;for(let e=0;e<i;e++)if(t(this.LA(e+1),r[e])===!1)continue nextPath;return!0}return!1}}var RestDefinitionFinderWalker=class extends RestWalker{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,r){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=n.concat(r),!0):!1}walkOption(e,t,n){this.checkIsTarget(e,Z.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,Z.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,Z.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,Z.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,Z.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}},InsideDefinitionFinderVisitor=class extends k{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Z.OPTION)}visitRepetition(e){this.checkIsTarget(e,Z.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Z.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Z.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Z.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Z.ALTERNATION)}};function initializeArrayOfArrays(e){let t=Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function pathToHashKeys(e){let t=[``];for(let n=0;n<e.length;n++){let r=e[n],i=[];for(let e=0;e<t.length;e++){let n=t[e];i.push(n+`_`+r.tokenTypeIdx);for(let e=0;e<r.categoryMatches.length;e++){let t=`_`+r.categoryMatches[e];i.push(n+t)}}t=i}return t}function isUniquePrefixHash(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;let i=e[r];for(let e=0;e<t.length;e++)if(i[t[e]]===!0)return!1}return!0}function lookAheadSequenceFromAlternatives(e,t){let n=o(e,e=>possiblePathsFrom([e],1)),r=initializeArrayOfArrays(n.length),i=o(n,e=>{let t={};return x(e,e=>{x(pathToHashKeys(e.partialPath),e=>{t[e]=!0})}),t}),a=n;for(let e=1;e<=t;e++){let n=a;a=initializeArrayOfArrays(n.length);for(let o=0;o<n.length;o++){let s=n[o];for(let n=0;n<s.length;n++){let c=s[n].partialPath,l=s[n].suffixDef,u=pathToHashKeys(c);if(isUniquePrefixHash(i,u,o)||isEmpty(l)||c.length===t){let e=r[o];if(containsPath(e,c)===!1){e.push(c);for(let e=0;e<u.length;e++){let t=u[e];i[o][t]=!0}}}else{let t=possiblePathsFrom(l,e+1,c);a[o]=a[o].concat(t),x(t,e=>{x(pathToHashKeys(e.partialPath),e=>{i[o][e]=!0})})}}}}return r}function getLookaheadPathsForOr(e,t,n,r){let i=new InsideDefinitionFinderVisitor(e,Z.ALTERNATION,r);return t.accept(i),lookAheadSequenceFromAlternatives(i.result,n)}function getLookaheadPathsForOptionalProd(e,t,n,r){let i=new InsideDefinitionFinderVisitor(e,n);t.accept(i);let a=i.result,o=new RestDefinitionFinderWalker(t,e,n).startWalking();return lookAheadSequenceFromAlternatives([new z({definition:a}),new z({definition:o})],r)}function containsPath(e,t){compareOtherPath:for(let n=0;n<e.length;n++){let r=e[n];if(r.length===t.length){for(let e=0;e<r.length;e++){let n=t[e],i=r[e];if(!(n===i||i.categoryMatchesMap[n.tokenTypeIdx]!==void 0))continue compareOtherPath}return!0}}return!1}function isStrictPrefixOfPath(e,t){return e.length<t.length&&H(e,(e,n)=>{let r=t[n];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})}function areTokenCategoriesNotUsed(e){return H(e,e=>H(e,e=>H(e,e=>isEmpty(e.categoryMatches))))}function validateLookahead(e){return o(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),e=>Object.assign({type:$.CUSTOM_LOOKAHEAD_VALIDATION},e))}function validateGrammar$1(e,t,n,r){let i=flatMap(e,e=>validateDuplicateProductions(e,n)),a=checkTerminalAndNoneTerminalsNameSpace(e,t,n),o=flatMap(e,e=>validateTooManyAlts(e,n)),s=flatMap(e,t=>validateRuleDoesNotAlreadyExist(t,e,r,n));return i.concat(a,o,s)}e(validateGrammar$1,`validateGrammar`);function validateDuplicateProductions(e,t){let n=new OccurrenceValidationCollector;e.accept(n);let r=n.allProductions;return o(U(De(Jt(r,identifyProductionForDuplicates),e=>e.length>1)),n=>{let r=head(n),i=t.buildDuplicateFoundError(e,n),a=B(r),o={message:i,type:$.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:r.idx},s=getExtraProductionArgument(r);return s&&(o.parameter=s),o})}function identifyProductionForDuplicates(e){return`${B(e)}_#_${e.idx}_#_${getExtraProductionArgument(e)}`}function getExtraProductionArgument(e){return e instanceof P?e.terminalType.name:e instanceof j?e.nonTerminalName:``}var OccurrenceValidationCollector=class extends k{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 validateRuleDoesNotAlreadyExist(e,t,n,r){let i=[];if(reduce(t,(t,n)=>n.name===e.name?t+1:t,0)>1){let t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:t,type:$.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function validateRuleIsOverridden(e,t,n){let r=[],i;return A(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:$.INVALID_RULE_OVERRIDE,ruleName:e})),r}function validateNoLeftRecursion(e,t,n,r=[]){let i=[],a=getFirstNoneTerminal(t.definition);if(isEmpty(a))return[];{let t=e.name;A(a,e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:$.LEFT_RECURSION,ruleName:t});let o=flatMap(Gt(a,r.concat([e])),t=>{let i=clone(r);return i.push(t),validateNoLeftRecursion(e,t,n,i)});return i.concat(o)}}function getFirstNoneTerminal(e){let t=[];if(isEmpty(e))return t;let n=head(e);if(n instanceof j)t.push(n.referencedRule);else if(n instanceof z||n instanceof F||n instanceof M||n instanceof N||n instanceof be||n instanceof V)t=t.concat(getFirstNoneTerminal(n.definition));else if(n instanceof L)t=flatten(o(n.definition,e=>getFirstNoneTerminal(e.definition)));else if(!(n instanceof P))throw Error(`non exhaustive match`);let r=Se(n),i=e.length>1;if(r&&i){let n=drop(e);return t.concat(getFirstNoneTerminal(n))}else return t}var OrCollector=class extends k{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function validateEmptyOrAlternative(e,t){let n=new OrCollector;e.accept(n);let r=n.alternations;return flatMap(r,n=>flatMap(dropRight(n.definition),(r,i)=>isEmpty(nextPossibleTokensAfter([r],[],tokenStructuredMatcher,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:i}),type:$.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:i+1}]:[]))}function validateAmbiguousAlternationAlternatives(e,t,n){let r=new OrCollector;e.accept(r);let i=r.alternations;return i=reject(i,e=>e.ignoreAmbiguities===!0),flatMap(i,r=>{let i=r.idx,a=getLookaheadPathsForOr(i,e,r.maxLookahead||t,r),o=checkAlternativesAmbiguities(a,r,e,n),s=checkPrefixAlternativesAmbiguities(a,r,e,n);return o.concat(s)})}var RepetitionCollector=class extends k{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 validateTooManyAlts(e,t){let n=new OrCollector;e.accept(n);let r=n.alternations;return flatMap(r,n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:$.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[])}function validateSomeNonEmptyLookaheadPath(e,t,n){let r=[];return x(e,e=>{let i=new RepetitionCollector;e.accept(i);let a=i.allProductions;x(a,i=>{let a=getProdType(i),o=i.maxLookahead||t,s=i.idx,c=getLookaheadPathsForOptionalProd(s,e,a,o)[0];if(isEmpty(flatten(c))){let t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});r.push({message:t,type:$.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),r}function checkAlternativesAmbiguities(e,t,n,r){let i=[];return o(reduce(e,(n,r,a)=>(t.definition[a].ignoreAmbiguities===!0||x(r,r=>{let o=[a];x(e,(e,n)=>{a!==n&&containsPath(e,r)&&t.definition[n].ignoreAmbiguities!==!0&&o.push(n)}),o.length>1&&!containsPath(i,r)&&(i.push(r),n.push({alts:o,path:r}))}),n),[]),e=>{let i=o(e.alts,e=>e+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:$.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}})}function checkPrefixAlternativesAmbiguities(e,t,n,r){let i=reduce(e,(e,t,n)=>{let r=o(t,e=>({idx:n,path:e}));return e.concat(r)},[]);return compact(flatMap(i,e=>{if(t.definition[e.idx].ignoreAmbiguities===!0)return[];let a=e.idx,s=e.path;return o(filter(i,e=>t.definition[e.idx].ignoreAmbiguities!==!0&&e.idx<a&&isStrictPrefixOfPath(e.path,s)),e=>{let i=[e.idx+1,a+1],o=t.idx===0?``:t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:$.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:o,alternatives:i}})}))}function checkTerminalAndNoneTerminalsNameSpace(e,t,n){let r=[],i=o(t,e=>e.name);return x(e,e=>{let t=e.name;if(A(i,t)){let i=n.buildNamespaceConflictError(e);r.push({message:i,type:$.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),r}function resolveGrammar(e){let t=Ut(e,{errMsgProvider:On}),n={};return x(e.rules,e=>{n[e.name]=e}),resolveGrammar$1(n,t.errMsgProvider)}function validateGrammar(e){return e=Ut(e,{errMsgProvider:X}),validateGrammar$1(e.rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}const kn=`MismatchedTokenException`,An=`NoViableAltException`,jn=`EarlyExitException`,Mn=`NotAllInputParsedException`,Nn=[kn,An,jn,Mn];Object.freeze(Nn);function isRecognitionException(e){return A(Nn,e.name)}var RecognitionException=class extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},MismatchedTokenException=class extends RecognitionException{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=kn}},NoViableAltException=class extends RecognitionException{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=An}},NotAllInputParsedException=class extends RecognitionException{constructor(e,t){super(e,t),this.name=Mn}},EarlyExitException=class extends RecognitionException{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=jn}};const Pn={};var InRuleRecoveryException=class extends Error{constructor(e){super(e),this.name=`InRuleRecoveryException`}},Recoverable=class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=has(e,`recoveryEnabled`)?e.recoveryEnabled:Q.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=attemptInRepetitionRecovery)}getTokenToInsert(e){let t=createTokenInstance(e,``,NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){let i=this.findReSyncTokenType(),a=this.exportLexerState(),o=[],s=!1,c=this.LA(1),l=this.LA(1),generateErrorMessage=()=>{let e=this.LA(0),t=new MismatchedTokenException(this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:c,previous:e,ruleName:this.getCurrRuleFullName()}),c,this.LA(0));t.resyncedTokens=dropRight(o),this.SAVE_ERROR(t)};for(;!s;)if(this.tokenMatcher(l,r)){generateErrorMessage();return}else if(n.call(this)){generateErrorMessage(),e.apply(this,t);return}else this.tokenMatcher(l,i)?s=!0:(l=this.SKIP_TOKEN(),this.addToResyncTokens(l,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new InRuleRecoveryException(`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;let n=this.LA(1);return K(t,e=>this.tokenMatcher(n,e))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return A(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),n=2;for(;;){let r=K(e,e=>tokenMatcher(t,e));if(r!==void 0)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Pn;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return o(e,(n,r)=>r===0?Pn:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])})}flattenFollowSet(){return flatten(o(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e)))}getFollowSetFromFollowKey(e){if(e===Pn)return[Y];let t=e.ruleName+e.idxInCallingRule+rn+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Y)||t.push(e),t}reSyncTo(e){let t=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return dropRight(t)}attemptInRepetitionRecovery(e,t,n,r,i,a,o){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:clone(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return o(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function attemptInRepetitionRecovery(e,t,n,r,i,a,o){let s=this.getKeyForAutomaticLookahead(r,i),c=this.firstAfterRepMap[s];if(c===void 0){let e=this.getCurrRuleFullName(),t=this.getGAstProductions()[e];c=new a(t,i).startWalking(),this.firstAfterRepMap[s]=c}let l=c.token,u=c.occurrence,d=c.isEndOfRule;this.RULE_STACK.length===1&&d&&l===void 0&&(l=Y,u=1),!(l===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(l,u,o)&&this.tryInRepetitionRecovery(e,t,n,l)}const Fn=1024,In=1280,Ln=1536;function getKeyForAutomaticLookahead(e,t,n){return n|t|e}var LLkLookaheadStrategy=class{constructor(e){this.maxLookahead=e?.maxLookahead??Q.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if(isEmpty(t)){let n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return flatMap(e,e=>validateNoLeftRecursion(e,e,X))}validateEmptyOrAlternatives(e){return flatMap(e,e=>validateEmptyOrAlternative(e,X))}validateAmbiguousAlternationAlternatives(e,t){return flatMap(e,e=>validateAmbiguousAlternationAlternatives(e,t,X))}validateSomeNonEmptyLookaheadPath(e,t){return validateSomeNonEmptyLookaheadPath(e,t,X)}buildLookaheadForAlternation(e){return buildLookaheadFuncForOr(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,buildAlternativesLookAheadFunc)}buildLookaheadForOptional(e){return buildLookaheadFuncForOptionalProd(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,getProdType(e.prodType),buildSingleAlternativeLookaheadFunction)}},LooksAhead=class{initLooksAhead(e){this.dynamicTokensEnabled=has(e,`dynamicTokensEnabled`)?e.dynamicTokensEnabled:Q.dynamicTokensEnabled,this.maxLookahead=has(e,`maxLookahead`)?e.maxLookahead:Q.maxLookahead,this.lookaheadStrategy=has(e,`lookaheadStrategy`)?e.lookaheadStrategy:new LLkLookaheadStrategy({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){x(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:n,option:r,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=collectMethods(e);x(t,t=>{let n=t.idx===0?``:t.idx;this.TRACE_INIT(`${B(t)}${n}`,()=>{let n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=getKeyForAutomaticLookahead(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)})}),x(n,t=>{this.computeLookaheadFunc(e,t.idx,768,`Repetition`,t.maxLookahead,B(t))}),x(r,t=>{this.computeLookaheadFunc(e,t.idx,512,`Option`,t.maxLookahead,B(t))}),x(i,t=>{this.computeLookaheadFunc(e,t.idx,Fn,`RepetitionMandatory`,t.maxLookahead,B(t))}),x(a,t=>{this.computeLookaheadFunc(e,t.idx,Ln,`RepetitionMandatoryWithSeparator`,t.maxLookahead,B(t))}),x(o,t=>{this.computeLookaheadFunc(e,t.idx,In,`RepetitionWithSeparator`,t.maxLookahead,B(t))})})})}computeLookaheadFunc(e,t,n,r,i,a){this.TRACE_INIT(`${a}${t===0?``:t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),o=getKeyForAutomaticLookahead(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(o,a)})}getKeyForAutomaticLookahead(e,t){return getKeyForAutomaticLookahead(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},DslMethodsCollectorVisitor=class extends k{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 Rn=new DslMethodsCollectorVisitor;function collectMethods(e){Rn.reset(),e.accept(Rn);let t=Rn.dslMethods;return Rn.reset(),t}function setNodeLocationOnlyOffset(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function setNodeLocationFull(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function addTerminalToCst(e,t,n){e.children[n]===void 0?e.children[n]=[t]:e.children[n].push(t)}function addNoneTerminalToCst(e,t,n){e.children[t]===void 0?e.children[t]=[n]:e.children[t].push(n)}function defineNameProp(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function defaultVisit(e,t){let n=u(e),r=n.length;for(let i=0;i<r;i++){let r=e[n[i]],a=r.length;for(let e=0;e<a;e++){let n=r[e];n.tokenTypeIdx===void 0&&this[n.name](n.children,t)}}}function createBaseSemanticVisitorConstructor(e,t){let derivedConstructor=function(){};return defineNameProp(derivedConstructor,e+`BaseSemantics`),derivedConstructor.prototype={visit:function(e,t){if(R(e)&&(e=e[0]),!isUndefined(e))return this[e.name](e.children,t)},validateVisitor:function(){let e=validateVisitor(this,t);if(!isEmpty(e)){let t=o(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join(`
41
41
 
42
42
  `).replace(/\n/g,`
43
- `)}`)}}},derivedConstructor.prototype.constructor=derivedConstructor,derivedConstructor._RULE_NAMES=t,derivedConstructor}function createBaseVisitorConstructorWithDefaults(e,t,n){let derivedConstructor=function(){};defineNameProp(derivedConstructor,e+`BaseSemanticsWithDefaults`);let r=Object.create(n.prototype);return x(t,e=>{r[e]=defaultVisit}),derivedConstructor.prototype=r,derivedConstructor.prototype.constructor=derivedConstructor,derivedConstructor}var Un;(function(e){e[e.REDUNDANT_METHOD=0]=`REDUNDANT_METHOD`,e[e.MISSING_METHOD=1]=`MISSING_METHOD`})(Un||={});function validateVisitor(e,t){return validateMissingCstMethods(e,t)}function validateMissingCstMethods(e,t){return compact(o(filter(t,t=>I(e[t])===!1),t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:Un.MISSING_METHOD,methodName:t})))}var TreeBuilder=class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=has(e,`nodeLocationTracking`)?e.nodeLocationTracking:Q.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=noop,this.cstFinallyStateUpdate=noop,this.cstPostTerminal=noop,this.cstPostNonTerminal=noop,this.cstPostRule=noop;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=setNodeLocationFull,this.setNodeLocationFromNode=setNodeLocationFull,this.cstPostRule=noop,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=noop,this.setNodeLocationFromNode=noop,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=setNodeLocationOnlyOffset,this.setNodeLocationFromNode=setNodeLocationOnlyOffset,this.cstPostRule=noop,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=noop,this.setNodeLocationFromNode=noop,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=noop,this.setNodeLocationFromNode=noop,this.cstPostRule=noop,this.setInitialNodeLocation=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){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];addTerminalToCst(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];addNoneTerminalToCst(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(isUndefined(this.baseCstVisitorConstructor)){let e=createBaseSemanticVisitorConstructor(this.className,u(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(isUndefined(this.baseCstVisitorWithDefaultsConstructor)){let e=createBaseVisitorConstructorWithDefaults(this.className,u(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},LexerAdapter=class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error(`Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.`);this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Jn}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Jn: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()}},RecognizerApi=class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=Yn){if(A(this.definedRulesNames,e)){let t={message:X.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:$.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=Yn){let r=validateRuleIsOverridden(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);let i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(isRecognitionException(e))return!1;throw e}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return ce(U(this.gastProductionsCache))}},RecognizerEngine=class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=tokenStructuredMatcherNoCategories,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},has(t,`serializedGrammar`))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
43
+ `)}`)}}},derivedConstructor.prototype.constructor=derivedConstructor,derivedConstructor._RULE_NAMES=t,derivedConstructor}function createBaseVisitorConstructorWithDefaults(e,t,n){let derivedConstructor=function(){};defineNameProp(derivedConstructor,e+`BaseSemanticsWithDefaults`);let r=Object.create(n.prototype);return x(t,e=>{r[e]=defaultVisit}),derivedConstructor.prototype=r,derivedConstructor.prototype.constructor=derivedConstructor,derivedConstructor}var zn;(function(e){e[e.REDUNDANT_METHOD=0]=`REDUNDANT_METHOD`,e[e.MISSING_METHOD=1]=`MISSING_METHOD`})(zn||={});function validateVisitor(e,t){return validateMissingCstMethods(e,t)}function validateMissingCstMethods(e,t){return compact(o(filter(t,t=>I(e[t])===!1),t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:zn.MISSING_METHOD,methodName:t})))}var TreeBuilder=class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=has(e,`nodeLocationTracking`)?e.nodeLocationTracking:Q.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=noop,this.cstFinallyStateUpdate=noop,this.cstPostTerminal=noop,this.cstPostNonTerminal=noop,this.cstPostRule=noop;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=setNodeLocationFull,this.setNodeLocationFromNode=setNodeLocationFull,this.cstPostRule=noop,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=noop,this.setNodeLocationFromNode=noop,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=setNodeLocationOnlyOffset,this.setNodeLocationFromNode=setNodeLocationOnlyOffset,this.cstPostRule=noop,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=noop,this.setNodeLocationFromNode=noop,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=noop,this.setNodeLocationFromNode=noop,this.cstPostRule=noop,this.setInitialNodeLocation=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){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];addTerminalToCst(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];addNoneTerminalToCst(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(isUndefined(this.baseCstVisitorConstructor)){let e=createBaseSemanticVisitorConstructor(this.className,u(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(isUndefined(this.baseCstVisitorWithDefaultsConstructor)){let e=createBaseVisitorConstructorWithDefaults(this.className,u(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},LexerAdapter=class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error(`Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.`);this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Wn}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Wn: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()}},RecognizerApi=class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=Gn){if(A(this.definedRulesNames,e)){let t={message:X.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:$.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=Gn){let r=validateRuleIsOverridden(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);let i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(isRecognitionException(e))return!1;throw e}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return ce(U(this.gastProductionsCache))}},RecognizerEngine=class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=tokenStructuredMatcherNoCategories,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},has(t,`serializedGrammar`))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
44
44
  See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
45
45
  For Further details.`);if(R(e)){if(isEmpty(e))throw Error(`A Token Vocabulary cannot be empty.
46
46
  Note that the first argument for the parser constructor
47
47
  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.
48
48
  See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
49
- For Further details.`)}if(R(e))this.tokensMap=reduce(e,(e,t)=>(e[t.name]=t,e),{});else if(has(e,`modes`)&&H(flatten(U(e.modes)),isTokenType)){let t=uniq(flatten(U(e.modes)));this.tokensMap=reduce(t,(e,t)=>(e[t.name]=t,e),{})}else if(se(e))this.tokensMap=clone(e);else throw Error(`<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition`);this.tokensMap.EOF=Y;let n=H(has(e,`modes`)?flatten(U(e.modes)):U(e),e=>isEmpty(e.categoryMatches));this.tokenMatcher=n?tokenStructuredMatcherNoCategories:tokenStructuredMatcher,augmentTokenTypes(U(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let r=has(n,`resyncEnabled`)?n.resyncEnabled:Yn.resyncEnabled,i=has(n,`recoveryValueFunc`)?n.recoveryValueFunc:Yn.recoveryValueFunc,a=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return o=this.outputCst===!0?function invokeRuleWithTry(...n){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n);let r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}}:function invokeRuleWithTryCst(...n){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n)}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){let r=this.RULE_STACK.length===1,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(isRecognitionException(e)){let t=e;if(i){let r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r))if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}else return n(e);else{if(this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}}else if(r)return this.moveToTerminatedState(),n(e);else throw t}else throw e}optionInternal(e,t){let n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let lookAheadFunc=this.getLaFuncFromCache(n),r;if(typeof e!=`function`){r=e.DEF;let t=e.GATE;if(t!==void 0){let e=lookAheadFunc;lookAheadFunc=()=>t.call(this)&&e.call(this)}}else r=e;if(lookAheadFunc.call(this)===!0)return r.call(this)}atLeastOneInternal(e,t){let n=this.getKeyForAutomaticLookahead(zn,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let lookAheadFunc=this.getLaFuncFromCache(n),r;if(typeof t!=`function`){r=t.DEF;let e=t.GATE;if(e!==void 0){let t=lookAheadFunc;lookAheadFunc=()=>e.call(this)&&t.call(this)}}else r=t;if(lookAheadFunc.call(this)===!0){let e=this.doSingleRepetition(r);for(;lookAheadFunc.call(this)===!0&&e===!0;)e=this.doSingleRepetition(r)}else throw this.raiseEarlyExitException(e,Z.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],lookAheadFunc,zn,e,NextTerminalAfterAtLeastOneWalker)}atLeastOneSepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(Vn,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){let r=t.DEF,i=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){r.call(this);let separatorLookAheadFunc=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,separatorLookAheadFunc,r,NextTerminalAfterAtLeastOneSepWalker],separatorLookAheadFunc,Vn,e,NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Z.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let lookaheadFunction=this.getLaFuncFromCache(n),r;if(typeof t!=`function`){r=t.DEF;let e=t.GATE;if(e!==void 0){let t=lookaheadFunction;lookaheadFunction=()=>e.call(this)&&t.call(this)}}else r=t;let i=!0;for(;lookaheadFunction.call(this)===!0&&i===!0;)i=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],lookaheadFunction,768,e,NextTerminalAfterManyWalker,i)}manySepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(Bn,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){let r=t.DEF,i=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){r.call(this);let separatorLookAheadFunc=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,separatorLookAheadFunc,r,NextTerminalAfterManySepWalker],separatorLookAheadFunc,Bn,e,NextTerminalAfterManySepWalker)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,Vn,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let n=this.getKeyForAutomaticLookahead(256,t),r=R(e)?e:e.DEF,i=this.getLaFuncFromCache(n).call(this,r);if(i!==void 0)return r[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new NotAllInputParsedException(t,e))}}subruleInternal(e,t,n){let r;try{let i=n===void 0?void 0:n.ARGS;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),r}catch(t){throw this.subruleInternalError(t,n,e.ruleName)}}subruleInternalError(e,t,n){throw isRecognitionException(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{let t=this.LA(1);this.tokenMatcher(t,e)===!0?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(n){r=this.consumeInternalRecovery(e,t,n)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r,i=this.LA(0);throw r=n!==void 0&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new MismatchedTokenException(r,t,i))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name===`MismatchedTokenException`&&!this.isBackTracking()){let r=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,r)}catch(e){throw e.name===`InRuleRecoveryException`?n:e}}else throw n}saveRecogState(){let e=this.errors,t=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,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Y)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},ErrorHandler=class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=has(e,`errorMessageProvider`)?e.errorMessageProvider:Q.errorMessageProvider}SAVE_ERROR(e){if(isRecognitionException(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack: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 clone(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){let r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],a=getLookaheadPathsForOptionalProd(e,i,t,this.maxLookahead)[0],o=[];for(let e=1;e<=this.maxLookahead;e++)o.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:o,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new EarlyExitException(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let n=this.getCurrRuleFullName(),r=this.getGAstProductions()[n],i=getLookaheadPathsForOr(e,r,this.maxLookahead),a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let o=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:i,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new NoViableAltException(s,this.LA(1),o))}},ContentAssist=class{initContentAssist(){}computeContentAssist(e,t){let n=this.gastProductionsCache[e];if(isUndefined(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return nextPossibleTokensAfter([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=head(e.ruleStack),n=this.getGAstProductions()[t];return new NextAfterTokenWalker(n,e).startWalking()}};const Wn={description:`This Object indicates the Parser is during Recording Phase`};Object.freeze(Wn);const Gn=createToken({name:`RECORDING_PHASE_TOKEN`,pattern:Lexer.NA});augmentTokenTypes([Gn]);const Kn=createTokenInstance(Gn,`This IToken indicates the Parser is in Recording Phase
50
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Kn);const qn={name:`This CSTNode indicates the Parser is in Recording Phase
51
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};var GastRecorder=class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT(`Enable Recording`,()=>{for(let e=0;e<10;e++){let t=e>0?e:``;this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT(`Deleting Recording methods`,()=>{let e=this;for(let t=0;t<10;t++){let n=t>0?t:``;delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Jn}topLevelRuleRecord(e,t){try{let n=new me({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(e){if(e.KNOWN_RECORDER_ERROR!==!0)try{e.message+=`
49
+ For Further details.`)}if(R(e))this.tokensMap=reduce(e,(e,t)=>(e[t.name]=t,e),{});else if(has(e,`modes`)&&H(flatten(U(e.modes)),isTokenType)){let t=uniq(flatten(U(e.modes)));this.tokensMap=reduce(t,(e,t)=>(e[t.name]=t,e),{})}else if(se(e))this.tokensMap=clone(e);else throw Error(`<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition`);this.tokensMap.EOF=Y;let n=H(has(e,`modes`)?flatten(U(e.modes)):U(e),e=>isEmpty(e.categoryMatches));this.tokenMatcher=n?tokenStructuredMatcherNoCategories:tokenStructuredMatcher,augmentTokenTypes(U(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let r=has(n,`resyncEnabled`)?n.resyncEnabled:Gn.resyncEnabled,i=has(n,`recoveryValueFunc`)?n.recoveryValueFunc:Gn.recoveryValueFunc,a=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return o=this.outputCst===!0?function invokeRuleWithTry(...n){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n);let r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}}:function invokeRuleWithTryCst(...n){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n)}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){let r=this.RULE_STACK.length===1,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(isRecognitionException(e)){let t=e;if(i){let r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r))if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}else return n(e);else{if(this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}}else if(r)return this.moveToTerminatedState(),n(e);else throw t}else throw e}optionInternal(e,t){let n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let lookAheadFunc=this.getLaFuncFromCache(n),r;if(typeof e!=`function`){r=e.DEF;let t=e.GATE;if(t!==void 0){let e=lookAheadFunc;lookAheadFunc=()=>t.call(this)&&e.call(this)}}else r=e;if(lookAheadFunc.call(this)===!0)return r.call(this)}atLeastOneInternal(e,t){let n=this.getKeyForAutomaticLookahead(Fn,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let lookAheadFunc=this.getLaFuncFromCache(n),r;if(typeof t!=`function`){r=t.DEF;let e=t.GATE;if(e!==void 0){let t=lookAheadFunc;lookAheadFunc=()=>e.call(this)&&t.call(this)}}else r=t;if(lookAheadFunc.call(this)===!0){let e=this.doSingleRepetition(r);for(;lookAheadFunc.call(this)===!0&&e===!0;)e=this.doSingleRepetition(r)}else throw this.raiseEarlyExitException(e,Z.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],lookAheadFunc,Fn,e,NextTerminalAfterAtLeastOneWalker)}atLeastOneSepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(Ln,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){let r=t.DEF,i=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){r.call(this);let separatorLookAheadFunc=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,separatorLookAheadFunc,r,NextTerminalAfterAtLeastOneSepWalker],separatorLookAheadFunc,Ln,e,NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Z.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let lookaheadFunction=this.getLaFuncFromCache(n),r;if(typeof t!=`function`){r=t.DEF;let e=t.GATE;if(e!==void 0){let t=lookaheadFunction;lookaheadFunction=()=>e.call(this)&&t.call(this)}}else r=t;let i=!0;for(;lookaheadFunction.call(this)===!0&&i===!0;)i=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],lookaheadFunction,768,e,NextTerminalAfterManyWalker,i)}manySepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(In,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){let r=t.DEF,i=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){r.call(this);let separatorLookAheadFunc=()=>this.tokenMatcher(this.LA(1),i);for(;this.tokenMatcher(this.LA(1),i)===!0;)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,separatorLookAheadFunc,r,NextTerminalAfterManySepWalker],separatorLookAheadFunc,In,e,NextTerminalAfterManySepWalker)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,Ln,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let n=this.getKeyForAutomaticLookahead(256,t),r=R(e)?e:e.DEF,i=this.getLaFuncFromCache(n).call(this,r);if(i!==void 0)return r[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new NotAllInputParsedException(t,e))}}subruleInternal(e,t,n){let r;try{let i=n===void 0?void 0:n.ARGS;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),r}catch(t){throw this.subruleInternalError(t,n,e.ruleName)}}subruleInternalError(e,t,n){throw isRecognitionException(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{let t=this.LA(1);this.tokenMatcher(t,e)===!0?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(n){r=this.consumeInternalRecovery(e,t,n)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r,i=this.LA(0);throw r=n!==void 0&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new MismatchedTokenException(r,t,i))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name===`MismatchedTokenException`&&!this.isBackTracking()){let r=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,r)}catch(e){throw e.name===`InRuleRecoveryException`?n:e}}else throw n}saveRecogState(){let e=this.errors,t=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,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Y)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},ErrorHandler=class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=has(e,`errorMessageProvider`)?e.errorMessageProvider:Q.errorMessageProvider}SAVE_ERROR(e){if(isRecognitionException(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack: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 clone(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){let r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],a=getLookaheadPathsForOptionalProd(e,i,t,this.maxLookahead)[0],o=[];for(let e=1;e<=this.maxLookahead;e++)o.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:o,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new EarlyExitException(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let n=this.getCurrRuleFullName(),r=this.getGAstProductions()[n],i=getLookaheadPathsForOr(e,r,this.maxLookahead),a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let o=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:i,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new NoViableAltException(s,this.LA(1),o))}},ContentAssist=class{initContentAssist(){}computeContentAssist(e,t){let n=this.gastProductionsCache[e];if(isUndefined(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return nextPossibleTokensAfter([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=head(e.ruleStack),n=this.getGAstProductions()[t];return new NextAfterTokenWalker(n,e).startWalking()}};const Bn={description:`This Object indicates the Parser is during Recording Phase`};Object.freeze(Bn);const Vn=createToken({name:`RECORDING_PHASE_TOKEN`,pattern:Lexer.NA});augmentTokenTypes([Vn]);const Hn=createTokenInstance(Vn,`This IToken indicates the Parser is in Recording Phase
50
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Hn);const Un={name:`This CSTNode indicates the Parser is in Recording Phase
51
+ See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};var GastRecorder=class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT(`Enable Recording`,()=>{for(let e=0;e<10;e++){let t=e>0?e:``;this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT(`Deleting Recording methods`,()=>{let e=this;for(let t=0;t<10;t++){let n=t>0?t:``;delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Wn}topLevelRuleRecord(e,t){try{let n=new he({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(e){if(e.KNOWN_RECORDER_ERROR!==!0)try{e.message+=`
52
52
  This error was thrown during the "grammar recording phase" For more info see:
53
- https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw e}throw e}}optionInternalRecord(e,t){return recordProd.call(this,F,e,t)}atLeastOneInternalRecord(e,t){recordProd.call(this,M,t,e)}atLeastOneSepFirstInternalRecord(e,t){recordProd.call(this,N,t,e,!0)}manyInternalRecord(e,t){recordProd.call(this,V,t,e)}manySepFirstInternalRecord(e,t){recordProd.call(this,ye,t,e,!0)}orInternalRecord(e,t){return recordOrProd.call(this,e,t)}subruleInternalRecord(e,t,n){if(assertMethodIdxIsValid(t),!e||has(e,`ruleName`)===!1){let n=Error(`<SUBRULE${getIdxSuffix(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}let r=last(this.recordingProdStack),i=e.ruleName,a=new j({idx:t,nonTerminalName:i,label:n?.LABEL,referencedRule:void 0});return r.definition.push(a),this.outputCst?qn:Wn}consumeInternalRecord(e,t,n){if(assertMethodIdxIsValid(t),!hasShortKeyProperty(e)){let n=Error(`<CONSUME${getIdxSuffix(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}let r=last(this.recordingProdStack),i=new P({idx:t,terminalType:e,label:n?.LABEL});return r.definition.push(i),Kn}};function recordProd(e,t,n,r=!1){assertMethodIdxIsValid(n);let i=last(this.recordingProdStack),a=I(t)?t:t.DEF,o=new e({definition:[],idx:n});return r&&(o.separator=t.SEP),has(t,`MAX_LOOKAHEAD`)&&(o.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(o),a.call(this),i.definition.push(o),this.recordingProdStack.pop(),Wn}function recordOrProd(e,t){assertMethodIdxIsValid(t);let n=last(this.recordingProdStack),r=R(e)===!1,i=r===!1?e:e.DEF,a=new L({definition:[],idx:t,ignoreAmbiguities:r&&e.IGNORE_AMBIGUITIES===!0});return has(e,`MAX_LOOKAHEAD`)&&(a.maxLookahead=e.MAX_LOOKAHEAD),a.hasPredicates=D(i,e=>I(e.GATE)),n.definition.push(a),x(i,e=>{let t=new z({definition:[]});a.definition.push(t),has(e,`IGNORE_AMBIGUITIES`)?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:has(e,`GATE`)&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),Wn}function getIdxSuffix(e){return e===0?``:`${e}`}function assertMethodIdxIsValid(e){if(e<0||e>255){let t=Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than 256`);throw t.KNOWN_RECORDER_ERROR=!0,t}}var PerformanceTracer=class{initPerformanceTracer(e){if(has(e,`traceInitPerf`)){let t=e.traceInitPerf,n=typeof t==`number`;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Q.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=Array(this.traceInitIndent+1).join(` `);this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:r,value:i}=Ae(t),a=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}else return t()}};function applyMixins(e,t){t.forEach(t=>{let n=t.prototype;Object.getOwnPropertyNames(n).forEach(r=>{if(r===`constructor`)return;let i=Object.getOwnPropertyDescriptor(n,r);i&&(i.get||i.set)?Object.defineProperty(e.prototype,r,i):e.prototype[r]=t.prototype[r]})})}const Jn=createTokenInstance(Y,``,NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Jn);const Q=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:jn,nodeLocationTracking:`none`,traceInitPerf:!1,skipValidations:!1}),Yn=Object.freeze({recoveryValueFunc:()=>void 0,resyncEnabled:!0});var $;(function(e){e[e.INVALID_RULE_NAME=0]=`INVALID_RULE_NAME`,e[e.DUPLICATE_RULE_NAME=1]=`DUPLICATE_RULE_NAME`,e[e.INVALID_RULE_OVERRIDE=2]=`INVALID_RULE_OVERRIDE`,e[e.DUPLICATE_PRODUCTIONS=3]=`DUPLICATE_PRODUCTIONS`,e[e.UNRESOLVED_SUBRULE_REF=4]=`UNRESOLVED_SUBRULE_REF`,e[e.LEFT_RECURSION=5]=`LEFT_RECURSION`,e[e.NONE_LAST_EMPTY_ALT=6]=`NONE_LAST_EMPTY_ALT`,e[e.AMBIGUOUS_ALTS=7]=`AMBIGUOUS_ALTS`,e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]=`CONFLICT_TOKENS_RULES_NAMESPACE`,e[e.INVALID_TOKEN_NAME=9]=`INVALID_TOKEN_NAME`,e[e.NO_NON_EMPTY_LOOKAHEAD=10]=`NO_NON_EMPTY_LOOKAHEAD`,e[e.AMBIGUOUS_PREFIX_ALTS=11]=`AMBIGUOUS_PREFIX_ALTS`,e[e.TOO_MANY_ALTS=12]=`TOO_MANY_ALTS`,e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]=`CUSTOM_LOOKAHEAD_VALIDATION`})($||={});function EMPTY_ALT(e=void 0){return function(){return e}}var Xn=class Parser{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;let t=this.className;this.TRACE_INIT(`toFastProps`,()=>{Me(this)}),this.TRACE_INIT(`Grammar Recording`,()=>{try{this.enableRecording(),x(this.definedRulesNames,e=>{let t=this[e].originalGrammarAction,n;this.TRACE_INIT(`${e} Rule`,()=>{n=this.topLevelRuleRecord(e,t)}),this.gastProductionsCache[e]=n})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT(`Grammar Resolving`,()=>{n=resolveGrammar({rules:U(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT(`Grammar Validations`,()=>{if(isEmpty(n)&&this.skipValidations===!1){let e=validateGrammar({rules:U(this.gastProductionsCache),tokenTypes:U(this.tokensMap),errMsgProvider:X,grammarName:t}),n=validateLookahead({lookaheadStrategy:this.lookaheadStrategy,rules:U(this.gastProductionsCache),tokenTypes:U(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(e,n)}}),isEmpty(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT(`computeAllProdsFollows`,()=>{let e=computeAllProdsFollows(U(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT(`ComputeLookaheadFunctions`,()=>{var e,t;(t=(e=this.lookaheadStrategy).initialize)==null||t.call(e,{rules:U(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(U(this.gastProductionsCache))})),!Parser.DEFER_DEFINITION_ERRORS_HANDLING&&!isEmpty(this.definitionErrors))throw e=o(this.definitionErrors,e=>e.message),Error(`Parser Definition Errors detected:\n ${e.join(`
53
+ https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw e}throw e}}optionInternalRecord(e,t){return recordProd.call(this,F,e,t)}atLeastOneInternalRecord(e,t){recordProd.call(this,M,t,e)}atLeastOneSepFirstInternalRecord(e,t){recordProd.call(this,N,t,e,!0)}manyInternalRecord(e,t){recordProd.call(this,V,t,e)}manySepFirstInternalRecord(e,t){recordProd.call(this,be,t,e,!0)}orInternalRecord(e,t){return recordOrProd.call(this,e,t)}subruleInternalRecord(e,t,n){if(assertMethodIdxIsValid(t),!e||has(e,`ruleName`)===!1){let n=Error(`<SUBRULE${getIdxSuffix(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}let r=last(this.recordingProdStack),i=e.ruleName,a=new j({idx:t,nonTerminalName:i,label:n?.LABEL,referencedRule:void 0});return r.definition.push(a),this.outputCst?Un:Bn}consumeInternalRecord(e,t,n){if(assertMethodIdxIsValid(t),!hasShortKeyProperty(e)){let n=Error(`<CONSUME${getIdxSuffix(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}let r=last(this.recordingProdStack),i=new P({idx:t,terminalType:e,label:n?.LABEL});return r.definition.push(i),Hn}};function recordProd(e,t,n,r=!1){assertMethodIdxIsValid(n);let i=last(this.recordingProdStack),a=I(t)?t:t.DEF,o=new e({definition:[],idx:n});return r&&(o.separator=t.SEP),has(t,`MAX_LOOKAHEAD`)&&(o.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(o),a.call(this),i.definition.push(o),this.recordingProdStack.pop(),Bn}function recordOrProd(e,t){assertMethodIdxIsValid(t);let n=last(this.recordingProdStack),r=R(e)===!1,i=r===!1?e:e.DEF,a=new L({definition:[],idx:t,ignoreAmbiguities:r&&e.IGNORE_AMBIGUITIES===!0});return has(e,`MAX_LOOKAHEAD`)&&(a.maxLookahead=e.MAX_LOOKAHEAD),a.hasPredicates=D(i,e=>I(e.GATE)),n.definition.push(a),x(i,e=>{let t=new z({definition:[]});a.definition.push(t),has(e,`IGNORE_AMBIGUITIES`)?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:has(e,`GATE`)&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),Bn}function getIdxSuffix(e){return e===0?``:`${e}`}function assertMethodIdxIsValid(e){if(e<0||e>255){let t=Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than 256`);throw t.KNOWN_RECORDER_ERROR=!0,t}}var PerformanceTracer=class{initPerformanceTracer(e){if(has(e,`traceInitPerf`)){let t=e.traceInitPerf,n=typeof t==`number`;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Q.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=Array(this.traceInitIndent+1).join(` `);this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:r,value:i}=timer(t),a=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}else return t()}};function applyMixins(e,t){t.forEach(t=>{let n=t.prototype;Object.getOwnPropertyNames(n).forEach(r=>{if(r===`constructor`)return;let i=Object.getOwnPropertyDescriptor(n,r);i&&(i.get||i.set)?Object.defineProperty(e.prototype,r,i):e.prototype[r]=t.prototype[r]})})}const Wn=createTokenInstance(Y,``,NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Wn);const Q=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Dn,nodeLocationTracking:`none`,traceInitPerf:!1,skipValidations:!1}),Gn=Object.freeze({recoveryValueFunc:()=>void 0,resyncEnabled:!0});var $;(function(e){e[e.INVALID_RULE_NAME=0]=`INVALID_RULE_NAME`,e[e.DUPLICATE_RULE_NAME=1]=`DUPLICATE_RULE_NAME`,e[e.INVALID_RULE_OVERRIDE=2]=`INVALID_RULE_OVERRIDE`,e[e.DUPLICATE_PRODUCTIONS=3]=`DUPLICATE_PRODUCTIONS`,e[e.UNRESOLVED_SUBRULE_REF=4]=`UNRESOLVED_SUBRULE_REF`,e[e.LEFT_RECURSION=5]=`LEFT_RECURSION`,e[e.NONE_LAST_EMPTY_ALT=6]=`NONE_LAST_EMPTY_ALT`,e[e.AMBIGUOUS_ALTS=7]=`AMBIGUOUS_ALTS`,e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]=`CONFLICT_TOKENS_RULES_NAMESPACE`,e[e.INVALID_TOKEN_NAME=9]=`INVALID_TOKEN_NAME`,e[e.NO_NON_EMPTY_LOOKAHEAD=10]=`NO_NON_EMPTY_LOOKAHEAD`,e[e.AMBIGUOUS_PREFIX_ALTS=11]=`AMBIGUOUS_PREFIX_ALTS`,e[e.TOO_MANY_ALTS=12]=`TOO_MANY_ALTS`,e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]=`CUSTOM_LOOKAHEAD_VALIDATION`})($||={});function EMPTY_ALT(e=void 0){return function(){return e}}var Kn=class Parser{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;let t=this.className;this.TRACE_INIT(`toFastProps`,()=>{toFastProperties(this)}),this.TRACE_INIT(`Grammar Recording`,()=>{try{this.enableRecording(),x(this.definedRulesNames,e=>{let t=this[e].originalGrammarAction,n;this.TRACE_INIT(`${e} Rule`,()=>{n=this.topLevelRuleRecord(e,t)}),this.gastProductionsCache[e]=n})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT(`Grammar Resolving`,()=>{n=resolveGrammar({rules:U(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT(`Grammar Validations`,()=>{if(isEmpty(n)&&this.skipValidations===!1){let e=validateGrammar({rules:U(this.gastProductionsCache),tokenTypes:U(this.tokensMap),errMsgProvider:X,grammarName:t}),n=validateLookahead({lookaheadStrategy:this.lookaheadStrategy,rules:U(this.gastProductionsCache),tokenTypes:U(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(e,n)}}),isEmpty(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT(`computeAllProdsFollows`,()=>{let e=computeAllProdsFollows(U(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT(`ComputeLookaheadFunctions`,()=>{var e,t;(t=(e=this.lookaheadStrategy).initialize)==null||t.call(e,{rules:U(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(U(this.gastProductionsCache))})),!Parser.DEFER_DEFINITION_ERRORS_HANDLING&&!isEmpty(this.definitionErrors))throw e=o(this.definitionErrors,e=>e.message),Error(`Parser Definition Errors detected:\n ${e.join(`
54
54
  -------------------------------
55
55
  `)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),has(t,`ignoredIssues`))throw Error(`The <ignoredIssues> IParserConfig property has been deprecated.
56
56
  Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
57
57
  See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
58
- For further details.`);this.skipValidations=has(t,`skipValidations`)?t.skipValidations:Q.skipValidations}};Xn.DEFER_DEFINITION_ERRORS_HANDLING=!1,applyMixins(Xn,[Recoverable,LooksAhead,TreeBuilder,LexerAdapter,RecognizerEngine,RecognizerApi,ErrorHandler,ContentAssist,GastRecorder,PerformanceTracer]);var EmbeddedActionsParser=class extends Xn{constructor(e,t=Q){let n=clone(t);n.outputCst=!1,super(e,n)}};export{jn as a,tokenMatcher as c,baseUniq as d,reduce as f,flatten as g,filter as h,getLookaheadPaths as i,Lexer as l,flatMap as m,EmbeddedActionsParser as n,Y as o,isEmpty as p,LLkLookaheadStrategy as r,tokenLabel as s,EMPTY_ALT as t,xn as u};
58
+ For further details.`);this.skipValidations=has(t,`skipValidations`)?t.skipValidations:Q.skipValidations}};Kn.DEFER_DEFINITION_ERRORS_HANDLING=!1,applyMixins(Kn,[Recoverable,LooksAhead,TreeBuilder,LexerAdapter,RecognizerEngine,RecognizerApi,ErrorHandler,ContentAssist,GastRecorder,PerformanceTracer]);var EmbeddedActionsParser=class extends Kn{constructor(e,t=Q){let n=clone(t);n.outputCst=!1,super(e,n)}};export{Dn as a,tokenMatcher as c,getLookaheadPaths as i,Lexer as l,EmbeddedActionsParser as n,Y as o,LLkLookaheadStrategy as r,tokenLabel as s,EMPTY_ALT as t,_n as u};