3 lines
351 KiB
JavaScript
3 lines
351 KiB
JavaScript
import{m as e,aZ as t,a$ as r,b4 as n,n as i,b5 as a,a_ as s,bF as o,q as l,a5 as u}from"./index-BDq3hoFe.js";import{o as c,_ as d,Z as h,k as f,J as p,p as m,R as g,D as y,q as T,f as v,A as R,Q as A,X as k,r as E,u as $,z as x,s as C,N as I,U as S,v as N,e as w,y as L,w as b,x as O,V as P,M as _,B as D,C as M,E as F,K as U,F as G,G as B,H as K}from"./chunk-OMTJKCYW-D0VGaEv2.js";var V=u(t=>{var r;function n(){if(void 0===r)throw new Error("No runtime abstraction layer installed");return r}Object.defineProperty(t,"__esModule",{value:!0}),e(n,"RAL"),function(t){function n(e){if(void 0===e)throw new Error("No runtime abstraction layer provided");r=e}e(n,"install"),t.install=n}(n||(n={})),t.default=n}),j=u(t=>{function r(e){return!0===e||!1===e}function n(e){return"string"==typeof e||e instanceof String}function i(e){return"number"==typeof e||e instanceof Number}function a(e){return e instanceof Error}function s(e){return"function"==typeof e}function o(e){return Array.isArray(e)}function l(e){return o(e)&&e.every(e=>n(e))}Object.defineProperty(t,"__esModule",{value:!0}),t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0,e(r,"boolean"),t.boolean=r,e(n,"string"),t.string=n,e(i,"number"),t.number=i,e(a,"error"),t.error=a,e(s,"func"),t.func=s,e(o,"array"),t.array=o,e(l,"stringArray"),t.stringArray=l}),W=u(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=t.Event=void 0;var r,n=V();!function(e){let t={dispose(){}};e.None=function(){return t}}(r||(t.Event=r={}));var i=class{static{e(this,"CallbackList")}add(t,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:e(()=>this.remove(t,r),"dispose")})}remove(e,t=null){if(!this._callbacks)return;let r=!1;for(let n=0,i=this._callbacks.length;n<i;n++)if(this._callbacks[n]===e){if(this._contexts[n]===t)return this._callbacks.splice(n,1),void this._contexts.splice(n,1);r=!0}if(r)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let a=0,s=r.length;a<s;a++)try{t.push(r[a].apply(i[a],e))}catch(e){(0,n.default)().console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}},a=class t{static{e(this,"Emitter")}constructor(e){this._options=e}get event(){return this._event||(this._event=(r,n,a)=>{this._callbacks||(this._callbacks=new i),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(r,n);let s={dispose:e(()=>{this._callbacks&&(this._callbacks.remove(r,n),s.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(a)&&a.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};t.Emitter=a,a._noop=function(){}}),H=u(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;var r,n=V(),i=j(),a=W();!function(t){function r(e){let r=e;return r&&(r===t.None||r===t.Cancelled||i.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:a.Event.None}),e(r,"is"),t.is=r}(r||(t.CancellationToken=r={}));var s=Object.freeze(function(e,t){let r=(0,n.default)().timer.setTimeout(e.bind(t),0);return{dispose(){r.dispose()}}}),o=class{static{e(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?s:(this._emitter||(this._emitter=new a.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},l=class{static{e(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof o&&this._token.dispose():this._token=r.None}};t.CancellationTokenSource=l}),z={};i(z,{AbstractAstReflection:()=>Q,AbstractCstNode:()=>Jc,AbstractLangiumParser:()=>ad,AbstractParserErrorMessageProvider:()=>od,AbstractThreadedAsyncParser:()=>If,AstUtils:()=>Cr,BiMap:()=>dh,Cancellation:()=>_d,CompositeCstNodeImpl:()=>Qc,ContextCache:()=>Th,CstNodeBuilder:()=>Xc,CstUtils:()=>q,DEFAULT_TOKENIZE_OPTIONS:()=>jh,DONE_RESULT:()=>oe,DatatypeSymbol:()=>rd,DefaultAstNodeDescriptionProvider:()=>Ph,DefaultAstNodeLocator:()=>Dh,DefaultAsyncParser:()=>Cf,DefaultCommentProvider:()=>xf,DefaultConfigurationProvider:()=>Uh,DefaultDocumentBuilder:()=>Gh,DefaultDocumentValidator:()=>wh,DefaultHydrator:()=>wf,DefaultIndexManager:()=>Bh,DefaultJsonSerializer:()=>xh,DefaultLangiumDocumentFactory:()=>nh,DefaultLangiumDocuments:()=>ih,DefaultLexer:()=>Wh,DefaultLexerErrorMessageProvider:()=>Vh,DefaultLinker:()=>sh,DefaultNameProvider:()=>lh,DefaultReferenceDescriptionProvider:()=>_h,DefaultReferences:()=>uh,DefaultScopeComputation:()=>hh,DefaultScopeProvider:()=>Ah,DefaultServiceRegistry:()=>Ch,DefaultTokenBuilder:()=>Od,DefaultValueConverter:()=>Pd,DefaultWorkspaceLock:()=>Nf,DefaultWorkspaceManager:()=>Kh,Deferred:()=>Hd,Disposable:()=>Fh,DisposableCache:()=>gh,DocumentCache:()=>vh,DocumentState:()=>eh,DocumentValidator:()=>Sh,EMPTY_SCOPE:()=>mh,EMPTY_STREAM:()=>se,EmptyFileSystem:()=>Hf,EmptyFileSystemProvider:()=>Wf,ErrorWithLocation:()=>Pe,GrammarAST:()=>De,GrammarUtils:()=>Oe,IndentationAwareLexer:()=>Vf,IndentationAwareTokenBuilder:()=>Kf,JSDocDocumentationProvider:()=>$f,LangiumCompletionParser:()=>ud,LangiumParser:()=>sd,LangiumParserErrorMessageProvider:()=>ld,LeafCstNodeImpl:()=>Zc,LexingMode:()=>Gf,MapScope:()=>ph,Module:()=>Ef,MultiMap:()=>ch,OperationCancelled:()=>Bd,ParserWorker:()=>Sf,Reduction:()=>ue,RegExpUtils:()=>Br,RootCstNodeImpl:()=>td,SimpleCache:()=>yh,StreamImpl:()=>ne,StreamScope:()=>fh,TextDocument:()=>jd,TreeStreamImpl:()=>he,URI:()=>th,UriUtils:()=>Qd,ValidationCategory:()=>$h,ValidationRegistry:()=>Nh,ValueConverter:()=>bd,WorkspaceCache:()=>Rh,assertUnreachable:()=>_e,createCompletionParser:()=>Nd,createDefaultCoreModule:()=>Lf,createDefaultSharedCoreModule:()=>bf,createGrammarConfig:()=>Qn,createLangiumParser:()=>wd,createParser:()=>hd,delayNextTick:()=>Dd,diagnosticData:()=>Ih,eagerLoad:()=>_f,getDiagnosticRange:()=>Lh,indentationBuilderDefaultOptions:()=>Bf,inject:()=>Of,interruptAndCheck:()=>Vd,isAstNode:()=>Y,isAstNodeDescription:()=>J,isAstNodeWithComment:()=>kh,isCompositeCstNode:()=>ee,isIMultiModeLexerDefinition:()=>zh,isJSDoc:()=>Xh,isLeafCstNode:()=>te,isLinkingError:()=>Z,isNamed:()=>oh,isOperationCancelled:()=>Kd,isReference:()=>X,isRootCstNode:()=>re,isTokenTypeArray:()=>Hh,isTokenTypeDictionary:()=>qh,loadGrammarFromJson:()=>Xf,parseJSDoc:()=>Yh,prepareLangiumParser:()=>Ld,setInterruptionPeriod:()=>Gd,startCancelableOperation:()=>Ud,stream:()=>le,toDiagnosticData:()=>Oh,toDiagnosticSeverity:()=>bh});var q={};function Y(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function X(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}function J(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name&&"string"==typeof e.type&&"string"==typeof e.path}function Z(e){return"object"==typeof e&&null!==e&&Y(e.container)&&X(e.reference)&&"string"==typeof e.message}i(q,{DefaultNameRegexp:()=>Re,RangeComparison:()=>ce,compareRange:()=>Te,findCommentNode:()=>ke,findDeclarationNodeAtOffset:()=>Ae,findLeafNodeAtOffset:()=>$e,findLeafNodeBeforeOffset:()=>xe,flattenCst:()=>pe,getInteriorNodes:()=>we,getNextNode:()=>Se,getPreviousNode:()=>Ie,getStartlineNode:()=>Ne,inRange:()=>ve,isChildNode:()=>me,isCommentNode:()=>Ee,streamCst:()=>fe,toDocumentSegment:()=>ye,tokenToRange:()=>ge}),e(Y,"isAstNode"),e(X,"isReference"),e(J,"isAstNodeDescription"),e(Z,"isLinkingError");var Q=class{static{e(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return Y(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});let n=r[t];if(void 0!==n)return n;{let n=this.computeIsSubtype(e,t);return r[t]=n,n}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),r=[];for(let n of t)this.isSubtype(n,e)&&r.push(n);return this.allSubtypes[e]=r,r}}};function ee(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function te(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function re(e){return ee(e)&&"string"==typeof e.fullText}e(ee,"isCompositeCstNode"),e(te,"isLeafCstNode"),e(re,"isRootCstNode");var ne=class t{static{e(this,"StreamImpl")}constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let t={state:this.startFn(),next:e(()=>this.nextFn(t.state),"next"),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){let e,t=[],r=this.iterator();do{e=r.next(),void 0!==e.value&&t.push(e.value)}while(!e.done);return t}toSet(){return new Set(this)}toMap(e,t){let r=this.map(r=>[e?e(r):r,t?t(r):r]);return new Map(r)}toString(){return this.join()}concat(e){return new t(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do{if(t=this.nextFn(e.first),!t.done)return t}while(!t.done);e.firstDone=!0}do{if(t=e.iterator.next(),!t.done)return t}while(!t.done);return oe})}join(e=","){let t,r=this.iterator(),n="",i=!1;do{t=r.next(),t.done||(i&&(n+=e),n+=ie(t.value)),i=!0}while(!t.done);return n}indexOf(e,t=0){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(n>=t&&i.value===e)return n;i=r.next(),n++}return-1}every(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;)e(n.value,r),n=t.next(),r++}map(e){return new t(this.startFn,t=>{let{done:r,value:n}=this.nextFn(t);return r?oe:{done:!1,value:e(n)}})}filter(e){return new t(this.startFn,t=>{let r;do{if(r=this.nextFn(t),!r.done&&e(r.value))return r}while(!r.done);return oe})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){let r=this.iterator(),n=t,i=r.next();for(;!i.done;)n=void 0===n?i.value:e(n,i.value),i=r.next();return n}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){let n=e.next();if(n.done)return r;let i=this.recursiveReduce(e,t,r);return void 0===i?n.value:t(i,n.value)}find(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;){if(e(n.value))return r;n=t.next(),r++}return-1}includes(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}let{done:r,value:n}=this.nextFn(t.this);if(!r){let r=e(n);if(!ae(r))return{done:!1,value:r};t.iterator=r[Symbol.iterator]()}}while(t.iterator);return oe})}flat(e){if(void 0===e&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:t,value:n}=r.nextFn(e.this);if(!t){if(!ae(n))return{done:!1,value:n};e.iterator=n[Symbol.iterator]()}}while(e.iterator);return oe})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new t(()=>{let t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new t(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?oe:this.nextFn(t.state)))}distinct(e){return new t(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do{if(r=this.nextFn(t.internalState),!r.done){let n=e?e(r.value):r.value;if(!t.set.has(n))return t.set.add(n),r}}while(!r.done);return oe})}exclude(e,t){let r=new Set;for(let n of e){let e=t?t(n):n;r.add(e)}return this.filter(e=>{let n=t?t(e):e;return!r.has(n)})}};function ie(e){return"string"==typeof e?e:typeof e>"u"?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function ae(e){return!!e&&"function"==typeof e[Symbol.iterator]}e(ie,"toString"),e(ae,"isIterable");var se=new ne(()=>{},()=>oe),oe=Object.freeze({done:!0,value:void 0});function le(...e){if(1===e.length){let t=e[0];if(t instanceof ne)return t;if(ae(t))return new ne(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new ne(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:oe)}return e.length>1?new ne(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let r=e[t.collIndex++];ae(r)?t.iterator=r[Symbol.iterator]():r&&"number"==typeof r.length&&(t.array=r)}}while(t.iterator||t.array||t.collIndex<e.length);return oe}):se}e(le,"stream");var ue,ce,de,he=class extends ne{static{e(this,"TreeStreamImpl")}constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){let r=e.iterators[e.iterators.length-1].next();if(!r.done)return e.iterators.push(t(r.value)[Symbol.iterator]()),r;e.iterators.pop()}return oe})}iterator(){let t={state:this.startFn(),next:e(()=>this.nextFn(t.state),"next"),prune:e(()=>{t.state.pruned=!0},"prune"),[Symbol.iterator]:()=>t};return t}};function fe(e){return new he(e,e=>ee(e)?e.content:[],{includeRoot:!0})}function pe(e){return fe(e).filter(te)}function me(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}function ge(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function ye(e){if(!e)return;let{offset:t,end:r,range:n}=e;return{range:n,offset:t,end:r,length:r-t}}function Te(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return ce.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return ce.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,n=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return r&&n?ce.Inside:r?ce.OverlapBack:n?ce.OverlapFront:ce.Outside}function ve(e,t){return Te(e,t)>ce.After}!function(t){function r(e){return e.reduce((e,t)=>e+t,0)}function n(e){return e.reduce((e,t)=>e*t,0)}function i(e){return e.reduce((e,t)=>Math.min(e,t))}function a(e){return e.reduce((e,t)=>Math.max(e,t))}e(r,"sum"),t.sum=r,e(n,"product"),t.product=n,e(i,"min"),t.min=i,e(a,"max"),t.max=a}(ue||(ue={})),e(fe,"streamCst"),e(pe,"flattenCst"),e(me,"isChildNode"),e(ge,"tokenToRange"),e(ye,"toDocumentSegment"),(de=ce||(ce={}))[de.Before=0]="Before",de[de.After=1]="After",de[de.OverlapFront=2]="OverlapFront",de[de.OverlapBack=3]="OverlapBack",de[de.Inside=4]="Inside",de[de.Outside=5]="Outside",e(Te,"compareRange"),e(ve,"inRange");var Re=/^[\w\p{L}]$/u;function Ae(e,t,r=Re){if(e){if(t>0){let n=t-e.offset,i=e.text.charAt(n);r.test(i)||t--}return $e(e,t)}}function ke(e,t){if(e){let r=Ie(e,!0);if(r&&Ee(r,t))return r;if(re(e)){let r=e.content.findIndex(e=>!e.hidden);for(let n=r-1;n>=0;n--){let r=e.content[n];if(Ee(r,t))return r}}}}function Ee(e,t){return te(e)&&t.includes(e.tokenType.name)}function $e(e,t){if(te(e))return e;if(ee(e)){let r=Ce(e,t,!1);if(r)return $e(r,t)}}function xe(e,t){if(te(e))return e;if(ee(e)){let r=Ce(e,t,!0);if(r)return xe(r,t)}}function Ce(e,t,r){let n,i=0,a=e.content.length-1;for(;i<=a;){let s=Math.floor((i+a)/2),o=e.content[s];if(o.offset<=t&&o.end>t)return o;o.end<=t?(n=r?o:void 0,i=s+1):a=s-1}return n}function Ie(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e);for(;n>0;){n--;let e=r.content[n];if(t||!e.hidden)return e}e=r}}function Se(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e),i=r.content.length-1;for(;n<i;){n++;let e=r.content[n];if(t||!e.hidden)return e}e=r}}function Ne(e){if(0===e.range.start.character)return e;let t,r=e.range.start.line,n=e;for(;e.container;){let i=e.container,a=t??i.content.indexOf(e);if(0===a?(e=i,t=void 0):(t=a-1,e=i.content[t]),e.range.start.line!==r)break;n=e}return n}function we(e,t){let r=Le(e,t);return r?r.parent.content.slice(r.a+1,r.b):[]}function Le(e,t){let r,n=be(e),i=be(t);for(let e=0;e<n.length&&e<i.length;e++){let t=n[e],a=i[e];if(t.parent!==a.parent)break;r={parent:t.parent,a:t.index,b:a.index}}return r}function be(e){let t=[];for(;e.container;){let r=e.container,n=r.content.indexOf(e);t.push({parent:r,index:n}),e=r}return t.reverse()}e(Ae,"findDeclarationNodeAtOffset"),e(ke,"findCommentNode"),e(Ee,"isCommentNode"),e($e,"findLeafNodeAtOffset"),e(xe,"findLeafNodeBeforeOffset"),e(Ce,"binarySearch"),e(Ie,"getPreviousNode"),e(Se,"getNextNode"),e(Ne,"getStartlineNode"),e(we,"getInteriorNodes"),e(Le,"getCommonParent"),e(be,"getParentChain");var Oe={};i(Oe,{findAssignment:()=>In,findNameAssignment:()=>Sn,findNodeForKeyword:()=>xn,findNodeForProperty:()=>kn,findNodesForKeyword:()=>$n,findNodesForKeywordInternal:()=>Cn,findNodesForProperty:()=>An,getActionAtElement:()=>wn,getActionType:()=>Gn,getAllReachableRules:()=>yn,getCrossReferenceTerminal:()=>vn,getEntryRule:()=>mn,getExplicitRuleType:()=>Fn,getHiddenRules:()=>gn,getRuleType:()=>Kn,getRuleTypeName:()=>Bn,getTypeName:()=>Un,isArrayCardinality:()=>bn,isArrayOperator:()=>On,isCommentTerminal:()=>Rn,isDataType:()=>Dn,isDataTypeRule:()=>Pn,isOptionalCardinality:()=>Ln,terminalRegex:()=>Vn});var Pe=class extends Error{static{e(this,"ErrorWithLocation")}constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function _e(e){throw new Error("Error! The input value was not handled.")}e(_e,"assertUnreachable");var De={};i(De,{AbstractElement:()=>Xe,AbstractRule:()=>Fe,AbstractType:()=>Ge,Action:()=>jt,Alternatives:()=>Ht,ArrayLiteral:()=>Ze,ArrayType:()=>et,Assignment:()=>qt,BooleanLiteral:()=>rt,CharacterRange:()=>Xt,Condition:()=>Ke,Conjunction:()=>it,CrossReference:()=>Zt,Disjunction:()=>st,EndOfFile:()=>er,Grammar:()=>lt,GrammarImport:()=>ct,Group:()=>rr,InferredType:()=>ht,Interface:()=>pt,Keyword:()=>ir,LangiumGrammarAstReflection:()=>$r,LangiumGrammarTerminals:()=>Me,NamedArgument:()=>gt,NegatedToken:()=>sr,Negation:()=>Tt,NumberLiteral:()=>Rt,Parameter:()=>kt,ParameterReference:()=>$t,ParserRule:()=>Ct,ReferenceType:()=>St,RegexToken:()=>lr,ReturnType:()=>wt,RuleCall:()=>cr,SimpleType:()=>bt,StringLiteral:()=>Pt,TerminalAlternatives:()=>hr,TerminalGroup:()=>pr,TerminalRule:()=>Dt,TerminalRuleCall:()=>gr,Type:()=>Ft,TypeAttribute:()=>Gt,TypeDefinition:()=>He,UnionType:()=>Kt,UnorderedGroup:()=>Tr,UntilToken:()=>Rr,ValueLiteral:()=>qe,Wildcard:()=>kr,isAbstractElement:()=>Je,isAbstractRule:()=>Ue,isAbstractType:()=>Be,isAction:()=>Wt,isAlternatives:()=>zt,isArrayLiteral:()=>Qe,isArrayType:()=>tt,isAssignment:()=>Yt,isBooleanLiteral:()=>nt,isCharacterRange:()=>Jt,isCondition:()=>Ve,isConjunction:()=>at,isCrossReference:()=>Qt,isDisjunction:()=>ot,isEndOfFile:()=>tr,isFeatureName:()=>je,isGrammar:()=>ut,isGrammarImport:()=>dt,isGroup:()=>nr,isInferredType:()=>ft,isInterface:()=>mt,isKeyword:()=>ar,isNamedArgument:()=>yt,isNegatedToken:()=>or,isNegation:()=>vt,isNumberLiteral:()=>At,isParameter:()=>Et,isParameterReference:()=>xt,isParserRule:()=>It,isPrimitiveType:()=>We,isReferenceType:()=>Nt,isRegexToken:()=>ur,isReturnType:()=>Lt,isRuleCall:()=>dr,isSimpleType:()=>Ot,isStringLiteral:()=>_t,isTerminalAlternatives:()=>fr,isTerminalGroup:()=>mr,isTerminalRule:()=>Mt,isTerminalRuleCall:()=>yr,isType:()=>Ut,isTypeAttribute:()=>Bt,isTypeDefinition:()=>ze,isUnionType:()=>Vt,isUnorderedGroup:()=>vr,isUntilToken:()=>Ar,isValueLiteral:()=>Ye,isWildcard:()=>Er,reflection:()=>xr});var Me={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},Fe="AbstractRule";function Ue(e){return xr.isInstance(e,Fe)}e(Ue,"isAbstractRule");var Ge="AbstractType";function Be(e){return xr.isInstance(e,Ge)}e(Be,"isAbstractType");var Ke="Condition";function Ve(e){return xr.isInstance(e,Ke)}function je(e){return We(e)||"current"===e||"entry"===e||"extends"===e||"false"===e||"fragment"===e||"grammar"===e||"hidden"===e||"import"===e||"interface"===e||"returns"===e||"terminal"===e||"true"===e||"type"===e||"infer"===e||"infers"===e||"with"===e||"string"==typeof e&&/\^?[_a-zA-Z][\w_]*/.test(e)}function We(e){return"string"===e||"number"===e||"boolean"===e||"Date"===e||"bigint"===e}e(Ve,"isCondition"),e(je,"isFeatureName"),e(We,"isPrimitiveType");var He="TypeDefinition";function ze(e){return xr.isInstance(e,He)}e(ze,"isTypeDefinition");var qe="ValueLiteral";function Ye(e){return xr.isInstance(e,qe)}e(Ye,"isValueLiteral");var Xe="AbstractElement";function Je(e){return xr.isInstance(e,Xe)}e(Je,"isAbstractElement");var Ze="ArrayLiteral";function Qe(e){return xr.isInstance(e,Ze)}e(Qe,"isArrayLiteral");var et="ArrayType";function tt(e){return xr.isInstance(e,et)}e(tt,"isArrayType");var rt="BooleanLiteral";function nt(e){return xr.isInstance(e,rt)}e(nt,"isBooleanLiteral");var it="Conjunction";function at(e){return xr.isInstance(e,it)}e(at,"isConjunction");var st="Disjunction";function ot(e){return xr.isInstance(e,st)}e(ot,"isDisjunction");var lt="Grammar";function ut(e){return xr.isInstance(e,lt)}e(ut,"isGrammar");var ct="GrammarImport";function dt(e){return xr.isInstance(e,ct)}e(dt,"isGrammarImport");var ht="InferredType";function ft(e){return xr.isInstance(e,ht)}e(ft,"isInferredType");var pt="Interface";function mt(e){return xr.isInstance(e,pt)}e(mt,"isInterface");var gt="NamedArgument";function yt(e){return xr.isInstance(e,gt)}e(yt,"isNamedArgument");var Tt="Negation";function vt(e){return xr.isInstance(e,Tt)}e(vt,"isNegation");var Rt="NumberLiteral";function At(e){return xr.isInstance(e,Rt)}e(At,"isNumberLiteral");var kt="Parameter";function Et(e){return xr.isInstance(e,kt)}e(Et,"isParameter");var $t="ParameterReference";function xt(e){return xr.isInstance(e,$t)}e(xt,"isParameterReference");var Ct="ParserRule";function It(e){return xr.isInstance(e,Ct)}e(It,"isParserRule");var St="ReferenceType";function Nt(e){return xr.isInstance(e,St)}e(Nt,"isReferenceType");var wt="ReturnType";function Lt(e){return xr.isInstance(e,wt)}e(Lt,"isReturnType");var bt="SimpleType";function Ot(e){return xr.isInstance(e,bt)}e(Ot,"isSimpleType");var Pt="StringLiteral";function _t(e){return xr.isInstance(e,Pt)}e(_t,"isStringLiteral");var Dt="TerminalRule";function Mt(e){return xr.isInstance(e,Dt)}e(Mt,"isTerminalRule");var Ft="Type";function Ut(e){return xr.isInstance(e,Ft)}e(Ut,"isType");var Gt="TypeAttribute";function Bt(e){return xr.isInstance(e,Gt)}e(Bt,"isTypeAttribute");var Kt="UnionType";function Vt(e){return xr.isInstance(e,Kt)}e(Vt,"isUnionType");var jt="Action";function Wt(e){return xr.isInstance(e,jt)}e(Wt,"isAction");var Ht="Alternatives";function zt(e){return xr.isInstance(e,Ht)}e(zt,"isAlternatives");var qt="Assignment";function Yt(e){return xr.isInstance(e,qt)}e(Yt,"isAssignment");var Xt="CharacterRange";function Jt(e){return xr.isInstance(e,Xt)}e(Jt,"isCharacterRange");var Zt="CrossReference";function Qt(e){return xr.isInstance(e,Zt)}e(Qt,"isCrossReference");var er="EndOfFile";function tr(e){return xr.isInstance(e,er)}e(tr,"isEndOfFile");var rr="Group";function nr(e){return xr.isInstance(e,rr)}e(nr,"isGroup");var ir="Keyword";function ar(e){return xr.isInstance(e,ir)}e(ar,"isKeyword");var sr="NegatedToken";function or(e){return xr.isInstance(e,sr)}e(or,"isNegatedToken");var lr="RegexToken";function ur(e){return xr.isInstance(e,lr)}e(ur,"isRegexToken");var cr="RuleCall";function dr(e){return xr.isInstance(e,cr)}e(dr,"isRuleCall");var hr="TerminalAlternatives";function fr(e){return xr.isInstance(e,hr)}e(fr,"isTerminalAlternatives");var pr="TerminalGroup";function mr(e){return xr.isInstance(e,pr)}e(mr,"isTerminalGroup");var gr="TerminalRuleCall";function yr(e){return xr.isInstance(e,gr)}e(yr,"isTerminalRuleCall");var Tr="UnorderedGroup";function vr(e){return xr.isInstance(e,Tr)}e(vr,"isUnorderedGroup");var Rr="UntilToken";function Ar(e){return xr.isInstance(e,Rr)}e(Ar,"isUntilToken");var kr="Wildcard";function Er(e){return xr.isInstance(e,kr)}e(Er,"isWildcard");var $r=class extends Q{static{e(this,"LangiumGrammarAstReflection")}getAllTypes(){return[Xe,Fe,Ge,jt,Ht,Ze,et,qt,rt,Xt,Ke,it,Zt,st,er,lt,ct,rr,ht,pt,ir,gt,sr,Tt,Rt,kt,$t,Ct,St,lr,wt,cr,bt,Pt,hr,pr,Dt,gr,Ft,Gt,He,Kt,Tr,Rr,qe,kr]}computeIsSubtype(e,t){switch(e){case jt:case Ht:case qt:case Xt:case Zt:case er:case rr:case ir:case sr:case lr:case cr:case hr:case pr:case gr:case Tr:case Rr:case kr:return this.isSubtype(Xe,t);case Ze:case Rt:case Pt:return this.isSubtype(qe,t);case et:case St:case bt:case Kt:return this.isSubtype(He,t);case rt:return this.isSubtype(Ke,t)||this.isSubtype(qe,t);case it:case st:case Tt:case $t:return this.isSubtype(Ke,t);case ht:case pt:case Ft:return this.isSubtype(Ge,t);case Ct:return this.isSubtype(Fe,t)||this.isSubtype(Ge,t);case Dt:return this.isSubtype(Fe,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Ge;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Fe;case"Grammar:usedGrammars":return lt;case"NamedArgument:parameter":case"ParameterReference:parameter":return kt;case"TerminalRuleCall:rule":return Dt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Xe:return{name:Xe,properties:[{name:"cardinality"},{name:"lookahead"}]};case Ze:return{name:Ze,properties:[{name:"elements",defaultValue:[]}]};case et:return{name:et,properties:[{name:"elementType"}]};case rt:return{name:rt,properties:[{name:"true",defaultValue:!1}]};case it:return{name:it,properties:[{name:"left"},{name:"right"}]};case st:return{name:st,properties:[{name:"left"},{name:"right"}]};case lt:return{name:lt,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case ct:return{name:ct,properties:[{name:"path"}]};case ht:return{name:ht,properties:[{name:"name"}]};case pt:return{name:pt,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case gt:return{name:gt,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Tt:return{name:Tt,properties:[{name:"value"}]};case Rt:return{name:Rt,properties:[{name:"value"}]};case kt:return{name:kt,properties:[{name:"name"}]};case $t:return{name:$t,properties:[{name:"parameter"}]};case Ct:return{name:Ct,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case St:return{name:St,properties:[{name:"referenceType"}]};case wt:return{name:wt,properties:[{name:"name"}]};case bt:return{name:bt,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Pt:return{name:Pt,properties:[{name:"value"}]};case Dt:return{name:Dt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Ft:return{name:Ft,properties:[{name:"name"},{name:"type"}]};case Gt:return{name:Gt,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Kt:return{name:Kt,properties:[{name:"types",defaultValue:[]}]};case jt:return{name:jt,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Ht:return{name:Ht,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case qt:return{name:qt,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Xt:return{name:Xt,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Zt:return{name:Zt,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case er:return{name:er,properties:[{name:"cardinality"},{name:"lookahead"}]};case rr:return{name:rr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case ir:return{name:ir,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case sr:return{name:sr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case lr:return{name:lr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case cr:return{name:cr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case hr:return{name:hr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case pr:return{name:pr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case gr:return{name:gr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Tr:return{name:Tr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Rr:return{name:Rr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case kr:return{name:kr,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},xr=new $r,Cr={};function Ir(e){for(let[t,r]of Object.entries(e))t.startsWith("$")||(Array.isArray(r)?r.forEach((r,n)=>{Y(r)&&(r.$container=e,r.$containerProperty=t,r.$containerIndex=n)}):Y(r)&&(r.$container=e,r.$containerProperty=t))}function Sr(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function Nr(e,t){let r=e;for(;r;){if(t(r))return!0;r=r.$container}return!1}function wr(e){let t=Lr(e).$document;if(!t)throw new Error("AST node has no document.");return t}function Lr(e){for(;e.$container;)e=e.$container;return e}function br(e,t){if(!e)throw new Error("Node must be an AstNode.");let r=t?.range;return new ne(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith("$")){let i=e[n];if(Y(i)){if(t.keyIndex++,_r(i,r))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){let e=i[t.arrayIndex++];if(Y(e)&&_r(e,r))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return oe})}function Or(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new he(e,e=>br(e,t))}function Pr(e,t){if(!e)throw new Error("Root node must be an AstNode.");return t?.range&&!_r(e,t.range)?new he(e,()=>[]):new he(e,e=>br(e,t),{includeRoot:!0})}function _r(e,t){var r;if(!t)return!0;let n=null===(r=e.$cstNode)||void 0===r?void 0:r.range;return!!n&&ve(n,t)}function Dr(e){return new ne(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith("$")){let n=e[r];if(X(n))return t.keyIndex++,{done:!1,value:{reference:n,container:e,property:r}};if(Array.isArray(n)){for(;t.arrayIndex<n.length;){let i=t.arrayIndex++,a=n[i];if(X(a))return{done:!1,value:{reference:a,container:e,property:r,index:i}}}t.arrayIndex=0}}t.keyIndex++}return oe})}function Mr(e,t=wr(e).parseResult.value){let r=[];return Pr(t).forEach(t=>{Dr(t).forEach(t=>{t.reference.ref===e&&r.push(t.reference)})}),le(r)}function Fr(e,t){let r=e.getTypeMetaData(t.$type),n=t;for(let e of r.properties)void 0!==e.defaultValue&&void 0===n[e.name]&&(n[e.name]=Ur(e.defaultValue))}function Ur(e){return Array.isArray(e)?[...e.map(Ur)]:e}function Gr(e,t){let r={$type:e.$type};for(let[n,i]of Object.entries(e))if(!n.startsWith("$"))if(Y(i))r[n]=Gr(i,t);else if(X(i))r[n]=t(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let e=[];for(let a of i)Y(a)?e.push(Gr(a,t)):X(a)?e.push(t(r,n,a.$refNode,a.$refText)):e.push(a);r[n]=e}else r[n]=i;return Ir(r),r}i(Cr,{assignMandatoryProperties:()=>Fr,copyAstNode:()=>Gr,findLocalReferences:()=>Mr,findRootNode:()=>Lr,getContainerOfType:()=>Sr,getDocument:()=>wr,hasContainerOfType:()=>Nr,linkContentToContainer:()=>Ir,streamAllContents:()=>Or,streamAst:()=>Pr,streamContents:()=>br,streamReferences:()=>Dr}),e(Ir,"linkContentToContainer"),e(Sr,"getContainerOfType"),e(Nr,"hasContainerOfType"),e(wr,"getDocument"),e(Lr,"findRootNode"),e(br,"streamContents"),e(Or,"streamAllContents"),e(Pr,"streamAst"),e(_r,"isAstNodeInRange"),e(Dr,"streamReferences"),e(Mr,"findLocalReferences"),e(Fr,"assignMandatoryProperties"),e(Ur,"copyDefaultValue"),e(Gr,"copyAstNode");var Br={};function Kr(e){return e.charCodeAt(0)}function Vr(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function jr(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function Wr(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function Hr(){throw Error("Internal Error - Should never get here!")}function zr(e){return"Character"===e.type}i(Br,{NEWLINE_REGEXP:()=>rn,escapeRegExp:()=>dn,getCaseInsensitivePattern:()=>hn,getTerminalParts:()=>on,isMultilineComment:()=>ln,isWhitespace:()=>cn,partialMatches:()=>fn,partialRegExp:()=>pn,whitespaceCharacters:()=>un}),e(Kr,"cc"),e(Vr,"insertToSet"),e(jr,"addFlag"),e(Wr,"ASSERT_EXISTS"),e(Hr,"ASSERT_NEVER_REACH_HERE"),e(zr,"isCharacter");var qr=[];for(let e=Kr("0");e<=Kr("9");e++)qr.push(e);var Yr=[Kr("_")].concat(qr);for(let e=Kr("a");e<=Kr("z");e++)Yr.push(e);for(let e=Kr("A");e<=Kr("Z");e++)Yr.push(e);var Xr=[Kr(" "),Kr("\f"),Kr("\n"),Kr("\r"),Kr("\t"),Kr("\v"),Kr("\t"),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr(" "),Kr("\u2028"),Kr("\u2029"),Kr(" "),Kr(" "),Kr(" "),Kr("\ufeff")],Jr=/[0-9a-fA-F]/,Zr=/[0-9]/,Qr=/[1-9]/,en=class{static{e(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":jr(r,"global");break;case"i":jr(r,"ignoreCase");break;case"m":jr(r,"multiLine");break;case"u":jr(r,"unicode");break;case"y":jr(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Wr(t);let r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return Hr()}quantifier(e=!1){let t,r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let r=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:r,atMost:r};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:r,atMost:e}):t={atLeast:r,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;Wr(t)}if((!0!==e||void 0!==t)&&Wr(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e,t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),Wr(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):Hr()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[Kr("\n"),Kr("\r"),Kr("\u2028"),Kr("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=qr;break;case"D":e=qr,t=!0;break;case"s":e=Xr;break;case"S":e=Xr,t=!0;break;case"w":e=Yr;break;case"W":e=Yr,t=!0}return Wr(e)?{type:"Set",value:e,complement:t}:Hr()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=Kr("\f");break;case"n":e=Kr("\n");break;case"r":e=Kr("\r");break;case"t":e=Kr("\t");break;case"v":e=Kr("\v")}return Wr(e)?{type:"Character",value:e}:Hr()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:Kr("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:Kr(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:Kr(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,zr(t)&&this.isRangeDash()){this.consumeChar("-");let r=this.classAtom();if(r.type,zr(r)){if(r.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:r.value})}else Vr(t.value,e),e.push(Kr("-")),Vr(r.value,e)}else Vr(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:Kr("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;if("?"===(this.consumeChar("("),this.peekChar(0)))this.consumeChar("?"),this.consumeChar(":"),e=!1;else this.groupIdx++;let t=this.disjunction();this.consumeChar(")");let r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(!1===Qr.test(e))throw Error("Expecting a positive integer");for(;Zr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===Zr.test(e))throw Error("Expecting an integer");for(;Zr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:Kr(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return Zr.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2));default:return!1}}isQuantifier(){let e=this.saveState();try{return void 0!==this.quantifier(!0)}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let r=0;r<e;r++){let e=this.popChar();if(!1===Jr.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}},tn=class{static{e(this,"BaseRegExpVisitor")}visitChildren(e){for(let t in e){let r=e[t];e.hasOwnProperty(t)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}},rn=/\r?\n/gm,nn=new en,an=class extends tn{static{e(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let t=String.fromCharCode(e.value);if(!this.multiline&&"\n"===t&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let e=dn(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){let t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!"\n".match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){"Group"===e.type&&e.quantifier||super.visitChildren(e)}},sn=new an;function on(e){try{"string"!=typeof e&&(e=e.source),e=`/${e}/`;let t=nn.pattern(e),r=[];for(let n of t.value.value)sn.reset(e),sn.visit(n),r.push({start:sn.startRegexp,end:sn.endRegex});return r}catch{return[]}}function ln(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),sn.reset(e),sn.visit(nn.pattern(e)),sn.multiline}catch{return!1}}e(on,"getTerminalParts"),e(ln,"isMultilineComment");var un="\f\n\r\t\v \u2028\u2029 \ufeff".split("");function cn(e){let t="string"==typeof e?new RegExp(e):e;return un.some(e=>t.test(e))}function dn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function hn(e){return Array.prototype.map.call(e,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:dn(e)).join("")}function fn(e,t){let r=pn(e),n=t.match(r);return!!n&&n[0].length>0}function pn(t){"string"==typeof t&&(t=new RegExp(t));let r=t,n=t.source,i=0;function a(){let t,s="";function o(e){s+=n.substr(i,e),i+=e}function l(e){s+="(?:"+n.substr(i,e)+"|$)",i+=e}for(e(o,"appendRaw"),e(l,"appendOptional");i<n.length;)switch(n[i]){case"\\":switch(n[i+1]){case"c":l(3);break;case"x":l(4);break;case"u":r.unicode?"{"===n[i+2]?l(n.indexOf("}",i)-i+1):l(6):l(2);break;case"p":case"P":r.unicode?l(n.indexOf("}",i)-i+1):l(2);break;case"k":l(n.indexOf(">",i)-i+1);break;default:l(2)}break;case"[":t=/\[(?:\\.|.)*?\]/g,t.lastIndex=i,t=t.exec(n)||[],l(t[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":t=/\{\d+,?\d*\}/g,t.lastIndex=i,t=t.exec(n),t?o(t[0].length):l(1);break;case"(":if("?"===n[i+1])switch(n[i+2]){case":":s+="(?:",i+=3,s+=a()+"|$)";break;case"=":s+="(?=",i+=3,s+=a()+")";break;case"!":t=i,i+=3,a(),s+=n.substr(t,i-t);break;case"<":switch(n[i+3]){case"=":case"!":t=i,i+=4,a(),s+=n.substr(t,i-t);break;default:o(n.indexOf(">",i)-i+1),s+=a()+"|$)"}}else o(1),s+=a()+"|$)";break;case")":return++i,s;default:l(1)}return s}return e(a,"process"),new RegExp(a(),t.flags)}function mn(e){return e.rules.find(e=>It(e)&&e.entry)}function gn(e){return e.rules.filter(e=>Mt(e)&&e.hidden)}function yn(e,t){let r=new Set,n=mn(e);if(!n)return new Set(e.rules);let i=[n].concat(gn(e));for(let e of i)Tn(e,r,t);let a=new Set;for(let t of e.rules)(r.has(t.name)||Mt(t)&&t.hidden)&&a.add(t);return a}function Tn(e,t,r){t.add(e.name),Or(e).forEach(e=>{if(dr(e)||r&&yr(e)){let n=e.rule.ref;n&&!t.has(n.name)&&Tn(n,t,r)}})}function vn(e){if(e.terminal)return e.terminal;if(e.type.ref){let t=Sn(e.type.ref);return t?.terminal}}function Rn(e){return e.hidden&&!cn(Vn(e))}function An(e,t){return e&&t?En(e,t,e.astNode,!0):[]}function kn(e,t,r){if(!e||!t)return;let n=En(e,t,e.astNode,!0);return 0!==n.length?n[r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0]:void 0}function En(e,t,r,n){if(!n){let r=Sr(e.grammarSource,Yt);if(r&&r.feature===t)return[e]}return ee(e)&&e.astNode===r?e.content.flatMap(e=>En(e,t,r,!1)):[]}function $n(e,t){return e?Cn(e,t,e?.astNode):[]}function xn(e,t,r){if(!e)return;let n=Cn(e,t,e?.astNode);return 0!==n.length?n[r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0]:void 0}function Cn(e,t,r){if(e.astNode!==r)return[];if(ar(e.grammarSource)&&e.grammarSource.value===t)return[e];let n,i=fe(e).iterator(),a=[];do{if(n=i.next(),!n.done){let e=n.value;e.astNode===r?ar(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):i.prune()}}while(!n.done);return a}function In(e){var t;let r=e.astNode;for(;r===(null===(t=e.container)||void 0===t?void 0:t.astNode);){let t=Sr(e.grammarSource,Yt);if(t)return t;e=e.container}}function Sn(e){let t=e;return ft(t)&&(Wt(t.$container)?t=t.$container.$container:It(t.$container)?t=t.$container:_e(t.$container)),Nn(e,t,new Map)}function Nn(t,r,n){var i;function a(e,r){let i;return Sr(e,Yt)||(i=Nn(r,r,n)),n.set(t,i),i}if(e(a,"go"),n.has(t))return n.get(t);n.set(t,void 0);for(let e of Or(r)){if(Yt(e)&&"name"===e.feature.toLowerCase())return n.set(t,e),e;if(dr(e)&&It(e.rule.ref))return a(e,e.rule.ref);if(Ot(e)&&null!==(i=e.typeRef)&&void 0!==i&&i.ref)return a(e,e.typeRef.ref)}}function wn(e){let t=e.$container;if(nr(t)){let r=t.elements;for(let t=r.indexOf(e)-1;t>=0;t--){let e=r[t];if(Wt(e))return e;{let e=Or(r[t]).find(Wt);if(e)return e}}}if(Je(t))return wn(t)}function Ln(e,t){return"?"===e||"*"===e||nr(t)&&!!t.guardCondition}function bn(e){return"*"===e||"+"===e}function On(e){return"+="===e}function Pn(e){return _n(e,new Set)}function _n(e,t){if(t.has(e))return!0;t.add(e);for(let r of Or(e))if(dr(r)){if(!r.rule.ref||It(r.rule.ref)&&!_n(r.rule.ref,t))return!1}else{if(Yt(r))return!1;if(Wt(r))return!1}return!!e.definition}function Dn(e){return Mn(e.type,new Set)}function Mn(e,t){if(t.has(e))return!0;if(t.add(e),tt(e))return!1;if(Nt(e))return!1;if(Vt(e))return e.types.every(e=>Mn(e,t));if(Ot(e)){if(void 0!==e.primitiveType)return!0;if(void 0!==e.stringType)return!0;if(void 0!==e.typeRef){let r=e.typeRef.ref;return!!Ut(r)&&Mn(r.type,t)}return!1}return!1}function Fn(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t){if(It(t))return t.name;if(mt(t)||Ut(t))return t.name}}}function Un(e){var t;if(It(e))return Pn(e)?e.name:null!==(t=Fn(e))&&void 0!==t?t:e.name;if(mt(e)||Ut(e)||Lt(e))return e.name;if(Wt(e)){let t=Gn(e);if(t)return t}else if(ft(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function Gn(e){var t;return e.inferredType?e.inferredType.name:null!==(t=e.type)&&void 0!==t&&t.ref?Un(e.type.ref):void 0}function Bn(e){var t,r,n;return Mt(e)?null!==(r=null===(t=e.type)||void 0===t?void 0:t.name)&&void 0!==r?r:"string":Pn(e)?e.name:null!==(n=Fn(e))&&void 0!==n?n:e.name}function Kn(e){var t,r,n;return Mt(e)?null!==(r=null===(t=e.type)||void 0===t?void 0:t.name)&&void 0!==r?r:"string":null!==(n=Fn(e))&&void 0!==n?n:e.name}function Vn(e){let t={s:!1,i:!1,u:!1},r=Wn(e.definition,t),n=Object.entries(t).filter(([,e])=>e).map(([e])=>e).join("");return new RegExp(r,n)}e(cn,"isWhitespace"),e(dn,"escapeRegExp"),e(hn,"getCaseInsensitivePattern"),e(fn,"partialMatches"),e(pn,"partialRegExp"),e(mn,"getEntryRule"),e(gn,"getHiddenRules"),e(yn,"getAllReachableRules"),e(Tn,"ruleDfs"),e(vn,"getCrossReferenceTerminal"),e(Rn,"isCommentTerminal"),e(An,"findNodesForProperty"),e(kn,"findNodeForProperty"),e(En,"findNodesForPropertyInternal"),e($n,"findNodesForKeyword"),e(xn,"findNodeForKeyword"),e(Cn,"findNodesForKeywordInternal"),e(In,"findAssignment"),e(Sn,"findNameAssignment"),e(Nn,"findNameAssignmentInternal"),e(wn,"getActionAtElement"),e(Ln,"isOptionalCardinality"),e(bn,"isArrayCardinality"),e(On,"isArrayOperator"),e(Pn,"isDataTypeRule"),e(_n,"isDataTypeRuleInternal"),e(Dn,"isDataType"),e(Mn,"isDataTypeInternal"),e(Fn,"getExplicitRuleType"),e(Un,"getTypeName"),e(Gn,"getActionType"),e(Bn,"getRuleTypeName"),e(Kn,"getRuleType"),e(Vn,"terminalRegex");var jn=/[\s\S]/.source;function Wn(e,t){if(fr(e))return Hn(e);if(mr(e))return zn(e);if(Jt(e))return Xn(e);if(yr(e)){let t=e.rule.ref;if(!t)throw new Error("Missing rule reference.");return Zn(Wn(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}if(or(e))return Yn(e);if(Ar(e))return qn(e);if(ur(e)){let r=e.regex.lastIndexOf("/"),n=e.regex.substring(1,r),i=e.regex.substring(r+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),Zn(n,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}if(Er(e))return Zn(jn,{cardinality:e.cardinality,lookahead:e.lookahead});throw new Error(`Invalid terminal element: ${e?.$type}`)}function Hn(e){return Zn(e.elements.map(e=>Wn(e)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead})}function zn(e){return Zn(e.elements.map(e=>Wn(e)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead})}function qn(e){return Zn(`${jn}*?${Wn(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}function Yn(e){return Zn(`(?!${Wn(e.terminal)})${jn}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}function Xn(e){return e.right?Zn(`[${Jn(e.left)}-${Jn(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1}):Zn(Jn(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}function Jn(e){return dn(e.value)}function Zn(e,t){var r;return(!1!==t.wrap||t.lookahead)&&(e=`(${null!==(r=t.lookahead)&&void 0!==r?r:""}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function Qn(e){let t=[],r=e.Grammar;for(let e of r.rules)Mt(e)&&Rn(e)&&ln(Vn(e))&&t.push(e.name);return{multilineCommentRules:t,nameRegexp:Re}}function ei(e){console&&console.error&&console.error(`Error: ${e}`)}function ti(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function ri(e){let t=(new Date).getTime(),r=e();return{time:(new Date).getTime()-t,value:r}}function ni(t){function r(){}e(r,"FakeConstructor"),r.prototype=t;let n=new r;function i(){return typeof n.bar}return e(i,"fakeAccess"),i(),i(),t}function ii(e){return ai(e)?e.LABEL:e.name}function ai(e){return $(e.LABEL)&&""!==e.LABEL}e(Wn,"abstractElementToRegex"),e(Hn,"terminalAlternativesToRegex"),e(zn,"terminalGroupToRegex"),e(qn,"untilTokenToRegex"),e(Yn,"negateTokenToRegex"),e(Xn,"characterRangeToRegex"),e(Jn,"keywordToRegex"),e(Zn,"withCardinality"),e(Qn,"createGrammarConfig"),e(ei,"PRINT_ERROR"),e(ti,"PRINT_WARNING"),e(ri,"timer"),e(ni,"toFastProperties"),e(ii,"tokenLabel"),e(ai,"hasTokenLabel");var si=class{static{e(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),h(this.definition,t=>{t.accept(e)})}},oi=class extends si{static{e(this,"NonTerminal")}constructor(e){super([]),this.idx=1,c(this,N(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}},li=class extends si{static{e(this,"Rule")}constructor(e){super(e.definition),this.orgText="",c(this,N(e,e=>void 0!==e))}},ui=class extends si{static{e(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,c(this,N(e,e=>void 0!==e))}},ci=class extends si{static{e(this,"Option")}constructor(e){super(e.definition),this.idx=1,c(this,N(e,e=>void 0!==e))}},di=class extends si{static{e(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,c(this,N(e,e=>void 0!==e))}},hi=class extends si{static{e(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,c(this,N(e,e=>void 0!==e))}},fi=class extends si{static{e(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,c(this,N(e,e=>void 0!==e))}},pi=class extends si{static{e(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,c(this,N(e,e=>void 0!==e))}},mi=class extends si{static{e(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,c(this,N(e,e=>void 0!==e))}},gi=class{static{e(this,"Terminal")}constructor(e){this.idx=1,c(this,N(e,e=>void 0!==e))}accept(e){e.visit(this)}};function yi(e){return p(e,Ti)}function Ti(t){function r(e){return p(e,Ti)}if(e(r,"convertDefinition"),t instanceof oi){let e={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return $(t.label)&&(e.label=t.label),e}if(t instanceof ui)return{type:"Alternative",definition:r(t.definition)};if(t instanceof ci)return{type:"Option",idx:t.idx,definition:r(t.definition)};if(t instanceof di)return{type:"RepetitionMandatory",idx:t.idx,definition:r(t.definition)};if(t instanceof hi)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Ti(new gi({terminalType:t.separator})),definition:r(t.definition)};if(t instanceof pi)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Ti(new gi({terminalType:t.separator})),definition:r(t.definition)};if(t instanceof fi)return{type:"Repetition",idx:t.idx,definition:r(t.definition)};if(t instanceof mi)return{type:"Alternation",idx:t.idx,definition:r(t.definition)};if(t instanceof gi){let e={type:"Terminal",name:t.terminalType.name,label:ii(t.terminalType),idx:t.idx};$(t.label)&&(e.terminalLabel=t.label);let r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(e.pattern=M(r)?r.source:r),e}if(t instanceof li)return{type:"Rule",name:t.name,orgText:t.orgText,definition:r(t.definition)};throw Error("non exhaustive match")}e(yi,"serializeGrammar"),e(Ti,"serializeProduction");var vi=class{static{e(this,"GAstVisitor")}visit(e){let t=e;switch(t.constructor){case oi:return this.visitNonTerminal(t);case ui:return this.visitAlternative(t);case ci:return this.visitOption(t);case di:return this.visitRepetitionMandatory(t);case hi:return this.visitRepetitionMandatoryWithSeparator(t);case pi:return this.visitRepetitionWithSeparator(t);case fi:return this.visitRepetition(t);case mi:return this.visitAlternation(t);case gi:return this.visitTerminal(t);case li:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function Ri(e){return e instanceof ui||e instanceof ci||e instanceof fi||e instanceof di||e instanceof hi||e instanceof pi||e instanceof gi||e instanceof li}function Ai(e,t=[]){return e instanceof ci||e instanceof fi||e instanceof pi||(e instanceof mi?B(e.definition,e=>Ai(e,t)):!(e instanceof oi&&D(t,e))&&(e instanceof si&&(e instanceof oi&&t.push(e),S(e.definition,e=>Ai(e,t)))))}function ki(e){return e instanceof mi}function Ei(e){if(e instanceof oi)return"SUBRULE";if(e instanceof ci)return"OPTION";if(e instanceof mi)return"OR";if(e instanceof di)return"AT_LEAST_ONE";if(e instanceof hi)return"AT_LEAST_ONE_SEP";if(e instanceof pi)return"MANY_SEP";if(e instanceof fi)return"MANY";if(e instanceof gi)return"CONSUME";throw Error("non exhaustive match")}e(Ri,"isSequenceProd"),e(Ai,"isOptionalProd"),e(ki,"isBranchingProd"),e(Ei,"getProductionDslName");var $i=class{static{e(this,"RestWalker")}walk(e,t=[]){h(e.definition,(r,n)=>{let i=_(e.definition,n+1);if(r instanceof oi)this.walkProdRef(r,i,t);else if(r instanceof gi)this.walkTerminal(r,i,t);else if(r instanceof ui)this.walkFlat(r,i,t);else if(r instanceof ci)this.walkOption(r,i,t);else if(r instanceof di)this.walkAtLeastOne(r,i,t);else if(r instanceof hi)this.walkAtLeastOneSep(r,i,t);else if(r instanceof pi)this.walkManySep(r,i,t);else if(r instanceof fi)this.walkMany(r,i,t);else{if(!(r instanceof mi))throw Error("non exhaustive match");this.walkOr(r,i,t)}})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){let n=t.concat(r);this.walk(e,n)}walkOption(e,t,r){let n=t.concat(r);this.walk(e,n)}walkAtLeastOne(e,t,r){let n=[new ci({definition:e.definition})].concat(t,r);this.walk(e,n)}walkAtLeastOneSep(e,t,r){let n=xi(e,t,r);this.walk(e,n)}walkMany(e,t,r){let n=[new ci({definition:e.definition})].concat(t,r);this.walk(e,n)}walkManySep(e,t,r){let n=xi(e,t,r);this.walk(e,n)}walkOr(e,t,r){let n=t.concat(r);h(e.definition,e=>{let t=new ui({definition:[e]});this.walk(t,n)})}};function xi(e,t,r){return[new ci({definition:[new gi({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}function Ci(e){if(e instanceof oi)return Ci(e.referencedRule);if(e instanceof gi)return Ni(e);if(Ri(e))return Ii(e);if(ki(e))return Si(e);throw Error("non exhaustive match")}function Ii(e){let t,r=[],n=e.definition,i=0,a=n.length>i,s=!0;for(;a&&s;)t=n[i],s=Ai(t),r=r.concat(Ci(t)),i+=1,a=n.length>i;return G(r)}function Si(e){let t=p(e.definition,e=>Ci(e));return G(A(t))}function Ni(e){return[e.terminalType]}e(xi,"restForRepetitionWithSeparator"),e(Ci,"first"),e(Ii,"firstForSequence"),e(Si,"firstForBranching"),e(Ni,"firstForTerminal");var wi="_~IN~_",Li=class extends $i{static{e(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){let n=Oi(e.referencedRule,e.idx)+this.topProd.name,i=t.concat(r),a=Ci(new ui({definition:i}));this.follows[n]=a}};function bi(e){let t={};return h(e,e=>{let r=new Li(e).startWalking();c(t,r)}),t}function Oi(e,t){return e.name+t+wi}e(bi,"computeAllProdsFollows"),e(Oi,"buildBetweenProdsFollowPrefix");var Pi={},_i=new en;function Di(e){let t=e.toString();if(Pi.hasOwnProperty(t))return Pi[t];{let e=_i.pattern(t);return Pi[t]=e,e}}function Mi(){Pi={}}e(Di,"getRegExpAst"),e(Mi,"clearRegExpParserCache");var Fi="Complement Sets are not supported for first char optimization",Ui='Unable to use "first char" lexer optimizations:\n';function Gi(e,t=!1){try{let t=Di(e);return Bi(t.value,{},t.flags.ignoreCase)}catch(r){if(r.message===Fi)t&&ti(`${Ui}\tUnable to optimize: < ${e.toString()} >\n\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";t&&(r="\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),ei(`${Ui}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function Bi(e,t,r){switch(e.type){case"Disjunction":for(let n=0;n<e.value.length;n++)Bi(e.value[n],t,r);break;case"Alternative":let n=e.value;for(let e=0;e<n.length;e++){let i=n[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":Ki(a.value,t,r);break;case"Set":if(!0===a.complement)throw Error(Fi);h(a.value,e=>{if("number"==typeof e)Ki(e,t,r);else{let n=e;if(!0===r)for(let e=n.from;e<=n.to;e++)Ki(e,t,r);else{for(let e=n.from;e<=n.to&&e<Ia;e++)Ki(e,t,r);if(n.to>=Ia){let e=n.from>=Ia?n.from:Ia,r=n.to,i=Na(e),a=Na(r);for(let e=i;e<=a;e++)t[e]=e}}}});break;case"Group":Bi(a.value,t,r);break;default:throw Error("Non Exhaustive Match")}let s=void 0!==a.quantifier&&0===a.quantifier.atLeast;if("Group"===a.type&&!1===Wi(a)||"Group"!==a.type&&!1===s)break}break;default:throw Error("non exhaustive match!")}return k(t)}function Ki(e,t,r){let n=Na(e);t[n]=n,!0===r&&Vi(e,t)}function Vi(e,t){let r=String.fromCharCode(e),n=r.toUpperCase();if(n!==r){let e=Na(n.charCodeAt(0));t[e]=e}else{let e=r.toLowerCase();if(e!==r){let r=Na(e.charCodeAt(0));t[r]=r}}}function ji(e,t){return U(e.value,e=>{if("number"==typeof e)return D(t,e);{let r=e;return void 0!==U(t,e=>r.from<=e&&e<=r.to)}})}function Wi(e){let r=e.quantifier;return!(!r||0!==r.atLeast)||!!e.value&&(t(e.value)?S(e.value,Wi):Wi(e.value))}e(Gi,"getOptimizedStartCodesIndices"),e(Bi,"firstCharOptimizedIndices"),e(Ki,"addOptimizedIdxToResult"),e(Vi,"handleIgnoreCase"),e(ji,"findCode"),e(Wi,"isWholeOptional");var Hi=class extends tn{static{e(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){D(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===ji(e,this.targetCharCodes)&&(this.found=!0):void 0!==ji(e,this.targetCharCodes)&&(this.found=!0)}};function zi(e,t){if(t instanceof RegExp){let r=Di(t),n=new Hi(e);return n.visit(r),n.found}return void 0!==U(t,t=>D(e,t.charCodeAt(0)))}e(zi,"canMatchCharCode");var qi="PATTERN",Yi="defaultMode",Xi="modes",Ji="boolean"==typeof new RegExp("(?:)").sticky;function Zi(n,i){i=I(i,{useSticky:Ji,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:e((e,t)=>t(),"tracer")});let a,o=i.tracer;o("initCharCodeToOptimizedIndexMap",()=>{wa()}),o("Reject Lexer.NA",()=>{a=E(n,e=>e[qi]===Ya.NA)});let l,u,c,d,f,m,y,T,R,A,k,x=!1;o("Transform Patterns",()=>{x=!1,l=p(a,e=>{let t=e[qi];if(M(t)){let e=t.source;return 1!==e.length||"^"===e||"$"===e||"."===e||t.ignoreCase?2!==e.length||"\\"!==e[0]||D(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?i.useSticky?ga(t):ma(t):e[1]:e}if(s(t))return x=!0,{exec:t};if("object"==typeof t)return x=!0,t;if("string"==typeof t){if(1===t.length)return t;{let e=t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),r=new RegExp(e);return i.useSticky?ga(r):ma(r)}}throw Error("non exhaustive match")})}),o("misc mapping",()=>{u=p(a,e=>e.tokenTypeIdx),c=p(a,e=>{let t=e.GROUP;if(t!==Ya.SKIPPED){if($(t))return t;if(C(t))return!1;throw Error("non exhaustive match")}}),d=p(a,e=>{let r=e.LONGER_ALT;if(r)return t(r)?p(r,e=>K(a,e)):[K(a,r)]}),f=p(a,e=>e.PUSH_MODE),m=p(a,e=>v(e,"POP_MODE"))}),o("Line Terminator Handling",()=>{let e=xa(i.lineTerminatorCharacters);y=p(a,e=>!1),"onlyOffset"!==i.positionTracking&&(y=p(a,t=>v(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===Ea(t,e)&&zi(e,t.PATTERN)))}),o("Misc Mapping #2",()=>{T=p(a,Ra),R=p(l,Aa),A=g(a,(e,t)=>{let r=t.GROUP;return $(r)&&r!==Ya.SKIPPED&&(e[r]=[]),e},{}),k=p(l,(e,t)=>({pattern:l[t],longerAlt:d[t],canLineTerminator:y[t],isCustom:T[t],short:R[t],group:c[t],push:f[t],pop:m[t],tokenTypeIdx:u[t],tokenType:a[t]}))});let S=!0,N=[];return i.safeMode||o("First Char Optimization",()=>{N=g(a,(e,n,a)=>{if("string"==typeof n.PATTERN){let t=Na(n.PATTERN.charCodeAt(0));Ca(e,t,k[a])}else if(t(n.START_CHARS_HINT)){let t;h(n.START_CHARS_HINT,r=>{let n=Na("string"==typeof r?r.charCodeAt(0):r);t!==n&&(t=n,Ca(e,n,k[a]))})}else if(M(n.PATTERN))if(n.PATTERN.unicode)S=!1,i.ensureOptimizations&&ei(`${Ui}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let t=Gi(n.PATTERN,i.ensureOptimizations);r(t)&&(S=!1),h(t,t=>{Ca(e,t,k[a])})}else i.ensureOptimizations&&ei(`${Ui}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),S=!1;return e},[])}),{emptyGroups:A,patternIdxToConfig:k,charCodeToPatternIdxToConfig:N,hasCustom:x,canBeOptimized:S}}function Qi(e,t){let r=[],n=ta(e);r=r.concat(n.errors);let i=ra(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(ea(a)),r=r.concat(ca(a)),r=r.concat(da(a,t)),r=r.concat(ha(a)),r}function ea(e){let t=[],r=w(e,e=>M(e[qi]));return t=t.concat(ia(r)),t=t.concat(oa(r)),t=t.concat(la(r)),t=t.concat(ua(r)),t=t.concat(aa(r)),t}function ta(e){let t=w(e,e=>!v(e,qi));return{errors:p(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:Ha.MISSING_PATTERN,tokenTypes:[e]})),valid:O(e,t)}}function ra(e){let t=w(e,e=>{let t=e[qi];return!(M(t)||s(t)||v(t,"exec")||$(t))});return{errors:p(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:Ha.INVALID_PATTERN,tokenTypes:[e]})),valid:O(e,t)}}e(Zi,"analyzeTokenTypes"),e(Qi,"validatePatterns"),e(ea,"validateRegExpPattern"),e(ta,"findMissingPatterns"),e(ra,"findInvalidPatterns");var na=/[^\\][$]/;function ia(t){class r extends tn{static{e(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}let n=w(t,e=>{let t=e.PATTERN;try{let e=Di(t),n=new r;return n.visit(e),n.found}catch{return na.test(t.source)}});return p(n,e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:Ha.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}function aa(e){let t=w(e,e=>e.PATTERN.test(""));return p(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:Ha.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}e(ia,"findEndOfInputAnchor"),e(aa,"findEmptyMatchRegExps");var sa=/[^\\[][\^]|^\^/;function oa(t){class r extends tn{static{e(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}let n=w(t,e=>{let t=e.PATTERN;try{let e=Di(t),n=new r;return n.visit(e),n.found}catch{return sa.test(t.source)}});return p(n,e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:Ha.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}function la(e){let t=w(e,e=>{let t=e[qi];return t instanceof RegExp&&(t.multiline||t.global)});return p(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ha.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}function ua(e){let t=[],r=p(e,r=>g(e,(e,n)=>(r.PATTERN.source===n.PATTERN.source&&!D(t,n)&&n.PATTERN!==Ya.NA&&(t.push(n),e.push(n)),e),[]));r=R(r);let n=w(r,e=>e.length>1);return p(n,e=>{let t=p(e,e=>e.name);return{message:`The same RegExp pattern ->${T(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:Ha.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}function ca(e){let t=w(e,e=>{if(!v(e,"GROUP"))return!1;let t=e.GROUP;return t!==Ya.SKIPPED&&t!==Ya.NA&&!$(t)});return p(t,e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ha.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}function da(e,t){let r=w(e,e=>void 0!==e.PUSH_MODE&&!D(t,e.PUSH_MODE));return p(r,e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:Ha.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}function ha(e){let t=[],r=g(e,(e,t,r)=>{let n=t.PATTERN;return n===Ya.NA||($(n)?e.push({str:n,idx:r,tokenType:t}):M(n)&&pa(n)&&e.push({str:n.source,idx:r,tokenType:t})),e},[]);return h(e,(e,n)=>{h(r,({str:r,idx:i,tokenType:a})=>{if(n<i&&fa(r,e.PATTERN)){let r=`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:r,type:Ha.UNREACHABLE_PATTERN,tokenTypes:[e,a]})}})}),t}function fa(e,t){if(M(t)){let r=t.exec(e);return null!==r&&0===r.index}if(s(t))return t(e,0,[],{});if(v(t,"exec"))return t.exec(e,0,[],{});if("string"==typeof t)return t===e;throw Error("non exhaustive match")}function pa(e){return void 0===U([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>-1!==e.source.indexOf(t))}function ma(e){let t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function ga(e){let t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function ya(e,r,n){let i=[];return v(e,Yi)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Yi+"> property in its definition\n",type:Ha.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),v(e,Xi)||i.push({message:"A MultiMode Lexer cannot be initialized without a <modes> property in its definition\n",type:Ha.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),v(e,Xi)&&v(e,Yi)&&!v(e.modes,e.defaultMode)&&i.push({message:`A MultiMode Lexer cannot be initialized with a ${Yi}: <${e.defaultMode}>which does not exist\n`,type:Ha.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),v(e,Xi)&&h(e.modes,(e,r)=>{h(e,(n,a)=>{if(C(n))i.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${r}> at index: <${a}>\n`,type:Ha.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(v(n,"LONGER_ALT")){let a=t(n.LONGER_ALT)?n.LONGER_ALT:[n.LONGER_ALT];h(a,t=>{!C(t)&&!D(e,t)&&i.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${t.name}> on token <${n.name}> outside of mode <${r}>\n`,type:Ha.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),i}function Ta(e,t,r){let n=[],i=!1,a=R(A(k(e.modes))),s=E(a,e=>e[qi]===Ya.NA),o=xa(r);return t&&h(s,e=>{let t=Ea(e,o);if(!1!==t){let r={message:$a(e,t),type:t.issue,tokenType:e};n.push(r)}else v(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(i=!0):zi(o,e.PATTERN)&&(i=!0)}),t&&!i&&n.push({message:"Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS\n\tfor details.",type:Ha.NO_LINE_BREAKS_FLAGS}),n}function va(e){let r={},n=f(e);return h(n,n=>{let i=e[n];if(!t(i))throw Error("non exhaustive match");r[n]=[]}),r}function Ra(e){let t=e.PATTERN;if(M(t))return!1;if(s(t))return!0;if(v(t,"exec"))return!0;if($(t))return!1;throw Error("non exhaustive match")}function Aa(e){return!(!$(e)||1!==e.length)&&e.charCodeAt(0)}e(oa,"findStartOfInputAnchor"),e(la,"findUnsupportedFlags"),e(ua,"findDuplicatePatterns"),e(ca,"findInvalidGroupType"),e(da,"findModesThatDoNotExist"),e(ha,"findUnreachablePatterns"),e(fa,"testTokenType"),e(pa,"noMetaChar"),e(ma,"addStartOfInput"),e(ga,"addStickyFlag"),e(ya,"performRuntimeChecks"),e(Ta,"performWarningRuntimeChecks"),e(va,"cloneEmptyGroups"),e(Ra,"isCustomPattern"),e(Aa,"isShortPattern");var ka={test:e(function(e){let t=e.length;for(let r=this.lastIndex;r<t;r++){let t=e.charCodeAt(r);if(10===t)return this.lastIndex=r+1,!0;if(13===t)return 10===e.charCodeAt(r+1)?this.lastIndex=r+2:this.lastIndex=r+1,!0}return!1},"test"),lastIndex:0};function Ea(e,t){if(v(e,"LINE_BREAKS"))return!1;if(M(e.PATTERN)){try{zi(t,e.PATTERN)}catch(e){return{issue:Ha.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}if($(e.PATTERN))return!1;if(Ra(e))return{issue:Ha.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function $a(e,t){if(t.issue===Ha.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===Ha.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.\n\tThe problem is in the <${e.name}> Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function xa(e){return p(e,e=>$(e)?e.charCodeAt(0):e)}function Ca(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}e(Ea,"checkLineBreaksIssues"),e($a,"buildLineBreakIssueMessage"),e(xa,"getCharCodes"),e(Ca,"addToMapOfArrays");var Ia=256,Sa=[];function Na(e){return e<Ia?e:Sa[e]}function wa(){if(r(Sa)){Sa=new Array(65536);for(let e=0;e<65536;e++)Sa[e]=e>255?255+~~(e/255):e}}function La(e,t){let r=e.tokenTypeIdx;return r===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[r]}function ba(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}e(Na,"charCodeToOptimizedIndex"),e(wa,"initCharCodeToOptimizedIndexMap"),e(La,"tokenStructuredMatcher"),e(ba,"tokenStructuredMatcherNoCategories");var Oa=1,Pa={};function _a(e){let t=Da(e);Ma(t),Ua(t),Fa(t),h(t,e=>{e.isParent=e.categoryMatches.length>0})}function Da(e){let t=d(e),n=e,i=!0;for(;i;){n=R(A(p(n,e=>e.CATEGORIES)));let e=O(n,t);t=t.concat(e),r(e)?i=!1:n=e}return t}function Ma(e){h(e,e=>{Ba(e)||(Pa[Oa]=e,e.tokenTypeIdx=Oa++),Ka(e)&&!t(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ka(e)||(e.CATEGORIES=[]),Va(e)||(e.categoryMatches=[]),ja(e)||(e.categoryMatchesMap={})})}function Fa(e){h(e,e=>{e.categoryMatches=[],h(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(Pa[r].tokenTypeIdx)})})}function Ua(e){h(e,e=>{Ga([],e)})}function Ga(e,t){h(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),h(t.CATEGORIES,r=>{let n=e.concat(t);D(n,r)||Ga(n,r)})}function Ba(e){return v(e,"tokenTypeIdx")}function Ka(e){return v(e,"CATEGORIES")}function Va(e){return v(e,"categoryMatches")}function ja(e){return v(e,"categoryMatchesMap")}function Wa(e){return v(e,"tokenTypeIdx")}e(_a,"augmentTokenTypes"),e(Da,"expandCategories"),e(Ma,"assignTokenDefaultProps"),e(Fa,"assignCategoriesTokensProp"),e(Ua,"assignCategoriesMapProp"),e(Ga,"singleAssignCategoriesToksMap"),e(Ba,"hasShortKeyProperty"),e(Ka,"hasCategoriesProperty"),e(Va,"hasExtendingTokensTypesProperty"),e(ja,"hasExtendingTokensTypesMapProperty"),e(Wa,"isTokenType");var Ha,za={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,r,n,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`};!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"}(Ha||(Ha={}));var qa={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:za,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(qa);var Ya=class{static{e(this,"Lexer")}constructor(e,i=qa){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0===this.traceInitPerf){this.traceInitIndent++;let r=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--\x3e <${e}>`);let{time:n,value:i}=ri(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}return t()},"boolean"==typeof i)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=c({},qa,i);let a=this.config.traceInitPerf;!0===a?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof a&&(this.traceInitMaxIdent=a,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let a,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===qa.lineTerminatorsPattern)this.config.lineTerminatorsPattern=ka;else if(this.config.lineTerminatorCharacters===qa.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(i.safeMode&&i.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),t(e)?a={modes:{defaultMode:d(e)},defaultMode:Yi}:(s=!1,a=d(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(ya(a,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Ta(a,this.trackStartLines,this.config.lineTerminatorCharacters))})),a.modes=a.modes?a.modes:{},h(a.modes,(e,t)=>{a.modes[t]=E(e,e=>C(e))});let o=f(a.modes);if(h(a.modes,(e,t)=>{this.TRACE_INIT(`Mode: <${t}> processing`,()=>{if(this.modes.push(t),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Qi(e,o))}),r(this.lexerDefinitionErrors)){let r;_a(e),this.TRACE_INIT("analyzeTokenTypes",()=>{r=Zi(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:i.positionTracking,ensureOptimizations:i.ensureOptimizations,safeMode:i.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[t]=r.patternIdxToConfig,this.charCodeToPatternIdxToConfig[t]=r.charCodeToPatternIdxToConfig,this.emptyGroups=c({},this.emptyGroups,r.emptyGroups),this.hasCustom=r.hasCustom||this.hasCustom,this.canModeBeOptimized[t]=r.canBeOptimized}})}),this.defaultMode=a.defaultMode,!r(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let e=p(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+e)}h(this.lexerDefinitionWarning,e=>{ti(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Ji?(this.chopInput=n,this.match=this.matchWithTest):(this.updateLastIndex=m,this.match=this.matchWithExec),s&&(this.handleModes=m),!1===this.trackStartLines&&(this.computeNewColumn=n),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=m),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let e=g(this.canModeBeOptimized,(e,t,r)=>(!1===t&&e.push(r),e),[]);if(i.ensureOptimizations&&!r(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Mi()}),this.TRACE_INIT("toFastProperties",()=>{ni(this)})})}tokenize(e,t=this.defaultMode){if(!r(this.lexerDefinitionErrors)){let e=p(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(t,r){let n,i,a,s,o,l,u,c,d,h,f,p,m,g,T,v,R=t,A=R.length,k=0,E=0,$=this.hasCustom?0:Math.floor(t.length/10),x=new Array($),C=[],I=this.trackStartLines?1:void 0,S=this.trackStartLines?1:void 0,N=va(this.emptyGroups),w=this.trackStartLines,L=this.config.lineTerminatorsPattern,b=0,O=[],P=[],_=[],D=[];function M(){return O}function F(e){let t=Na(e),r=P[t];return void 0===r?D:r}Object.freeze(D),e(M,"getPossiblePatternsSlow"),e(F,"getPossiblePatternsOptimized");let U=e(e=>{if(1===_.length&&void 0===e.tokenType.PUSH_MODE){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);C.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{_.pop();let e=y(_);O=this.patternIdxToConfig[e],P=this.charCodeToPatternIdxToConfig[e],b=O.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;v=P&&t?F:M}},"pop_mode");function G(e){_.push(e),P=this.charCodeToPatternIdxToConfig[e],O=this.patternIdxToConfig[e],b=O.length,b=O.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;v=P&&t?F:M}e(G,"push_mode"),G.call(this,r);let B,K=this.config.recoveryEnabled;for(;k<A;){l=null;let e=R.charCodeAt(k),r=v(e),y=r.length;for(n=0;n<y;n++){B=r[n];let i=B.pattern;u=null;let d=B.short;if(!1!==d?e===d&&(l=i):!0===B.isCustom?(T=i.exec(R,k,x,N),null!==T?(l=T[0],void 0!==T.payload&&(u=T.payload)):l=null):(this.updateLastIndex(i,k),l=this.match(i,t,k)),null!==l){if(o=B.longerAlt,void 0!==o){let e=o.length;for(a=0;a<e;a++){let e=O[o[a]],r=e.pattern;if(c=null,!0===e.isCustom?(T=r.exec(R,k,x,N),null!==T?(s=T[0],void 0!==T.payload&&(c=T.payload)):s=null):(this.updateLastIndex(r,k),s=this.match(r,t,k)),s&&s.length>l.length){l=s,u=c,B=e;break}}}break}}if(null!==l){if(d=l.length,h=B.group,void 0!==h&&(f=B.tokenTypeIdx,p=this.createTokenInstance(l,k,f,B.tokenType,I,S,d),this.handlePayload(p,u),!1===h?E=this.addToken(x,E,p):N[h].push(p)),t=this.chopInput(t,d),k+=d,S=this.computeNewColumn(S,d),!0===w&&!0===B.canLineTerminator){let e,t,r=0;L.lastIndex=0;do{e=L.test(l),!0===e&&(t=L.lastIndex-1,r++)}while(!0===e);0!==r&&(I+=r,S=d-t,this.updateTokenEndLineColumnLocation(p,h,t,r,I,S,d))}this.handleModes(B,U,G,p)}else{let e=k,r=I,n=S,a=!1===K;for(;!1===a&&k<A;)for(t=this.chopInput(t,1),k++,i=0;i<b;i++){let e=O[i],r=e.pattern,n=e.short;if(!1!==n?R.charCodeAt(k)===n&&(a=!0):!0===e.isCustom?a=null!==r.exec(R,k,x,N):(this.updateLastIndex(r,k),a=null!==r.exec(t)),!0===a)break}if(m=k-e,S=this.computeNewColumn(S,m),g=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(R,e,m,r,n),C.push({offset:e,line:r,column:n,length:m,message:g}),!1===K)break}}return this.hasCustom||(x.length=E),{tokens:x,groups:N,errors:C}}handleModes(e,t,r,n){if(!0===e.pop){let i=e.push;t(n),void 0!==i&&r.call(this,i)}else void 0!==e.push&&r.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,r,n,i,a,s){let o,l;void 0!==t&&(o=r===s-1,l=o?-1:0,1===n&&!0===o||(e.endLine=i+l,e.endColumn=a-1-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,n){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:n}}createStartOnlyToken(e,t,r,n,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:r,tokenType:n}}createFullToken(e,t,r,n,i,a,s){return{image:e,startOffset:t,endOffset:t+s-1,startLine:i,endLine:i,startColumn:a,endColumn:a+s-1,tokenTypeIdx:r,tokenType:n}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}matchWithTest(e,t,r){return!0===e.test(t)?t.substring(r,e.lastIndex):null}matchWithExec(e,t){let r=e.exec(t);return null!==r?r[0]:null}};function Xa(e){return Ja(e)?e.LABEL:e.name}function Ja(e){return $(e.LABEL)&&""!==e.LABEL}Ya.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.",Ya.NA=/NOT_APPLICABLE/,e(Xa,"tokenLabel"),e(Ja,"hasTokenLabel");var Za="categories",Qa="label",es="group",ts="push_mode",rs="pop_mode",ns="longer_alt",is="line_breaks",as="start_chars_hint";function ss(e){return os(e)}function os(e){let t=e.pattern,r={};if(r.name=e.name,C(t)||(r.PATTERN=t),v(e,"parent"))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";return v(e,Za)&&(r.CATEGORIES=e[Za]),_a([r]),v(e,Qa)&&(r.LABEL=e[Qa]),v(e,es)&&(r.GROUP=e[es]),v(e,rs)&&(r.POP_MODE=e[rs]),v(e,ts)&&(r.PUSH_MODE=e[ts]),v(e,ns)&&(r.LONGER_ALT=e[ns]),v(e,is)&&(r.LINE_BREAKS=e[is]),v(e,as)&&(r.START_CHARS_HINT=e[as]),r}e(ss,"createToken"),e(os,"createTokenInternal");var ls=ss({name:"EOF",pattern:Ya.NA});function us(e,t,r,n,i,a,s,o){return{image:t,startOffset:r,endOffset:n,startLine:i,endLine:a,startColumn:s,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function cs(e,t){return La(e,t)}_a([ls]),e(us,"createTokenInstance"),e(cs,"tokenMatcher");var ds={buildMismatchTokenMessage:({expected:e,actual:t,previous:r,ruleName:n})=>`Expecting ${Ja(e)?`--\x3e ${Xa(e)} <--`:`token of type --\x3e ${e.name} <--`} but found --\x3e '${t.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",s="\nbut found: '"+T(t).image+"'";if(n)return a+n+s;{let t=g(e,(e,t)=>e.concat(t),[]),r=p(t,e=>`[${p(e,e=>Xa(e)).join(", ")}]`),n=`one of these possible Token sequences:\n${p(r,(e,t)=>` ${t+1}. ${e}`).join("\n")}`;return a+n+s}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:n}){let i="Expecting: ",a="\nbut found: '"+T(t).image+"'";if(r)return i+r+a;{let t=`expecting at least one iteration which starts with one of these possible Token sequences::\n <${p(e,e=>`[${p(e,e=>Xa(e)).join(",")}]`).join(" ,")}>`;return i+t+a}}};Object.freeze(ds);var hs={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},fs={buildDuplicateFoundError(t,r){function n(e){return e instanceof gi?e.terminalType.name:e instanceof oi?e.nonTerminalName:""}e(n,"getExtraProductionArgument");let i=t.name,a=T(r),s=a.idx,o=Ei(a),l=n(a),u=`->${o}${s>0?s:""}<- ${l?`with argument: ->${l}<-`:""}\n appears more than once (${r.length} times) in the top level rule: ->${i}<-.\n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES\n `;return u=u.replace(/[ \t]+/g," "),u=u.replace(/\s\s+/g,"\n"),u},buildNamespaceConflictError:e=>`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){let t=p(e.prefixPath,e=>Xa(e)).join(", "),r=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\nin <OR${r}> 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=p(e.prefixPath,e=>Xa(e)).join(", "),r=0===e.alternation.idx?"":e.alternation.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in <OR${r}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return n+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",n},buildEmptyRepetitionError(e){let t=Ei(e.repetition);return 0!==e.repetition.idx&&(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=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){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} --\x3e ${p(e.leftRecursionPath,e=>e.name).concat([t]).join(" --\x3e ")}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof li?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function ps(e,t){let r=new gs(e,t);return r.resolveRefs(),r.errors}e(ps,"resolveGrammar");var ms,gs=class extends vi{static{e(this,"GastRefResolverVisitor")}constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){h(k(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:cl.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},ys=class extends $i{static{e(this,"AbstractNextPossibleTokensWalker")}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=d(this.path.ruleStack).reverse(),this.occurrenceStack=d(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let n=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,n)}}updateExpectedNext(){r(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},Ts=class extends ys{static{e(this,"NextAfterTokenWalker")}constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let e=t.concat(r),n=new ui({definition:e});this.possibleTokTypes=Ci(n),this.found=!0}}},vs=class extends $i{static{e(this,"AbstractNextTerminalAfterProductionWalker")}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}},Rs=class extends vs{static{e(this,"NextTerminalAfterManyWalker")}walkMany(e,t,r){if(e.idx===this.occurrence){let e=T(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof gi&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,r)}},As=class extends vs{static{e(this,"NextTerminalAfterManySepWalker")}walkManySep(e,t,r){if(e.idx===this.occurrence){let e=T(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof gi&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,r)}},ks=class extends vs{static{e(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){let e=T(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof gi&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,r)}},Es=class extends vs{static{e(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){let e=T(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof gi&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,r)}};function $s(t,n,i=[]){i=d(i);let a=[],s=0;function o(e){return e.concat(_(t,s+1))}function l(e){let t=$s(o(e),n,i);return a.concat(t)}for(e(o,"remainingPathWith"),e(l,"getAlternativesForProd");i.length<n&&s<t.length;){let e=t[s];if(e instanceof ui)return l(e.definition);if(e instanceof oi)return l(e.definition);if(e instanceof ci)a=l(e.definition);else{if(e instanceof di){return l(e.definition.concat([new fi({definition:e.definition})]))}if(e instanceof hi){return l([new ui({definition:e.definition}),new fi({definition:[new gi({terminalType:e.separator})].concat(e.definition)})])}if(e instanceof pi){let t=e.definition.concat([new fi({definition:[new gi({terminalType:e.separator})].concat(e.definition)})]);a=l(t)}else if(e instanceof fi){let t=e.definition.concat([new fi({definition:e.definition})]);a=l(t)}else{if(e instanceof mi)return h(e.definition,e=>{!1===r(e.definition)&&(a=l(e.definition))}),a;if(!(e instanceof gi))throw Error("non exhaustive match");i.push(e.terminalType)}}s++}return a.push({partialPath:i,suffixDef:_(t,s)}),a}function xs(e,t,n,i){let a="EXIT_NONE_TERMINAL",s=[a],o="EXIT_ALTERNATIVE",l=!1,u=t.length,c=u-i-1,h=[],f=[];for(f.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!r(f);){let e=f.pop();if(e===o){l&&y(f).idx<=c&&f.pop();continue}let i=e.def,p=e.idx,m=e.ruleStack,g=e.occurrenceStack;if(r(i))continue;let T=i[0];if(T===a){let e={idx:p,def:_(i),ruleStack:F(m),occurrenceStack:F(g)};f.push(e)}else if(T instanceof gi)if(p<u-1){let e=p+1;if(n(t[e],T.terminalType)){let t={idx:e,def:_(i),ruleStack:m,occurrenceStack:g};f.push(t)}}else{if(p!==u-1)throw Error("non exhaustive match");h.push({nextTokenType:T.terminalType,nextTokenOccurrence:T.idx,ruleStack:m,occurrenceStack:g}),l=!0}else if(T instanceof oi){let e=d(m);e.push(T.nonTerminalName);let t=d(g);t.push(T.idx);let r={idx:p,def:T.definition.concat(s,_(i)),ruleStack:e,occurrenceStack:t};f.push(r)}else if(T instanceof ci){let e={idx:p,def:_(i),ruleStack:m,occurrenceStack:g};f.push(e),f.push(o);let t={idx:p,def:T.definition.concat(_(i)),ruleStack:m,occurrenceStack:g};f.push(t)}else if(T instanceof di){let e=new fi({definition:T.definition,idx:T.idx}),t={idx:p,def:T.definition.concat([e],_(i)),ruleStack:m,occurrenceStack:g};f.push(t)}else if(T instanceof hi){let e=new gi({terminalType:T.separator}),t=new fi({definition:[e].concat(T.definition),idx:T.idx}),r={idx:p,def:T.definition.concat([t],_(i)),ruleStack:m,occurrenceStack:g};f.push(r)}else if(T instanceof pi){let e={idx:p,def:_(i),ruleStack:m,occurrenceStack:g};f.push(e),f.push(o);let t=new gi({terminalType:T.separator}),r=new fi({definition:[t].concat(T.definition),idx:T.idx}),n={idx:p,def:T.definition.concat([r],_(i)),ruleStack:m,occurrenceStack:g};f.push(n)}else if(T instanceof fi){let e={idx:p,def:_(i),ruleStack:m,occurrenceStack:g};f.push(e),f.push(o);let t=new fi({definition:T.definition,idx:T.idx}),r={idx:p,def:T.definition.concat([t],_(i)),ruleStack:m,occurrenceStack:g};f.push(r)}else if(T instanceof mi)for(let e=T.definition.length-1;e>=0;e--){let t={idx:p,def:T.definition[e].definition.concat(_(i)),ruleStack:m,occurrenceStack:g};f.push(t),f.push(o)}else if(T instanceof ui)f.push({idx:p,def:T.definition.concat(_(i)),ruleStack:m,occurrenceStack:g});else{if(!(T instanceof li))throw Error("non exhaustive match");f.push(Cs(T,p,m,g))}}return h}function Cs(e,t,r,n){let i=d(r);i.push(e.name);let a=d(n);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}function Is(e){if(e instanceof ci||"Option"===e)return ms.OPTION;if(e instanceof fi||"Repetition"===e)return ms.REPETITION;if(e instanceof di||"RepetitionMandatory"===e)return ms.REPETITION_MANDATORY;if(e instanceof hi||"RepetitionMandatoryWithSeparator"===e)return ms.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof pi||"RepetitionWithSeparator"===e)return ms.REPETITION_WITH_SEPARATOR;if(e instanceof mi||"Alternation"===e)return ms.ALTERNATION;throw Error("non exhaustive match")}function Ss(e){let{occurrence:t,rule:r,prodType:n,maxLookahead:i}=e,a=Is(n);return a===ms.ALTERNATION?Us(t,r,i):Gs(t,r,a,i)}function Ns(e,t,r,n,i,a){let s=Us(e,t,r);return a(s,n,Vs(s)?ba:La,i)}function ws(e,t,r,n,i,a){let s=Gs(e,t,i,r),o=Vs(s)?ba:La;return a(s[0],o,n)}function Ls(e,t,r,n){let i=e.length,a=S(e,e=>S(e,e=>1===e.length));if(t)return function(t){let n=p(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,s=n[t];if(void 0===s||!1!==s.call(this))e:for(let e=0;e<a;e++){let n=i[e],a=n.length;for(let e=0;e<a;e++){let t=this.LA(e+1);if(!1===r(t,n[e]))continue e}return t}}};if(a&&!n){let t=p(e,e=>A(e)),r=g(t,(e,t,r)=>(h(t,t=>{v(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=r),h(t.categoryMatches,t=>{v(e,t)||(e[t]=r)})}),e),{});return function(){let e=this.LA(1);return r[e.tokenTypeIdx]}}return function(){for(let t=0;t<i;t++){let n=e[t],i=n.length;e:for(let e=0;e<i;e++){let i=n[e],a=i.length;for(let e=0;e<a;e++){let t=this.LA(e+1);if(!1===r(t,i[e]))continue e}return t}}}}function bs(e,t,n){let i=S(e,e=>1===e.length),a=e.length;if(i&&!n){let t=A(e);if(1===t.length&&r(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=g(t,(e,t,r)=>(e[t.tokenTypeIdx]=!0,h(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){let t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){e:for(let r=0;r<a;r++){let n=e[r],i=n.length;for(let e=0;e<i;e++){let r=this.LA(e+1);if(!1===t(r,n[e]))continue e}return!0}return!1}}e($s,"possiblePathsFrom"),e(xs,"nextPossibleTokensAfter"),e(Cs,"expandTopLevelRule"),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"}(ms||(ms={})),e(Is,"getProdType"),e(Ss,"getLookaheadPaths"),e(Ns,"buildLookaheadFuncForOr"),e(ws,"buildLookaheadFuncForOptionalProd"),e(Ls,"buildAlternativesLookAheadFunc"),e(bs,"buildSingleAlternativeLookaheadFunction");var Os=class extends $i{static{e(this,"RestDefinitionFinderWalker")}constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,n){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=r.concat(n),!0)}walkOption(e,t,r){this.checkIsTarget(e,ms.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,ms.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,ms.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,ms.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,ms.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}},Ps=class extends vi{static{e(this,"InsideDefinitionFinderVisitor")}constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,ms.OPTION)}visitRepetition(e){this.checkIsTarget(e,ms.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,ms.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,ms.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,ms.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,ms.ALTERNATION)}};function _s(e){let t=new Array(e);for(let r=0;r<e;r++)t[r]=[];return t}function Ds(e){let t=[""];for(let r=0;r<e.length;r++){let n=e[r],i=[];for(let e=0;e<t.length;e++){let r=t[e];i.push(r+"_"+n.tokenTypeIdx);for(let e=0;e<n.categoryMatches.length;e++){let t="_"+n.categoryMatches[e];i.push(r+t)}}t=i}return t}function Ms(e,t,r){for(let n=0;n<e.length;n++){if(n===r)continue;let i=e[n];for(let e=0;e<t.length;e++){if(!0===i[t[e]])return!1}}return!0}function Fs(e,t){let n=p(e,e=>$s([e],1)),i=_s(n.length),a=p(n,e=>{let t={};return h(e,e=>{let r=Ds(e.partialPath);h(r,e=>{t[e]=!0})}),t}),s=n;for(let e=1;e<=t;e++){let n=s;s=_s(n.length);for(let o=0;o<n.length;o++){let l=n[o];for(let n=0;n<l.length;n++){let u=l[n].partialPath,c=l[n].suffixDef,d=Ds(u);if(Ms(a,d,o)||r(c)||u.length===t){let e=i[o];if(!1===Bs(e,u)){e.push(u);for(let e=0;e<d.length;e++){let t=d[e];a[o][t]=!0}}}else{let t=$s(c,e+1,u);s[o]=s[o].concat(t),h(t,e=>{let t=Ds(e.partialPath);h(t,e=>{a[o][e]=!0})})}}}}return i}function Us(e,t,r,n){let i=new Ps(e,ms.ALTERNATION,n);return t.accept(i),Fs(i.result,r)}function Gs(e,t,r,n){let i=new Ps(e,r);t.accept(i);let a=i.result,s=new Os(t,e,r).startWalking();return Fs([new ui({definition:a}),new ui({definition:s})],n)}function Bs(e,t){e:for(let r=0;r<e.length;r++){let n=e[r];if(n.length===t.length){for(let e=0;e<n.length;e++){let r=t[e],i=n[e];if(!1==(r===i||void 0!==i.categoryMatchesMap[r.tokenTypeIdx]))continue e}return!0}}return!1}function Ks(e,t){return e.length<t.length&&S(e,(e,r)=>{let n=t[r];return e===n||n.categoryMatchesMap[e.tokenTypeIdx]})}function Vs(e){return S(e,e=>S(e,e=>S(e,e=>r(e.categoryMatches))))}function js(e){let t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return p(t,e=>Object.assign({type:cl.CUSTOM_LOOKAHEAD_VALIDATION},e))}function Ws(e,t,r,n){let i=x(e,e=>Hs(e,r)),a=lo(e,t,r),s=x(e,e=>io(e,r)),o=x(e,t=>Xs(t,e,n,r));return i.concat(a,s,o)}function Hs(e,t){let r=new Ys;e.accept(r);let n=r.allProductions,i=P(n,zs),a=N(i,e=>e.length>1);return p(k(a),r=>{let n=T(r),i=t.buildDuplicateFoundError(e,r),a=Ei(n),s={message:i,type:cl.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:n.idx},o=qs(n);return o&&(s.parameter=o),s})}function zs(e){return`${Ei(e)}_#_${e.idx}_#_${qs(e)}`}function qs(e){return e instanceof gi?e.terminalType.name:e instanceof oi?e.nonTerminalName:""}e(_s,"initializeArrayOfArrays"),e(Ds,"pathToHashKeys"),e(Ms,"isUniquePrefixHash"),e(Fs,"lookAheadSequenceFromAlternatives"),e(Us,"getLookaheadPathsForOr"),e(Gs,"getLookaheadPathsForOptionalProd"),e(Bs,"containsPath"),e(Ks,"isStrictPrefixOfPath"),e(Vs,"areTokenCategoriesNotUsed"),e(js,"validateLookahead"),e(Ws,"validateGrammar"),e(Hs,"validateDuplicateProductions"),e(zs,"identifyProductionForDuplicates"),e(qs,"getExtraProductionArgument");var Ys=class extends vi{static{e(this,"OccurrenceValidationCollector")}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 Xs(e,t,r,n){let i=[];if(g(t,(t,r)=>r.name===e.name?t+1:t,0)>1){let t=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:t,type:cl.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function Js(e,t,r){let n,i=[];return D(t,e)||(n=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,i.push({message:n,type:cl.INVALID_RULE_OVERRIDE,ruleName:e})),i}function Zs(e,t,n,i=[]){let a=[],s=Qs(t.definition);if(r(s))return[];{let t=e.name;D(s,e)&&a.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:i}),type:cl.LEFT_RECURSION,ruleName:t});let r=O(s,i.concat([e])),o=x(r,t=>{let r=d(i);return r.push(t),Zs(e,t,n,r)});return a.concat(o)}}function Qs(e){let t=[];if(r(e))return t;let n=T(e);if(n instanceof oi)t.push(n.referencedRule);else if(n instanceof ui||n instanceof ci||n instanceof di||n instanceof hi||n instanceof pi||n instanceof fi)t=t.concat(Qs(n.definition));else if(n instanceof mi)t=A(p(n.definition,e=>Qs(e.definition)));else if(!(n instanceof gi))throw Error("non exhaustive match");let i=Ai(n),a=e.length>1;if(i&&a){let r=_(e);return t.concat(Qs(r))}return t}e(Xs,"validateRuleDoesNotAlreadyExist"),e(Js,"validateRuleIsOverridden"),e(Zs,"validateNoLeftRecursion"),e(Qs,"getFirstNoneTerminal");var eo=class extends vi{static{e(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function to(e,t){let n=new eo;e.accept(n);let i=n.alternations;return x(i,n=>{let i=F(n.definition);return x(i,(i,a)=>{let s=xs([i],[],La,1);return r(s)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:a}),type:cl.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:a+1}]:[]})})}function ro(e,t,r){let n=new eo;e.accept(n);let i=n.alternations;return i=E(i,e=>!0===e.ignoreAmbiguities),x(i,n=>{let i=n.idx,a=n.maxLookahead||t,s=Us(i,e,a,n),o=so(s,n,e,r),l=oo(s,n,e,r);return o.concat(l)})}e(to,"validateEmptyOrAlternative"),e(ro,"validateAmbiguousAlternationAlternatives");var no=class extends vi{static{e(this,"RepetitionCollector")}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 io(e,t){let r=new eo;e.accept(r);let n=r.alternations;return x(n,r=>r.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:r}),type:cl.TOO_MANY_ALTS,ruleName:e.name,occurrence:r.idx}]:[])}function ao(e,t,n){let i=[];return h(e,e=>{let a=new no;e.accept(a);let s=a.allProductions;h(s,a=>{let s=Is(a),o=a.maxLookahead||t,l=Gs(a.idx,e,s,o)[0];if(r(A(l))){let t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:a});i.push({message:t,type:cl.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),i}function so(e,t,r,n){let i=[],a=g(e,(r,n,a)=>(!0===t.definition[a].ignoreAmbiguities||h(n,n=>{let s=[a];h(e,(e,r)=>{a!==r&&Bs(e,n)&&!0!==t.definition[r].ignoreAmbiguities&&s.push(r)}),s.length>1&&!Bs(i,n)&&(i.push(n),r.push({alts:s,path:n}))}),r),[]);return p(a,e=>{let i=p(e.alts,e=>e+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:cl.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:e.alts}})}function oo(e,t,r,n){let i=g(e,(e,t,r)=>{let n=p(t,e=>({idx:r,path:e}));return e.concat(n)},[]);return R(x(i,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];let a=e.idx,s=e.path,o=w(i,e=>!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<a&&Ks(e.path,s));return p(o,e=>{let i=[e.idx+1,a+1],s=0===t.idx?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:cl.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:s,alternatives:i}})}))}function lo(e,t,r){let n=[],i=p(t,e=>e.name);return h(e,e=>{let t=e.name;if(D(i,t)){let i=r.buildNamespaceConflictError(e);n.push({message:i,type:cl.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),n}function uo(e){let t=I(e,{errMsgProvider:hs}),r={};return h(e.rules,e=>{r[e.name]=e}),ps(r,t.errMsgProvider)}function co(e){return Ws((e=I(e,{errMsgProvider:fs})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}e(io,"validateTooManyAlts"),e(ao,"validateSomeNonEmptyLookaheadPath"),e(so,"checkAlternativesAmbiguities"),e(oo,"checkPrefixAlternativesAmbiguities"),e(lo,"checkTerminalAndNoneTerminalsNameSpace"),e(uo,"resolveGrammar"),e(co,"validateGrammar");var ho="MismatchedTokenException",fo="NoViableAltException",po="EarlyExitException",mo="NotAllInputParsedException",go=[ho,fo,po,mo];function yo(e){return D(go,e.name)}Object.freeze(go),e(yo,"isRecognitionException");var To=class extends Error{static{e(this,"RecognitionException")}constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},vo=class extends To{static{e(this,"MismatchedTokenException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=ho}},Ro=class extends To{static{e(this,"NoViableAltException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=fo}},Ao=class extends To{static{e(this,"NotAllInputParsedException")}constructor(e,t){super(e,t),this.name=mo}},ko=class extends To{static{e(this,"EarlyExitException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=po}},Eo={},$o="InRuleRecoveryException",xo=class extends Error{static{e(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=$o}},Co=class{static{e(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=v(e,"recoveryEnabled")?e.recoveryEnabled:dl.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Io)}getTokenToInsert(e){let t=us(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(t,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),o=[],l=!1,u=this.LA(1),c=this.LA(1),d=e(()=>{let e=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:e,ruleName:this.getCurrRuleFullName()}),r=new vo(t,u,this.LA(0));r.resyncedTokens=F(o),this.SAVE_ERROR(r)},"generateErrorMessage");for(;!l;){if(this.tokenMatcher(c,i))return void d();if(n.call(this))return d(),void t.apply(this,r);this.tokenMatcher(c,a)?l=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,o))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(!1===r||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new xo("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||r(t))return!1;let n=this.LA(1);return void 0!==U(t,e=>this.tokenMatcher(n,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return D(r,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),r=2;for(;;){let n=U(e,e=>cs(t,e));if(void 0!==n)return n;t=this.LA(r),r++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return Eo;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return p(e,(r,n)=>0===n?Eo:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[n],inRule:this.shortRuleNameToFullName(e[n-1])})}flattenFollowSet(){let e=p(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e));return A(e)}getFollowSetFromFollowKey(e){if(e===Eo)return[ls];let t=e.ruleName+e.idxInCallingRule+wi+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,ls)||t.push(e),t}reSyncTo(e){let t=[],r=this.LA(1);for(;!1===this.tokenMatcher(r,e);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return F(t)}attemptInRepetitionRecovery(e,t,r,n,i,a,s){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:d(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return p(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function Io(e,t,r,n,i,a,s){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(void 0===l){let e=this.getCurrRuleFullName();l=new a(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence,d=l.isEndOfRule;1===this.RULE_STACK.length&&d&&void 0===u&&(u=ls,c=1),void 0!==u&&void 0!==c&&this.shouldInRepetitionRecoveryBeTried(u,c,s)&&this.tryInRepetitionRecovery(e,t,r,u)}function So(e,t,r){return r|t|e}e(Io,"attemptInRepetitionRecovery"),e(So,"getKeyForAutomaticLookahead");var No=class{static{e(this,"LLkLookaheadStrategy")}constructor(e){var t;this.maxLookahead=null!==(t=e?.maxLookahead)&&void 0!==t?t:dl.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if(r(t)){let r=this.validateEmptyOrAlternatives(e.rules),n=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...r,...n,...i]}return t}validateNoLeftRecursion(e){return x(e,e=>Zs(e,e,fs))}validateEmptyOrAlternatives(e){return x(e,e=>to(e,fs))}validateAmbiguousAlternationAlternatives(e,t){return x(e,e=>ro(e,t,fs))}validateSomeNonEmptyLookaheadPath(e,t){return ao(e,t,fs)}buildLookaheadForAlternation(e){return Ns(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Ls)}buildLookaheadForOptional(e){return ws(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Is(e.prodType),bs)}},wo=class{static{e(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=v(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:dl.dynamicTokensEnabled,this.maxLookahead=v(e,"maxLookahead")?e.maxLookahead:dl.maxLookahead,this.lookaheadStrategy=v(e,"lookaheadStrategy")?e.lookaheadStrategy:new No({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){h(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:r,option:n,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:s}=bo(e);h(t,t=>{let r=0===t.idx?"":t.idx;this.TRACE_INIT(`${Ei(t)}${r}`,()=>{let r=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),n=So(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(n,r)})}),h(r,t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,Ei(t))}),h(n,t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,Ei(t))}),h(i,t=>{this.computeLookaheadFunc(e,t.idx,1024,"RepetitionMandatory",t.maxLookahead,Ei(t))}),h(a,t=>{this.computeLookaheadFunc(e,t.idx,1536,"RepetitionMandatoryWithSeparator",t.maxLookahead,Ei(t))}),h(s,t=>{this.computeLookaheadFunc(e,t.idx,1280,"RepetitionWithSeparator",t.maxLookahead,Ei(t))})})})}computeLookaheadFunc(e,t,r,n,i,a){this.TRACE_INIT(`${a}${0===t?"":t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:n}),s=So(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(s,a)})}getKeyForAutomaticLookahead(e,t){return So(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},Lo=new class extends vi{static{e(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function bo(e){Lo.reset(),e.accept(Lo);let t=Lo.dslMethods;return Lo.reset(),t}function Oo(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function Po(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function _o(e,t,r){void 0===e.children[r]?e.children[r]=[t]:e.children[r].push(t)}function Do(e,t,r){void 0===e.children[t]?e.children[t]=[r]:e.children[t].push(r)}e(bo,"collectMethods"),e(Oo,"setNodeLocationOnlyOffset"),e(Po,"setNodeLocationFull"),e(_o,"addTerminalToCst"),e(Do,"addNoneTerminalToCst");var Mo;function Fo(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function Uo(e,t){let r=f(e),n=r.length;for(let i=0;i<n;i++){let n=e[r[i]],a=n.length;for(let e=0;e<a;e++){let r=n[e];void 0===r.tokenTypeIdx&&this[r.name](r.children,t)}}}function Go(n,i){let a=e(function(){},"derivedConstructor");Fo(a,n+"BaseSemantics");let s={visit:e(function(e,r){if(t(e)&&(e=e[0]),!C(e))return this[e.name](e.children,r)},"visit"),validateVisitor:e(function(){let e=Ko(this,i);if(!r(e)){let t=p(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join("\n\n").replace(/\n/g,"\n\t")}`)}},"validateVisitor")};return a.prototype=s,a.prototype.constructor=a,a._RULE_NAMES=i,a}function Bo(t,r,n){let i=e(function(){},"derivedConstructor");Fo(i,t+"BaseSemanticsWithDefaults");let a=Object.create(n.prototype);return h(r,e=>{a[e]=Uo}),i.prototype=a,i.prototype.constructor=i,i}function Ko(e,t){return Vo(e,t)}function Vo(e,t){let r=w(t,t=>!1===s(e[t])),n=p(r,t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:Mo.MISSING_METHOD,methodName:t}));return R(n)}e(Fo,"defineNameProp"),e(Uo,"defaultVisit"),e(Go,"createBaseSemanticVisitorConstructor"),e(Bo,"createBaseVisitorConstructorWithDefaults"),function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"}(Mo||(Mo={})),e(Ko,"validateVisitor"),e(Vo,"validateMissingCstMethods");var jo=class{static{e(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=v(e,"nodeLocationTracking")?e.nodeLocationTracking:dl.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Po,this.setNodeLocationFromNode=Po,this.cstPostRule=m,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=m,this.setNodeLocationFromNode=m,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Oo,this.setNodeLocationFromNode=Oo,this.cstPostRule=m,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=m,this.setNodeLocationFromNode=m,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`);this.setNodeLocationFromToken=m,this.setNodeLocationFromNode=m,this.cstPostRule=m,this.setInitialNodeLocation=m}else this.cstInvocationStateUpdate=m,this.cstFinallyStateUpdate=m,this.cstPostTerminal=m,this.cstPostNonTerminal=m,this.cstPostRule=m}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),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];_o(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];Do(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(C(this.baseCstVisitorConstructor)){let e=Go(this.className,f(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(C(this.baseCstVisitorWithDefaultsConstructor)){let e=Bo(this.className,f(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]}},Wo=class{static{e(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):ul}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?ul: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()}},Ho=class{static{e(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=hl){if(D(this.definedRulesNames,e)){let t={message:fs.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:cl.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let n=this.defineRule(e,t,r);return this[e]=n,n}OVERRIDE_RULE(e,t,r=hl){let n=Js(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(n);let i=this.defineRule(e,t,r);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let r=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(yo(e))return!1;throw e}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return yi(k(this.gastProductionsCache))}},zo=class{static{e(this,"RecognizerEngine")}initRecognizerEngine(e,n){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=ba,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},v(n,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.");if(t(e)){if(r(e))throw Error("A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.")}if(t(e))this.tokensMap=g(e,(e,t)=>(e[t.name]=t,e),{});else if(v(e,"modes")&&S(A(k(e.modes)),Wa)){let t=A(k(e.modes)),r=G(t);this.tokensMap=g(r,(e,t)=>(e[t.name]=t,e),{})}else{if(!a(e))throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=d(e)}this.tokensMap.EOF=ls;let i=v(e,"modes")?A(k(e.modes)):k(e),s=S(i,e=>r(e.categoryMatches));this.tokenMatcher=s?ba:La,_a(k(this.tokensMap))}defineRule(t,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${t}> 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 i,a=v(n,"resyncEnabled")?n.resyncEnabled:hl.resyncEnabled,s=v(n,"recoveryValueFunc")?n.recoveryValueFunc:hl.recoveryValueFunc,o=this.ruleShortNameIdx<<12;return this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=t,this.fullRuleNameToShort[t]=o,i=!0===this.outputCst?e(function(...e){try{this.ruleInvocationStateUpdate(o,t,this.subruleIdx),r.apply(this,e);let n=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(n),n}catch(e){return this.invokeRuleCatch(e,a,s)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):e(function(...e){try{return this.ruleInvocationStateUpdate(o,t,this.subruleIdx),r.apply(this,e)}catch(e){return this.invokeRuleCatch(e,a,s)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(i,{ruleName:t,originalGrammarAction:r})}invokeRuleCatch(e,t,r){let n=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(yo(e)){let t=e;if(i){let n=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(n)){if(t.resyncedTokens=this.reSyncTo(n),this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}return r(e)}if(this.outputCst){let e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}if(n)return this.moveToTerminatedState(),r(e);throw t}throw e}optionInternal(e,t){let r=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(t,r,n){let i,a=this.getLaFuncFromCache(n);if("function"!=typeof t){i=t.DEF;let r=t.GATE;if(void 0!==r){let t=a;a=e(()=>r.call(this)&&t.call(this),"lookAheadFunc")}}else i=t;if(!0===a.call(this))return i.call(this)}atLeastOneInternal(e,t){let r=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(t,r,n){let i,a=this.getLaFuncFromCache(n);if("function"!=typeof r){i=r.DEF;let t=r.GATE;if(void 0!==t){let r=a;a=e(()=>t.call(this)&&r.call(this),"lookAheadFunc")}}else i=r;if(!0!==a.call(this))throw this.raiseEarlyExitException(t,ms.REPETITION_MANDATORY,r.ERR_MSG);{let e=this.doSingleRepetition(i);for(;!0===a.call(this)&&!0===e;)e=this.doSingleRepetition(i)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[t,r],a,1024,t,ks)}atLeastOneSepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(t,r,n){let i=r.DEF,a=r.SEP;if(!0!==this.getLaFuncFromCache(n).call(this))throw this.raiseEarlyExitException(t,ms.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG);{i.call(this);let r=e(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;!0===this.tokenMatcher(this.LA(1),a);)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,a,r,i,Es],r,1536,t,Es)}}manyInternal(e,t){let r=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(t,r,n){let i,a=this.getLaFuncFromCache(n);if("function"!=typeof r){i=r.DEF;let t=r.GATE;if(void 0!==t){let r=a;a=e(()=>t.call(this)&&r.call(this),"lookaheadFunction")}}else i=r;let s=!0;for(;!0===a.call(this)&&!0===s;)s=this.doSingleRepetition(i);this.attemptInRepetitionRecovery(this.manyInternal,[t,r],a,768,t,Rs,s)}manySepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(t,r,n){let i=r.DEF,a=r.SEP;if(!0===this.getLaFuncFromCache(n).call(this)){i.call(this);let r=e(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;!0===this.tokenMatcher(this.LA(1),a);)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,a,r,i,As],r,1280,t,As)}}repetitionSepSecondInternal(e,t,r,n,i){for(;r();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,n,i],r,1536,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=t(e)?e:e.DEF,a=this.getLaFuncFromCache(n).call(this,i);if(void 0!==a)return i[a].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Ao(t,e))}}subruleInternal(e,t,r){let n;try{let i=void 0!==r?r.ARGS:void 0;return this.subruleIdx=t,n=e.apply(this,i),this.cstPostNonTerminal(n,void 0!==r&&void 0!==r.LABEL?r.LABEL:e.ruleName),n}catch(t){throw this.subruleInternalError(t,r,e.ruleName)}}subruleInternalError(e,t,r){throw yo(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let n;try{let t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),n=t):this.consumeInternalError(e,t,r)}catch(r){n=this.consumeInternalRecovery(e,t,r)}return this.cstPostTerminal(void 0!==r&&void 0!==r.LABEL?r.LABEL:e.name,n),n}consumeInternalError(e,t,r){let n,i=this.LA(0);throw n=void 0!==r&&r.ERR_MSG?r.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new vo(n,t,i))}consumeInternalRecovery(e,t,r){if(!this.recoveryEnabled||"MismatchedTokenException"!==r.name||this.isBackTracking())throw r;{let n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(e){throw e.name===$o?r:e}}}saveRecogState(){let e=this.errors,t=d(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ls)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},qo=class{static{e(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=v(e,"errorMessageProvider")?e.errorMessageProvider:dl.errorMessageProvider}SAVE_ERROR(e){if(yo(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:d(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return d(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){let n=this.getCurrRuleFullName(),i=Gs(e,this.getGAstProductions()[n],t,this.maxLookahead)[0],a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:a,previous:this.LA(0),customUserDescription:r,ruleName:n});throw this.SAVE_ERROR(new ko(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let r=this.getCurrRuleFullName(),n=Us(e,this.getGAstProductions()[r],this.maxLookahead),i=[];for(let e=1;e<=this.maxLookahead;e++)i.push(this.LA(e));let a=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:n,actual:i,previous:a,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ro(s,this.LA(1),a))}},Yo=class{static{e(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,t){let r=this.gastProductionsCache[e];if(C(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return xs([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=T(e.ruleStack),r=this.getGAstProductions()[t];return new Ts(r,e).startWalking()}},Xo={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Xo);var Jo=!0,Zo=Math.pow(2,8)-1,Qo=ss({name:"RECORDING_PHASE_TOKEN",pattern:Ya.NA});_a([Qo]);var el=us(Qo,"This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(el);var tl={name:"This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}},rl=class{static{e(this,"GastRecorder")}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,r){return this.consumeInternalRecord(t,e,r)},this[`SUBRULE${t}`]=function(t,r){return this.subruleInternalRecord(t,e,r)},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,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let t=0;t<10;t++){let r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return ul}topLevelRuleRecord(e,t){try{let r=new li({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(e){if(!0!==e.KNOWN_RECORDER_ERROR)try{e.message=e.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch{throw e}throw e}}optionInternalRecord(e,t){return nl.call(this,ci,e,t)}atLeastOneInternalRecord(e,t){nl.call(this,di,t,e)}atLeastOneSepFirstInternalRecord(e,t){nl.call(this,hi,t,e,Jo)}manyInternalRecord(e,t){nl.call(this,fi,t,e)}manySepFirstInternalRecord(e,t){nl.call(this,pi,t,e,Jo)}orInternalRecord(e,t){return il.call(this,e,t)}subruleInternalRecord(e,t,r){if(sl(t),!e||!1===v(e,"ruleName")){let r=new Error(`<SUBRULE${al(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=y(this.recordingProdStack),i=e.ruleName,a=new oi({idx:t,nonTerminalName:i,label:r?.LABEL,referencedRule:void 0});return n.definition.push(a),this.outputCst?tl:Xo}consumeInternalRecord(e,t,r){if(sl(t),!Ba(e)){let r=new Error(`<CONSUME${al(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=y(this.recordingProdStack),i=new gi({idx:t,terminalType:e,label:r?.LABEL});return n.definition.push(i),el}};function nl(e,t,r,n=!1){sl(r);let i=y(this.recordingProdStack),a=s(t)?t:t.DEF,o=new e({definition:[],idx:r});return n&&(o.separator=t.SEP),v(t,"MAX_LOOKAHEAD")&&(o.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(o),a.call(this),i.definition.push(o),this.recordingProdStack.pop(),Xo}function il(e,r){sl(r);let n=y(this.recordingProdStack),i=!1===t(e),a=!1===i?e:e.DEF,o=new mi({definition:[],idx:r,ignoreAmbiguities:i&&!0===e.IGNORE_AMBIGUITIES});v(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD);let l=B(a,e=>s(e.GATE));return o.hasPredicates=l,n.definition.push(o),h(a,e=>{let t=new ui({definition:[]});o.definition.push(t),v(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:v(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),Xo}function al(e){return 0===e?"":`${e}`}function sl(e){if(e<0||e>Zo){let t=new Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than ${Zo+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}e(nl,"recordProd"),e(il,"recordOrProd"),e(al,"getIdxSuffix"),e(sl,"assertMethodIdxIsValid");var ol=class{static{e(this,"PerformanceTracer")}initPerformanceTracer(e){if(v(e,"traceInitPerf")){let t=e.traceInitPerf,r="number"==typeof t;this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=dl.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0===this.traceInitPerf){this.traceInitIndent++;let r=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--\x3e <${e}>`);let{time:n,value:i}=ri(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}return t()}};function ll(e,t){t.forEach(t=>{let r=t.prototype;Object.getOwnPropertyNames(r).forEach(n=>{if("constructor"===n)return;let i=Object.getOwnPropertyDescriptor(r,n);i&&(i.get||i.set)?Object.defineProperty(e.prototype,n,i):e.prototype[n]=t.prototype[n]})})}e(ll,"applyMixins");var ul=us(ls,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(ul);var cl,dl=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:ds,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),hl=Object.freeze({recoveryValueFunc:e(()=>{},"recoveryValueFunc"),resyncEnabled:!0});function fl(e=void 0){return function(){return e}}!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"}(cl||(cl={})),e(fl,"EMPTY_ALT");var pl=class t{static{e(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let n=this.className;this.TRACE_INIT("toFastProps",()=>{ni(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),h(this.definedRulesNames,e=>{let t,r=this[e].originalGrammarAction;this.TRACE_INIT(`${e} Rule`,()=>{t=this.topLevelRuleRecord(e,r)}),this.gastProductionsCache[e]=t})}finally{this.disableRecording()}});let i=[];if(this.TRACE_INIT("Grammar Resolving",()=>{i=uo({rules:k(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(i)}),this.TRACE_INIT("Grammar Validations",()=>{if(r(i)&&!1===this.skipValidations){let e=co({rules:k(this.gastProductionsCache),tokenTypes:k(this.tokensMap),errMsgProvider:fs,grammarName:n}),t=js({lookaheadStrategy:this.lookaheadStrategy,rules:k(this.gastProductionsCache),tokenTypes:k(this.tokensMap),grammarName:n});this.definitionErrors=this.definitionErrors.concat(e,t)}}),r(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let e=bi(k(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:k(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(k(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!r(this.definitionErrors))throw e=p(this.definitionErrors,e=>e.message),new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;let r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),v(t,"ignoredIssues"))throw new Error("The <ignoredIssues> IParserConfig property has been deprecated.\n\tPlease use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.");this.skipValidations=v(t,"skipValidations")?t.skipValidations:dl.skipValidations}};pl.DEFER_DEFINITION_ERRORS_HANDLING=!1,ll(pl,[Co,wo,jo,Wo,zo,Ho,qo,Yo,rl,ol]);var ml=class extends pl{static{e(this,"EmbeddedActionsParser")}constructor(e,t=dl){let r=d(t);r.outputCst=!1,super(e,r)}};function gl(e,t,r){return`${e.name}_${t}_${r}`}e(gl,"buildATNKey");var yl=class{static{e(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},Tl=class extends yl{static{e(this,"AtomTransition")}constructor(e,t){super(e),this.tokenType=t}},vl=class extends yl{static{e(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},Rl=class extends yl{static{e(this,"RuleTransition")}constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}};function Al(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};kl(t,e);let r=e.length;for(let n=0;n<r;n++){let r=e[n],i=wl(t,r,r);void 0!==i&&Gl(t,r,i)}return t}function kl(e,t){let r=t.length;for(let n=0;n<r;n++){let r=t[n],i=Kl(e,r,void 0,{type:2}),a=Kl(e,r,void 0,{type:7});i.stop=a,e.ruleToStartState.set(r,i),e.ruleToStopState.set(r,a)}}function El(e,t,r){return r instanceof gi?Fl(e,t,r.terminalType,r):r instanceof oi?Ul(e,t,r):r instanceof mi?Sl(e,t,r):r instanceof ci?Nl(e,t,r):r instanceof fi?$l(e,t,r):r instanceof pi?xl(e,t,r):r instanceof di?Cl(e,t,r):r instanceof hi?Il(e,t,r):wl(e,t,r)}function $l(e,t,r){let n=Kl(e,t,r,{type:5});return Pl(e,n),bl(e,t,r,_l(e,t,n,r,wl(e,t,r)))}function xl(e,t,r){let n=Kl(e,t,r,{type:5});return Pl(e,n),bl(e,t,r,_l(e,t,n,r,wl(e,t,r)),Fl(e,t,r.separator,r))}function Cl(e,t,r){let n=Kl(e,t,r,{type:4});return Pl(e,n),Ll(e,t,r,_l(e,t,n,r,wl(e,t,r)))}function Il(e,t,r){let n=Kl(e,t,r,{type:4});return Pl(e,n),Ll(e,t,r,_l(e,t,n,r,wl(e,t,r)),Fl(e,t,r.separator,r))}function Sl(e,t,r){let n=Kl(e,t,r,{type:1});Pl(e,n);let i=p(r.definition,r=>El(e,t,r));return _l(e,t,n,r,...i)}function Nl(e,t,r){let n=Kl(e,t,r,{type:1});return Pl(e,n),Ol(e,t,r,_l(e,t,n,r,wl(e,t,r)))}function wl(e,t,r){let n=w(p(r.definition,r=>El(e,t,r)),e=>void 0!==e);return 1===n.length?n[0]:0===n.length?void 0:Ml(e,n)}function Ll(e,t,r,n,i){let a=n.left,s=n.right,o=Kl(e,t,r,{type:11});Pl(e,o);let l=Kl(e,t,r,{type:12});return a.loopback=o,l.loopback=o,e.decisionMap[gl(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=o,Bl(s,o),void 0===i?(Bl(o,a),Bl(o,l)):(Bl(o,l),Bl(o,i.left),Bl(i.right,a)),{left:a,right:l}}function bl(e,t,r,n,i){let a=n.left,s=n.right,o=Kl(e,t,r,{type:10});Pl(e,o);let l=Kl(e,t,r,{type:12}),u=Kl(e,t,r,{type:9});return o.loopback=u,l.loopback=u,Bl(o,a),Bl(o,l),Bl(s,u),void 0!==i?(Bl(u,l),Bl(u,i.left),Bl(i.right,a)):Bl(u,o),e.decisionMap[gl(t,i?"RepetitionWithSeparator":"Repetition",r.idx)]=o,{left:o,right:l}}function Ol(e,t,r,n){let i=n.left;return Bl(i,n.right),e.decisionMap[gl(t,"Option",r.idx)]=i,n}function Pl(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function _l(e,t,r,n,...i){let a=Kl(e,t,n,{type:8,start:r});r.end=a;for(let e of i)void 0!==e?(Bl(r,e.left),Bl(e.right,a)):Bl(r,a);let s={left:r,right:a};return e.decisionMap[gl(t,Dl(n),n.idx)]=r,s}function Dl(e){if(e instanceof mi)return"Alternation";if(e instanceof ci)return"Option";if(e instanceof fi)return"Repetition";if(e instanceof pi)return"RepetitionWithSeparator";if(e instanceof di)return"RepetitionMandatory";if(e instanceof hi)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Ml(e,t){let r=t.length;for(let n=0;n<r-1;n++){let r,i=t[n];1===i.left.transitions.length&&(r=i.left.transitions[0]);let a=r instanceof Rl,s=r,o=t[n+1].left;1===i.left.type&&1===i.right.type&&void 0!==r&&(a&&s.followState===i.right||r.target===i.right)?(a?s.followState=o:r.target=o,jl(e,i.right)):Bl(i.right,o)}let n=t[0],i=t[r-1];return{left:n.left,right:i.right}}function Fl(e,t,r,n){let i=Kl(e,t,n,{type:1}),a=Kl(e,t,n,{type:1});return Vl(i,new Tl(a,r)),{left:i,right:a}}function Ul(e,t,r){let n=r.referencedRule,i=e.ruleToStartState.get(n),a=Kl(e,t,r,{type:1}),s=Kl(e,t,r,{type:1});return Vl(a,new Rl(i,n,s)),{left:a,right:s}}function Gl(e,t,r){let n=e.ruleToStartState.get(t);Bl(n,r.left);let i=e.ruleToStopState.get(t);return Bl(r.right,i),{left:n,right:i}}function Bl(e,t){Vl(e,new vl(t))}function Kl(e,t,r,n){let i=Object.assign({atn:e,production:r,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},n);return e.states.push(i),i}function Vl(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function jl(e,t){e.states.splice(e.states.indexOf(t),1)}e(Al,"createATN"),e(kl,"createRuleStartAndStopATNStates"),e(El,"atom"),e($l,"repetition"),e(xl,"repetitionSep"),e(Cl,"repetitionMandatory"),e(Il,"repetitionMandatorySep"),e(Sl,"alternation"),e(Nl,"option"),e(wl,"block"),e(Ll,"plus"),e(bl,"star"),e(Ol,"optional"),e(Pl,"defineDecisionState"),e(_l,"makeAlts"),e(Dl,"getProdType"),e(Ml,"makeBlock"),e(Fl,"tokenRef"),e(Ul,"ruleRef"),e(Gl,"buildRuleHandle"),e(Bl,"epsilon"),e(Kl,"newState"),e(Vl,"addTransition"),e(jl,"removeState");var Wl={},Hl=class{static{e(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=zl(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return p(this.configs,e=>e.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}};function zl(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}function ql(e,t){let r={};return n=>{let i=n.toString(),a=r[i];return void 0!==a||(a={atnStartState:e,decision:t,states:{}},r[i]=a),a}}e(zl,"getATNConfigKey"),e(ql,"createDFACache");var Yl,Xl,Jl,Zl,Ql,eu,tu,ru,nu,iu,au,su,ou,lu,uu,cu,du,hu,fu,pu,mu,gu,yu,Tu,vu,Ru,Au,ku,Eu,$u,xu,Cu,Iu,Su,Nu,wu,Lu,bu,Ou,Pu,_u,Du,Mu,Fu,Uu,Gu,Bu,Ku,Vu,ju,Wu,Hu,zu,qu,Yu,Xu,Ju,Zu,Qu,ec,tc,rc,nc,ic,ac,sc,oc,lc,uc,cc,dc,hc,fc,pc,mc,gc,yc,Tc,vc,Rc=class{static{e(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let r=0;r<t;r++)e+=!0===this.predicates[r]?"1":"0";return e}},Ac=new Rc,kc=class extends No{static{e(this,"LLStarLookaheadStrategy")}constructor(e){var t;super(),this.logging=null!==(t=e?.logging)&&void 0!==t?t:e=>console.log(e)}initialize(e){this.atn=Al(e.rules),this.dfas=$c(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:r,hasPredicates:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=gl(r,"Alternation",t),l=this.atn.decisionMap[o].decision,u=p(Ss({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),e=>p(e,e=>e[0]));if(Ec(u,!1)&&!i){let e=g(u,(e,t,r)=>(h(t,t=>{t&&(e[t.tokenTypeIdx]=r,h(t.categoryMatches,t=>{e[t]=r}))}),e),{});return n?function(t){var r;let n=this.LA(1),i=e[n.tokenTypeIdx];if(void 0!==t&&void 0!==i){let e=null===(r=t[i])||void 0===r?void 0:r.GATE;if(void 0!==e&&!1===e.call(this))return}return i}:function(){let t=this.LA(1);return e[t.tokenTypeIdx]}}return n?function(e){let t=new Rc,r=void 0===e?0:e.length;for(let n=0;n<r;n++){let r=e?.[n].GATE;t.set(n,void 0===r||r.call(this))}let n=xc.call(this,a,l,t,s);return"number"==typeof n?n:void 0}:function(){let e=xc.call(this,a,l,Ac,s);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:t,rule:n,prodType:i,dynamicTokensEnabled:a}=e,s=this.dfas,o=this.logging,l=gl(n,i,t),u=this.atn.decisionMap[l].decision,c=p(Ss({maxLookahead:1,occurrence:t,prodType:i,rule:n}),e=>p(e,e=>e[0]));if(Ec(c)&&c[0][0]&&!a){let e=c[0],t=A(e);if(1===t.length&&r(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=g(t,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,h(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){let t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){let e=xc.call(this,s,u,Ac,o);return"object"!=typeof e&&0===e}}};function Ec(e,t=!0){let r=new Set;for(let n of e){let e=new Set;for(let i of n){if(void 0===i){if(t)break;return!1}let n=[i.tokenTypeIdx].concat(i.categoryMatches);for(let t of n)if(r.has(t)){if(!e.has(t))return!1}else r.add(t),e.add(t)}}return!0}function $c(e){let t=e.decisionStates.length,r=Array(t);for(let n=0;n<t;n++)r[n]=ql(e.decisionStates[n],n);return r}function xc(e,t,r,n){let i=e[t](r),a=i.start;if(void 0===a){a=Fc(i,Dc(Uc(i.atnStartState))),i.start=a}return Cc.apply(this,[i,a,r,n])}function Cc(e,t,r,n){let i=t,a=1,s=[],o=this.LA(a++);for(;;){let t=bc(i,o);if(void 0===t&&(t=Ic.apply(this,[e,i,o,a,r,n])),t===Wl)return Lc(s,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,s.push(o),o=this.LA(a++)}}function Ic(e,t,r,n,i,a){let s=Oc(t.configs,r,i);if(0===s.size)return Mc(e,t,r,Wl),Wl;let o=Dc(s),l=_c(s,i);if(void 0!==l)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(jc(s)){let t=L(s.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,Sc.apply(this,[e,n,s.alts,a])}return o=Mc(e,t,r,o),o}function Sc(e,t,r,n){let i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);let a=e.atnStartState;n(Nc({topLevelRule:a.rule,ambiguityIndices:r,production:a.production,prefixPath:i}))}function Nc(e){let t=p(e.prefixPath,e=>Xa(e)).join(", "),r=0===e.production.idx?"":e.production.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${wc(e.production)}${r}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return n+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",n}function wc(e){if(e instanceof oi)return"SUBRULE";if(e instanceof ci)return"OPTION";if(e instanceof mi)return"OR";if(e instanceof di)return"AT_LEAST_ONE";if(e instanceof hi)return"AT_LEAST_ONE_SEP";if(e instanceof pi)return"MANY_SEP";if(e instanceof fi)return"MANY";if(e instanceof gi)return"CONSUME";throw Error("non exhaustive match")}function Lc(e,t,r){let n=x(t.configs.elements,e=>e.state.transitions);return{actualToken:r,possibleTokenTypes:b(n.filter(e=>e instanceof Tl).map(e=>e.tokenType),e=>e.tokenTypeIdx),tokenPath:e}}function bc(e,t){return e.edges[t.tokenTypeIdx]}function Oc(e,t,r){let n,i=new Hl,a=[];for(let n of e.elements){if(!1===r.is(n.alt))continue;if(7===n.state.type){a.push(n);continue}let e=n.state.transitions.length;for(let r=0;r<e;r++){let e=Pc(n.state.transitions[r],t);void 0!==e&&i.add({state:e,alt:n.alt,stack:n.stack})}}if(0===a.length&&1===i.size&&(n=i),void 0===n){n=new Hl;for(let e of i.elements)Gc(e,n)}if(a.length>0&&!Kc(n))for(let e of a)n.add(e);return n}function Pc(e,t){if(e instanceof Tl&&cs(t,e.tokenType))return e.target}function _c(e,t){let r;for(let n of e.elements)if(!0===t.is(n.alt))if(void 0===r)r=n.alt;else if(r!==n.alt)return;return r}function Dc(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function Mc(e,t,r,n){return n=Fc(e,n),t.edges[r.tokenTypeIdx]=n,n}function Fc(e,t){if(t===Wl)return t;let r=t.configs.key,n=e.states[r];return void 0!==n?n:(t.configs.finalize(),e.states[r]=t,t)}function Uc(e){let t=new Hl,r=e.transitions.length;for(let n=0;n<r;n++){Gc({state:e.transitions[n].target,alt:n,stack:[]},t)}return t}function Gc(e,t){let r=e.state;if(7===r.type){if(e.stack.length>0){let r=[...e.stack];Gc({state:r.pop(),alt:e.alt,stack:r},t)}else t.add(e);return}r.epsilonOnlyTransitions||t.add(e);let n=r.transitions.length;for(let i=0;i<n;i++){let n=Bc(e,r.transitions[i]);void 0!==n&&Gc(n,t)}}function Bc(e,t){if(t instanceof vl)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof Rl){let r=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:r}}}function Kc(e){for(let t of e.elements)if(7===t.state.type)return!0;return!1}function Vc(e){for(let t of e.elements)if(7!==t.state.type)return!1;return!0}function jc(e){if(Vc(e))return!0;let t=Wc(e.elements);return Hc(t)&&!zc(t)}function Wc(e){let t=new Map;for(let r of e){let e=zl(r,!1),n=t.get(e);void 0===n&&(n={},t.set(e,n)),n[r.alt]=!0}return t}function Hc(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}function zc(e){for(let t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}e(Ec,"isLL1Sequence"),e($c,"initATNSimulator"),e(xc,"adaptivePredict"),e(Cc,"performLookahead"),e(Ic,"computeLookaheadTarget"),e(Sc,"reportLookaheadAmbiguity"),e(Nc,"buildAmbiguityError"),e(wc,"getProductionDslName"),e(Lc,"buildAdaptivePredictError"),e(bc,"getExistingTargetState"),e(Oc,"computeReachSet"),e(Pc,"getReachableTarget"),e(_c,"getUniqueAlt"),e(Dc,"newDFAState"),e(Mc,"addDFAEdge"),e(Fc,"addDFAState"),e(Uc,"computeStartState"),e(Gc,"closure"),e(Bc,"getEpsilonTarget"),e(Kc,"hasConfigInRuleStopState"),e(Vc,"allConfigsInRuleStopStates"),e(jc,"hasConflictTerminatingPrediction"),e(Wc,"getConflictingAltSets"),e(Hc,"hasConflictingAltSet"),e(zc,"hasStateAssociatedWithOneAlt"),function(t){function r(e){return"string"==typeof e}e(r,"is"),t.is=r}(Yl||(Yl={})),function(t){function r(e){return"string"==typeof e}e(r,"is"),t.is=r}(Xl||(Xl={})),function(t){function r(e){return"number"==typeof e&&t.MIN_VALUE<=e&&e<=t.MAX_VALUE}t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647,e(r,"is"),t.is=r}(Jl||(Jl={})),function(t){function r(e){return"number"==typeof e&&t.MIN_VALUE<=e&&e<=t.MAX_VALUE}t.MIN_VALUE=0,t.MAX_VALUE=2147483647,e(r,"is"),t.is=r}(Zl||(Zl={})),function(t){function r(e,t){return e===Number.MAX_VALUE&&(e=Zl.MAX_VALUE),t===Number.MAX_VALUE&&(t=Zl.MAX_VALUE),{line:e,character:t}}function n(e){let t=e;return qc.objectLiteral(t)&&qc.uinteger(t.line)&&qc.uinteger(t.character)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Ql||(Ql={})),function(t){function r(e,t,r,n){if(qc.uinteger(e)&&qc.uinteger(t)&&qc.uinteger(r)&&qc.uinteger(n))return{start:Ql.create(e,t),end:Ql.create(r,n)};if(Ql.is(e)&&Ql.is(t))return{start:e,end:t};throw new Error(`Range#create called with invalid arguments[${e}, ${t}, ${r}, ${n}]`)}function n(e){let t=e;return qc.objectLiteral(t)&&Ql.is(t.start)&&Ql.is(t.end)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(eu||(eu={})),function(t){function r(e,t){return{uri:e,range:t}}function n(e){let t=e;return qc.objectLiteral(t)&&eu.is(t.range)&&(qc.string(t.uri)||qc.undefined(t.uri))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(tu||(tu={})),function(t){function r(e,t,r,n){return{targetUri:e,targetRange:t,targetSelectionRange:r,originSelectionRange:n}}function n(e){let t=e;return qc.objectLiteral(t)&&eu.is(t.targetRange)&&qc.string(t.targetUri)&&eu.is(t.targetSelectionRange)&&(eu.is(t.originSelectionRange)||qc.undefined(t.originSelectionRange))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(ru||(ru={})),function(t){function r(e,t,r,n){return{red:e,green:t,blue:r,alpha:n}}function n(e){let t=e;return qc.objectLiteral(t)&&qc.numberRange(t.red,0,1)&&qc.numberRange(t.green,0,1)&&qc.numberRange(t.blue,0,1)&&qc.numberRange(t.alpha,0,1)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(nu||(nu={})),function(t){function r(e,t){return{range:e,color:t}}function n(e){let t=e;return qc.objectLiteral(t)&&eu.is(t.range)&&nu.is(t.color)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(iu||(iu={})),function(t){function r(e,t,r){return{label:e,textEdit:t,additionalTextEdits:r}}function n(e){let t=e;return qc.objectLiteral(t)&&qc.string(t.label)&&(qc.undefined(t.textEdit)||pu.is(t))&&(qc.undefined(t.additionalTextEdits)||qc.typedArray(t.additionalTextEdits,pu.is))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(au||(au={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(su||(su={})),function(t){function r(e,t,r,n,i,a){let s={startLine:e,endLine:t};return qc.defined(r)&&(s.startCharacter=r),qc.defined(n)&&(s.endCharacter=n),qc.defined(i)&&(s.kind=i),qc.defined(a)&&(s.collapsedText=a),s}function n(e){let t=e;return qc.objectLiteral(t)&&qc.uinteger(t.startLine)&&qc.uinteger(t.startLine)&&(qc.undefined(t.startCharacter)||qc.uinteger(t.startCharacter))&&(qc.undefined(t.endCharacter)||qc.uinteger(t.endCharacter))&&(qc.undefined(t.kind)||qc.string(t.kind))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(ou||(ou={})),function(t){function r(e,t){return{location:e,message:t}}function n(e){let t=e;return qc.defined(t)&&tu.is(t.location)&&qc.string(t.message)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(lu||(lu={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(uu||(uu={})),function(e){e.Unnecessary=1,e.Deprecated=2}(cu||(cu={})),function(t){function r(e){let t=e;return qc.objectLiteral(t)&&qc.string(t.href)}e(r,"is"),t.is=r}(du||(du={})),function(t){function r(e,t,r,n,i,a){let s={range:e,message:t};return qc.defined(r)&&(s.severity=r),qc.defined(n)&&(s.code=n),qc.defined(i)&&(s.source=i),qc.defined(a)&&(s.relatedInformation=a),s}function n(e){var t;let r=e;return qc.defined(r)&&eu.is(r.range)&&qc.string(r.message)&&(qc.number(r.severity)||qc.undefined(r.severity))&&(qc.integer(r.code)||qc.string(r.code)||qc.undefined(r.code))&&(qc.undefined(r.codeDescription)||qc.string(null===(t=r.codeDescription)||void 0===t?void 0:t.href))&&(qc.string(r.source)||qc.undefined(r.source))&&(qc.undefined(r.relatedInformation)||qc.typedArray(r.relatedInformation,lu.is))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(hu||(hu={})),function(t){function r(e,t,...r){let n={title:e,command:t};return qc.defined(r)&&r.length>0&&(n.arguments=r),n}function n(e){let t=e;return qc.defined(t)&&qc.string(t.title)&&qc.string(t.command)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(fu||(fu={})),function(t){function r(e,t){return{range:e,newText:t}}function n(e,t){return{range:{start:e,end:e},newText:t}}function i(e){return{range:e,newText:""}}function a(e){let t=e;return qc.objectLiteral(t)&&qc.string(t.newText)&&eu.is(t.range)}e(r,"replace"),t.replace=r,e(n,"insert"),t.insert=n,e(i,"del"),t.del=i,e(a,"is"),t.is=a}(pu||(pu={})),function(t){function r(e,t,r){let n={label:e};return void 0!==t&&(n.needsConfirmation=t),void 0!==r&&(n.description=r),n}function n(e){let t=e;return qc.objectLiteral(t)&&qc.string(t.label)&&(qc.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(qc.string(t.description)||void 0===t.description)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(mu||(mu={})),function(t){function r(e){let t=e;return qc.string(t)}e(r,"is"),t.is=r}(gu||(gu={})),function(t){function r(e,t,r){return{range:e,newText:t,annotationId:r}}function n(e,t,r){return{range:{start:e,end:e},newText:t,annotationId:r}}function i(e,t){return{range:e,newText:"",annotationId:t}}function a(e){let t=e;return pu.is(t)&&(mu.is(t.annotationId)||gu.is(t.annotationId))}e(r,"replace"),t.replace=r,e(n,"insert"),t.insert=n,e(i,"del"),t.del=i,e(a,"is"),t.is=a}(yu||(yu={})),function(t){function r(e,t){return{textDocument:e,edits:t}}function n(e){let t=e;return qc.defined(t)&&xu.is(t.textDocument)&&Array.isArray(t.edits)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Tu||(Tu={})),function(t){function r(e,t,r){let n={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n}function n(e){let t=e;return t&&"create"===t.kind&&qc.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||qc.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||qc.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||gu.is(t.annotationId))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(vu||(vu={})),function(t){function r(e,t,r,n){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==r&&(void 0!==r.overwrite||void 0!==r.ignoreIfExists)&&(i.options=r),void 0!==n&&(i.annotationId=n),i}function n(e){let t=e;return t&&"rename"===t.kind&&qc.string(t.oldUri)&&qc.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||qc.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||qc.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||gu.is(t.annotationId))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Ru||(Ru={})),function(t){function r(e,t,r){let n={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n}function n(e){let t=e;return t&&"delete"===t.kind&&qc.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||qc.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||qc.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||gu.is(t.annotationId))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Au||(Au={})),function(t){function r(e){let t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every(e=>qc.string(e.kind)?vu.is(e)||Ru.is(e)||Au.is(e):Tu.is(e)))}e(r,"is"),t.is=r}(ku||(ku={})),function(t){function r(e){return{uri:e}}function n(e){let t=e;return qc.defined(t)&&qc.string(t.uri)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Eu||(Eu={})),function(t){function r(e,t){return{uri:e,version:t}}function n(e){let t=e;return qc.defined(t)&&qc.string(t.uri)&&qc.integer(t.version)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}($u||($u={})),function(t){function r(e,t){return{uri:e,version:t}}function n(e){let t=e;return qc.defined(t)&&qc.string(t.uri)&&(null===t.version||qc.integer(t.version))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(xu||(xu={})),function(t){function r(e,t,r,n){return{uri:e,languageId:t,version:r,text:n}}function n(e){let t=e;return qc.defined(t)&&qc.string(t.uri)&&qc.string(t.languageId)&&qc.integer(t.version)&&qc.string(t.text)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Cu||(Cu={})),function(t){function r(e){let r=e;return r===t.PlainText||r===t.Markdown}t.PlainText="plaintext",t.Markdown="markdown",e(r,"is"),t.is=r}(Iu||(Iu={})),function(t){function r(e){let t=e;return qc.objectLiteral(e)&&Iu.is(t.kind)&&qc.string(t.value)}e(r,"is"),t.is=r}(Su||(Su={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(Nu||(Nu={})),function(e){e.PlainText=1,e.Snippet=2}(wu||(wu={})),(Lu||(Lu={})).Deprecated=1,function(t){function r(e,t,r){return{newText:e,insert:t,replace:r}}function n(e){let t=e;return t&&qc.string(t.newText)&&eu.is(t.insert)&&eu.is(t.replace)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(bu||(bu={})),function(e){e.asIs=1,e.adjustIndentation=2}(Ou||(Ou={})),function(t){function r(e){let t=e;return t&&(qc.string(t.detail)||void 0===t.detail)&&(qc.string(t.description)||void 0===t.description)}e(r,"is"),t.is=r}(Pu||(Pu={})),function(t){function r(e){return{label:e}}e(r,"create"),t.create=r}(_u||(_u={})),function(t){function r(e,t){return{items:e||[],isIncomplete:!!t}}e(r,"create"),t.create=r}(Du||(Du={})),function(t){function r(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}function n(e){let t=e;return qc.string(t)||qc.objectLiteral(t)&&qc.string(t.language)&&qc.string(t.value)}e(r,"fromPlainText"),t.fromPlainText=r,e(n,"is"),t.is=n}(Mu||(Mu={})),function(t){function r(e){let t=e;return!!t&&qc.objectLiteral(t)&&(Su.is(t.contents)||Mu.is(t.contents)||qc.typedArray(t.contents,Mu.is))&&(void 0===e.range||eu.is(e.range))}e(r,"is"),t.is=r}(Fu||(Fu={})),function(t){function r(e,t){return t?{label:e,documentation:t}:{label:e}}e(r,"create"),t.create=r}(Uu||(Uu={})),function(t){function r(e,t,...r){let n={label:e};return qc.defined(t)&&(n.documentation=t),qc.defined(r)?n.parameters=r:n.parameters=[],n}e(r,"create"),t.create=r}(Gu||(Gu={})),function(e){e.Text=1,e.Read=2,e.Write=3}(Bu||(Bu={})),function(t){function r(e,t){let r={range:e};return qc.number(t)&&(r.kind=t),r}e(r,"create"),t.create=r}(Ku||(Ku={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(Vu||(Vu={})),(ju||(ju={})).Deprecated=1,function(t){function r(e,t,r,n,i){let a={name:e,kind:t,location:{uri:n,range:r}};return i&&(a.containerName=i),a}e(r,"create"),t.create=r}(Wu||(Wu={})),function(t){function r(e,t,r,n){return void 0!==n?{name:e,kind:t,location:{uri:r,range:n}}:{name:e,kind:t,location:{uri:r}}}e(r,"create"),t.create=r}(Hu||(Hu={})),function(t){function r(e,t,r,n,i,a){let s={name:e,detail:t,kind:r,range:n,selectionRange:i};return void 0!==a&&(s.children=a),s}function n(e){let t=e;return t&&qc.string(t.name)&&qc.number(t.kind)&&eu.is(t.range)&&eu.is(t.selectionRange)&&(void 0===t.detail||qc.string(t.detail))&&(void 0===t.deprecated||qc.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(zu||(zu={})),function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"}(qu||(qu={})),function(e){e.Invoked=1,e.Automatic=2}(Yu||(Yu={})),function(t){function r(e,t,r){let n={diagnostics:e};return null!=t&&(n.only=t),null!=r&&(n.triggerKind=r),n}function n(e){let t=e;return qc.defined(t)&&qc.typedArray(t.diagnostics,hu.is)&&(void 0===t.only||qc.typedArray(t.only,qc.string))&&(void 0===t.triggerKind||t.triggerKind===Yu.Invoked||t.triggerKind===Yu.Automatic)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Xu||(Xu={})),function(t){function r(e,t,r){let n={title:e},i=!0;return"string"==typeof t?(i=!1,n.kind=t):fu.is(t)?n.command=t:n.edit=t,i&&void 0!==r&&(n.kind=r),n}function n(e){let t=e;return t&&qc.string(t.title)&&(void 0===t.diagnostics||qc.typedArray(t.diagnostics,hu.is))&&(void 0===t.kind||qc.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||fu.is(t.command))&&(void 0===t.isPreferred||qc.boolean(t.isPreferred))&&(void 0===t.edit||ku.is(t.edit))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Ju||(Ju={})),function(t){function r(e,t){let r={range:e};return qc.defined(t)&&(r.data=t),r}function n(e){let t=e;return qc.defined(t)&&eu.is(t.range)&&(qc.undefined(t.command)||fu.is(t.command))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Zu||(Zu={})),function(t){function r(e,t){return{tabSize:e,insertSpaces:t}}function n(e){let t=e;return qc.defined(t)&&qc.uinteger(t.tabSize)&&qc.boolean(t.insertSpaces)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(Qu||(Qu={})),function(t){function r(e,t,r){return{range:e,target:t,data:r}}function n(e){let t=e;return qc.defined(t)&&eu.is(t.range)&&(qc.undefined(t.target)||qc.string(t.target))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(ec||(ec={})),function(t){function r(e,t){return{range:e,parent:t}}function n(e){let r=e;return qc.objectLiteral(r)&&eu.is(r.range)&&(void 0===r.parent||t.is(r.parent))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(tc||(tc={})),function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"}(rc||(rc={})),function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"}(nc||(nc={})),function(t){function r(e){let t=e;return qc.objectLiteral(t)&&(void 0===t.resultId||"string"==typeof t.resultId)&&Array.isArray(t.data)&&(0===t.data.length||"number"==typeof t.data[0])}e(r,"is"),t.is=r}(ic||(ic={})),function(t){function r(e,t){return{range:e,text:t}}function n(e){let t=e;return null!=t&&eu.is(t.range)&&qc.string(t.text)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(ac||(ac={})),function(t){function r(e,t,r){return{range:e,variableName:t,caseSensitiveLookup:r}}function n(e){let t=e;return null!=t&&eu.is(t.range)&&qc.boolean(t.caseSensitiveLookup)&&(qc.string(t.variableName)||void 0===t.variableName)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(sc||(sc={})),function(t){function r(e,t){return{range:e,expression:t}}function n(e){let t=e;return null!=t&&eu.is(t.range)&&(qc.string(t.expression)||void 0===t.expression)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(oc||(oc={})),function(t){function r(e,t){return{frameId:e,stoppedLocation:t}}function n(e){let t=e;return qc.defined(t)&&eu.is(e.stoppedLocation)}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(lc||(lc={})),function(t){function r(e){return 1===e||2===e}t.Type=1,t.Parameter=2,e(r,"is"),t.is=r}(uc||(uc={})),function(t){function r(e){return{value:e}}function n(e){let t=e;return qc.objectLiteral(t)&&(void 0===t.tooltip||qc.string(t.tooltip)||Su.is(t.tooltip))&&(void 0===t.location||tu.is(t.location))&&(void 0===t.command||fu.is(t.command))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(cc||(cc={})),function(t){function r(e,t,r){let n={position:e,label:t};return void 0!==r&&(n.kind=r),n}function n(e){let t=e;return qc.objectLiteral(t)&&Ql.is(t.position)&&(qc.string(t.label)||qc.typedArray(t.label,cc.is))&&(void 0===t.kind||uc.is(t.kind))&&void 0===t.textEdits||qc.typedArray(t.textEdits,pu.is)&&(void 0===t.tooltip||qc.string(t.tooltip)||Su.is(t.tooltip))&&(void 0===t.paddingLeft||qc.boolean(t.paddingLeft))&&(void 0===t.paddingRight||qc.boolean(t.paddingRight))}e(r,"create"),t.create=r,e(n,"is"),t.is=n}(dc||(dc={})),function(t){function r(e){return{kind:"snippet",value:e}}e(r,"createSnippet"),t.createSnippet=r}(hc||(hc={})),function(t){function r(e,t,r,n){return{insertText:e,filterText:t,range:r,command:n}}e(r,"create"),t.create=r}(fc||(fc={})),function(t){function r(e){return{items:e}}e(r,"create"),t.create=r}(pc||(pc={})),function(e){e.Invoked=0,e.Automatic=1}(mc||(mc={})),function(t){function r(e,t){return{range:e,text:t}}e(r,"create"),t.create=r}(gc||(gc={})),function(t){function r(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e(r,"create"),t.create=r}(yc||(yc={})),function(t){function r(e){let t=e;return qc.objectLiteral(t)&&Xl.is(t.uri)&&qc.string(t.name)}e(r,"is"),t.is=r}(Tc||(Tc={})),function(t){function r(e,t,r,n){return new Yc(e,t,r,n)}function n(e){let t=e;return!!(qc.defined(t)&&qc.string(t.uri)&&(qc.undefined(t.languageId)||qc.string(t.languageId))&&qc.uinteger(t.lineCount)&&qc.func(t.getText)&&qc.func(t.positionAt)&&qc.func(t.offsetAt))}function i(e,t){let r=e.getText(),n=a(t,(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=r.length;for(let t=n.length-1;t>=0;t--){let a=n[t],s=e.offsetAt(a.range.start),o=e.offsetAt(a.range.end);if(!(o<=i))throw new Error("Overlapping edit");r=r.substring(0,s)+a.newText+r.substring(o,r.length),i=s}return r}function a(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),i=e.slice(r);a(n,t),a(i,t);let s=0,o=0,l=0;for(;s<n.length&&o<i.length;)t(n[s],i[o])<=0?e[l++]=n[s++]:e[l++]=i[o++];for(;s<n.length;)e[l++]=n[s++];for(;o<i.length;)e[l++]=i[o++];return e}e(r,"create"),t.create=r,e(n,"is"),t.is=n,e(i,"applyEdits"),t.applyEdits=i,e(a,"mergeSort")}(vc||(vc={}));var qc,Yc=class{static{e(this,"FullTextDocument")}constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,r=!0;for(let n=0;n<t.length;n++){r&&(e.push(n),r=!1);let i=t.charAt(n);r="\r"===i||"\n"===i,"\r"===i&&n+1<t.length&&"\n"===t.charAt(n+1)&&n++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return Ql.create(0,e);for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return Ql.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],n=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,n),r)}get lineCount(){return this.getLineOffsets().length}};!function(t){let r=Object.prototype.toString;function n(e){return typeof e<"u"}function i(e){return typeof e>"u"}function a(e){return!0===e||!1===e}function s(e){return"[object String]"===r.call(e)}function o(e){return"[object Number]"===r.call(e)}function l(e,t,n){return"[object Number]"===r.call(e)&&t<=e&&e<=n}function u(e){return"[object Number]"===r.call(e)&&-2147483648<=e&&e<=2147483647}function c(e){return"[object Number]"===r.call(e)&&0<=e&&e<=2147483647}function d(e){return"[object Function]"===r.call(e)}function h(e){return null!==e&&"object"==typeof e}function f(e,t){return Array.isArray(e)&&e.every(t)}e(n,"defined"),t.defined=n,e(i,"undefined"),t.undefined=i,e(a,"boolean"),t.boolean=a,e(s,"string"),t.string=s,e(o,"number"),t.number=o,e(l,"numberRange"),t.numberRange=l,e(u,"integer"),t.integer=u,e(c,"uinteger"),t.uinteger=c,e(d,"func"),t.func=d,e(h,"objectLiteral"),t.objectLiteral=h,e(f,"typedArray"),t.typedArray=f}(qc||(qc={}));var Xc=class{static{e(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){var e;return null!==(e=this.nodeStack[this.nodeStack.length-1])&&void 0!==e?e:this.rootNode}buildRootNode(e){return this.rootNode=new td(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new Qc;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let r=new Zc(e.startOffset,e.image.length,ge(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){let t=e.container;if(t){let r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){let t=[];for(let r of e){let e=new Zc(r.startOffset,r.image.length,ge(r),r.tokenType,!0);e.root=this.rootNode,t.push(e)}let r=this.current,n=!1;if(r.content.length>0)r.content.push(...t);else{for(;r.container;){let e=r.container.content.indexOf(r);if(e>0){r.container.content.splice(e,0,...t),n=!0;break}r=r.container}n||this.rootNode.content.unshift(...t)}}construct(e){let t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;let r=this.nodeStack.pop();0===r?.content.length&&this.removeNode(r)}},Jc=class{static{e(this,"AbstractCstNode")}get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;let r="string"==typeof(null===(e=this._astNode)||void 0===e?void 0:e.$type)?this._astNode:null===(t=this.container)||void 0===t?void 0:t.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}},Zc=class extends Jc{static{e(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,n,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=n,this._length=t,this._range=r}},Qc=class extends Jc{static{e(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new ed(this)}get children(){return this.content}get offset(){var e,t;return null!==(t=null===(e=this.firstNonHiddenNode)||void 0===e?void 0:e.offset)&&void 0!==t?t:0}get length(){return this.end-this.offset}get end(){var e,t;return null!==(t=null===(e=this.lastNonHiddenNode)||void 0===e?void 0:e.end)&&void 0!==t?t:0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(void 0===this._rangeCache){let{range:r}=e,{range:n}=t;this._rangeCache={start:r.start,end:n.end.line<r.start.line?r.start:n.end}}return this._rangeCache}return{start:Ql.create(0,0),end:Ql.create(0,0)}}get firstNonHiddenNode(){for(let e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},ed=class t extends Array{static{e(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(let t of e)t.container=this.parent}},td=class extends Qc{static{e(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}},rd=Symbol("Datatype");function nd(e){return e.$type===rd}e(nd,"isDataTypeNode");var id=e(e=>e.endsWith("")?e:e+"","withRuleSuffix"),ad=class{static{e(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition,r="production"===e.LanguageMetaData.mode;this.wrapper=new dd(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},sd=class extends ad{static{e(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Xc,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let r=this.computeRuleType(e),n=this.wrapper.DEFINE_RULE(id(e.name),this.startImplementation(r,t).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}computeRuleType(e){if(!e.fragment){if(Pn(e))return rd;return Fn(e)??e.name}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);let r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;let n=t.rule?this.allRules.get(t.rule):this.mainRule;if(!n)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");let i=n.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:i,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{let n,i=!this.isRecording()&&void 0!==e;if(i){let t={$type:e};this.stack.push(t),e===rd&&(t.value="")}try{n=t(r)}catch{n=void 0}return void 0===n&&i&&(n=this.construct()),n}}extractHiddenTokens(e){let t=this.lexerResult.hidden;if(!t.length)return[];let r=e.startOffset;for(let e=0;e<t.length;e++)if(t[e].startOffset>r)return t.splice(0,e);return t.splice(0,t.length)}consume(e,t,r){let n=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(n)){let e=this.extractHiddenTokens(n);this.nodeBuilder.addHiddenNodes(e);let t=this.nodeBuilder.buildLeafNode(n,r),{assignment:i,isCrossRef:a}=this.getAssignment(r),s=this.current;if(i){let e=ar(r)?n.image:this.converter.convert(n.image,t);this.assign(i.operator,i.feature,e,t,a)}else if(nd(s)){let e=n.image;ar(r)||(e=this.converter.convert(e,t).toString()),s.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,r,n,i){let a;!this.isRecording()&&!r&&(a=this.nodeBuilder.buildCompositeNode(n));let s=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(s,n,a)}performSubruleAssignment(e,t,r){let{assignment:n,isCrossRef:i}=this.getAssignment(t);if(n)this.assign(n.operator,n.feature,e,r,i);else if(!n){let t=this.current;if(nd(t))t.value+=e.toString();else if("object"==typeof e&&e){let r=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(r)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(t.feature&&t.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode);let n={$type:e};this.stack.push(n),this.assign(t.operator,t.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;let e=this.current;return Ir(e),this.nodeBuilder.construct(e),this.stack.pop(),nd(e)?this.converter.convert(e.value,e.$cstNode):(Fr(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){let t=Sr(e,Yt);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&Qt(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,r,n,i){let a,s=this.current;switch(a=i&&"string"==typeof r?this.linker.buildReference(s,t,n,r):r,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(let[r,n]of Object.entries(t)){let t=e[r];void 0===t?e[r]=n:Array.isArray(t)&&Array.isArray(n)&&(n.push(...t),e[r]=n)}let r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},od=class{static{e(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return ds.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return ds.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return ds.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return ds.buildEarlyExitMessage(e)}},ld=class extends od{static{e(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},ud=class extends ad{static{e(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let r=this.wrapper.DEFINE_RULE(id(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,n,i){this.before(n),this.wrapper.wrapSubrule(e,t,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}},cd={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new ld},dd=class extends ml{static{e(this,"ChevrotainWrapper")}constructor(e,t){let r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},cd),{lookaheadStrategy:r?new No({maxLookahead:t.maxLookahead}):new kc({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}};function hd(e,t,r){return fd({parser:t,tokens:r,ruleNames:new Map},e),t}function fd(e,t){let r=yn(t,!1),n=le(t.rules).filter(It).filter(e=>r.has(e));for(let t of n){let r=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(t,pd(r,t.definition))}}function pd(t,r,n=!1){let i;if(ar(r))i=$d(t,r);else if(Wt(r))i=md(t,r);else if(Yt(r))i=pd(t,r.terminal);else if(Qt(r))i=Ed(t,r);else if(dr(r))i=gd(t,r);else if(zt(r))i=vd(t,r);else if(vr(r))i=Rd(t,r);else if(nr(r))i=Ad(t,r);else{if(!tr(r))throw new Pe(r.$cstNode,`Unexpected element type: ${r.$type}`);{let n=t.consume++;i=e(()=>t.parser.consume(n,ls,r),"method")}}return xd(t,n?void 0:kd(r),i,r.cardinality)}function md(e,t){let r=Un(t);return()=>e.parser.action(r,t)}function gd(e,t){let r=t.rule.ref;if(It(r)){let n=e.subrule++,i=r.fragment,a=t.arguments.length>0?yd(r,t.arguments):()=>({});return s=>e.parser.subrule(n,Cd(e,r),i,t,a(s))}if(Mt(r)){let n=e.consume++,i=Sd(e,r.name);return()=>e.parser.consume(n,i,t)}if(!r)throw new Pe(t.$cstNode,`Undefined rule: ${t.rule.$refText}`);_e()}function yd(e,t){let r=t.map(e=>Td(e.value));return t=>{let n={};for(let i=0;i<r.length;i++){let a=e.parameters[i],s=r[i];n[a.name]=s(t)}return n}}function Td(e){if(ot(e)){let t=Td(e.left),r=Td(e.right);return e=>t(e)||r(e)}if(at(e)){let t=Td(e.left),r=Td(e.right);return e=>t(e)&&r(e)}if(vt(e)){let t=Td(e.value);return e=>!t(e)}if(xt(e)){let t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(nt(e)){let t=!!e.true;return()=>t}_e()}function vd(t,r){if(1===r.elements.length)return pd(t,r.elements[0]);{let n=[];for(let e of r.elements){let r={ALT:pd(t,e,!0)},i=kd(e);i&&(r.GATE=Td(i)),n.push(r)}let i=t.or++;return r=>t.parser.alternatives(i,n.map(t=>{let n={ALT:e(()=>t.ALT(r),"ALT")},i=t.GATE;return i&&(n.GATE=()=>i(r)),n}))}}function Rd(t,r){if(1===r.elements.length)return pd(t,r.elements[0]);let n=[];for(let e of r.elements){let r={ALT:pd(t,e,!0)},i=kd(e);i&&(r.GATE=Td(i)),n.push(r)}let i=t.or++,a=e((e,t)=>`uGroup_${e}_${t.getRuleStack().join("-")}`,"idFunc"),s=e(r=>t.parser.alternatives(i,n.map((n,s)=>{let o={ALT:e(()=>!0,"ALT")},l=t.parser;o.ALT=()=>{if(n.ALT(r),!l.isRecording()){let e=a(i,l);l.unorderedGroups.get(e)||l.unorderedGroups.set(e,[]);let t=l.unorderedGroups.get(e);typeof t?.[s]>"u"&&(t[s]=!0)}};let u=n.GATE;return o.GATE=u?()=>u(r):()=>{let e=l.unorderedGroups.get(a(i,l));return!e?.[s]},o})),"alternatives"),o=xd(t,kd(r),s,"*");return e=>{o(e),t.parser.isRecording()||t.parser.unorderedGroups.delete(a(i,t.parser))}}function Ad(e,t){let r=t.elements.map(t=>pd(e,t));return e=>r.forEach(t=>t(e))}function kd(e){if(nr(e))return e.guardCondition}function Ed(e,t,r=t.terminal){if(r){if(dr(r)&&It(r.rule.ref)){let n=r.rule.ref,i=e.subrule++;return r=>e.parser.subrule(i,Cd(e,n),!1,t,r)}if(dr(r)&&Mt(r.rule.ref)){let n=e.consume++,i=Sd(e,r.rule.ref.name);return()=>e.parser.consume(n,i,t)}if(ar(r)){let n=e.consume++,i=Sd(e,r.value);return()=>e.parser.consume(n,i,t)}throw new Error("Could not build cross reference parser")}{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);let r=Sn(t.type.ref),n=r?.terminal;if(!n)throw new Error("Could not find name assignment for type: "+Un(t.type.ref));return Ed(e,t,n)}}function $d(e,t){let r=e.consume++,n=e.tokens[t.value];if(!n)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,n,t)}function xd(t,r,n,i){let a=r&&Td(r);if(!i){if(a){let r=t.or++;return i=>t.parser.alternatives(r,[{ALT:e(()=>n(i),"ALT"),GATE:e(()=>a(i),"GATE")},{ALT:fl(),GATE:e(()=>!a(i),"GATE")}])}return n}if("*"===i){let r=t.many++;return i=>t.parser.many(r,{DEF:e(()=>n(i),"DEF"),GATE:a?()=>a(i):void 0})}if("+"===i){let r=t.many++;if(a){let i=t.or++;return s=>t.parser.alternatives(i,[{ALT:e(()=>t.parser.atLeastOne(r,{DEF:e(()=>n(s),"DEF")}),"ALT"),GATE:e(()=>a(s),"GATE")},{ALT:fl(),GATE:e(()=>!a(s),"GATE")}])}return i=>t.parser.atLeastOne(r,{DEF:e(()=>n(i),"DEF")})}if("?"===i){let r=t.optional++;return i=>t.parser.optional(r,{DEF:e(()=>n(i),"DEF"),GATE:a?()=>a(i):void 0})}_e()}function Cd(e,t){let r=Id(e,t),n=e.parser.getRule(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function Id(e,t){if(It(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let r=t,n=r.$container,i=t.$type;for(;!It(n);)(nr(n)||zt(n)||vr(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,e.ruleNames.set(t,i),i}}function Sd(e,t){let r=e.tokens[t];if(!r)throw new Error(`Token "${t}" not found."`);return r}function Nd(e){let t=e.Grammar,r=e.parser.Lexer,n=new ud(e);return hd(t,n,r.definition),n.finalize(),n}function wd(e){let t=Ld(e);return t.finalize(),t}function Ld(e){let t=e.Grammar,r=e.parser.Lexer;return hd(t,new sd(e),r.definition)}e(hd,"createParser"),e(fd,"buildRules"),e(pd,"buildElement"),e(md,"buildAction"),e(gd,"buildRuleCall"),e(yd,"buildRuleCallPredicate"),e(Td,"buildPredicate"),e(vd,"buildAlternatives"),e(Rd,"buildUnorderedGroup"),e(Ad,"buildGroup"),e(kd,"getGuardCondition"),e(Ed,"buildCrossReference"),e($d,"buildKeyword"),e(xd,"wrap"),e(Cd,"getRule"),e(Id,"getRuleName"),e(Sd,"getToken"),e(Nd,"createCompletionParser"),e(wd,"createLangiumParser"),e(Ld,"prepareLangiumParser");var bd,Od=class{static{e(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,t){let r=le(yn(e,!1)),n=this.buildTerminalTokens(r),i=this.buildKeywordTokens(r,n,t);return n.forEach(e=>{let t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&cn(t)?i.unshift(e):i.push(e)}),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Mt).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){let t=Vn(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,n={name:e.name,PATTERN:r};return"function"==typeof r&&(n.LINE_BREAKS=!0),e.hidden&&(n.GROUP=cn(t)?Ya.SKIPPED:"hidden"),n}requiresCustomPattern(e){return!(!e.flags.includes("u")&&!e.flags.includes("s"))||!(!e.source.includes("?<=")&&!e.source.includes("?<!"))}regexPatternFunction(e){let t=new RegExp(e,e.flags+"y");return(e,r)=>(t.lastIndex=r,t.exec(e))}buildKeywordTokens(e,t,r){return e.filter(It).flatMap(e=>Or(e).filter(ar)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!!r?.caseInsensitive))}buildKeywordToken(e,t,r){let n=this.buildKeywordPattern(e,r),i={name:e.value,PATTERN:n,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof n&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?new RegExp(hn(e.value)):e.value}findLongerAlt(e,t){return t.reduce((t,r)=>{let n=r?.PATTERN;return n?.source&&fn("^"+n.source+"$",e.value)&&t.push(r),t},[])}},Pd=class{static{e(this,"DefaultValueConverter")}convert(e,t){let r=t.grammarSource;if(Qt(r)&&(r=vn(r)),dr(r)){let n=r.rule.ref;if(!n)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(n,e,t)}return e}runConverter(e,t,r){var n;switch(e.name.toUpperCase()){case"INT":return bd.convertInt(t);case"STRING":return bd.convertString(t);case"ID":return bd.convertID(t)}switch(null===(n=Kn(e))||void 0===n?void 0:n.toLowerCase()){case"number":return bd.convertNumber(t);case"boolean":return bd.convertBoolean(t);case"bigint":return bd.convertBigint(t);case"date":return bd.convertDate(t);default:return t}}};!function(t){function r(e){let t="";for(let r=1;r<e.length-1;r++){let i=e.charAt(r);if("\\"===i){t+=n(e.charAt(++r))}else t+=i}return t}function n(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"0":return"\0";default:return e}}function i(e){return"^"===e.charAt(0)?e.substring(1):e}function a(e){return parseInt(e)}function s(e){return BigInt(e)}function o(e){return new Date(e)}function l(e){return Number(e)}function u(e){return"true"===e.toLowerCase()}e(r,"convertString"),t.convertString=r,e(n,"convertEscapeCharacter"),e(i,"convertID"),t.convertID=i,e(a,"convertInt"),t.convertInt=a,e(s,"convertBigint"),t.convertBigint=s,e(o,"convertDate"),t.convertDate=o,e(l,"convertNumber"),t.convertNumber=l,e(u,"convertBoolean"),t.convertBoolean=u}(bd||(bd={}));var _d={};function Dd(){return new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)})}o(_d,l(H())),e(Dd,"delayNextTick");var Md=0,Fd=10;function Ud(){return Md=performance.now(),new _d.CancellationTokenSource}function Gd(e){Fd=e}e(Ud,"startCancelableOperation"),e(Gd,"setInterruptionPeriod");var Bd=Symbol("OperationCancelled");function Kd(e){return e===Bd}async function Vd(e){if(e===_d.CancellationToken.None)return;let t=performance.now();if(t-Md>=Fd&&(Md=t,await Dd(),Md=performance.now()),e.isCancellationRequested)throw Bd}e(Kd,"isOperationCancelled"),e(Vd,"interruptAndCheck");var jd,Wd,Hd=class{static{e(this,"Deferred")}constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}},zd=class t{static{e(this,"FullTextDocument")}constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,r){for(let r of e)if(t.isIncremental(r)){let e=Jd(r.range),t=this.offsetAt(e.start),n=this.offsetAt(e.end);this._content=this._content.substring(0,t)+r.text+this._content.substring(n,this._content.length);let i=Math.max(e.start.line,0),a=Math.max(e.end.line,0),s=this._lineOffsets,o=Yd(r.text,!1,t);if(a-i===o.length)for(let e=0,t=o.length;e<t;e++)s[e+i+1]=o[e];else o.length<1e4?s.splice(i+1,a-i,...o):this._lineOffsets=s=s.slice(0,i+1).concat(o,s.slice(a+1));let l=r.text.length-(n-t);if(0!==l)for(let e=i+1+o.length,t=s.length;e<t;e++)s[e]=s[e]+l}else{if(!t.isFull(r))throw new Error("Unknown change event received");this._content=r.text,this._lineOffsets=void 0}this._version=r}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=Yd(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return{line:0,character:e};for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return{line:i,character:(e=this.ensureBeforeEOL(e,t[i]))-t[i]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line];if(e.character<=0)return r;let n=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(r+e.character,n);return this.ensureBeforeEOL(i,r)}ensureBeforeEOL(e,t){for(;e>t&&Xd(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let t=e;return null!=t&&"string"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"==typeof t.rangeLength)}static isFull(e){let t=e;return null!=t&&"string"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength}};function qd(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),i=e.slice(r);qd(n,t),qd(i,t);let a=0,s=0,o=0;for(;a<n.length&&s<i.length;)t(n[a],i[s])<=0?e[o++]=n[a++]:e[o++]=i[s++];for(;a<n.length;)e[o++]=n[a++];for(;s<i.length;)e[o++]=i[s++];return e}function Yd(e,t,r=0){let n=t?[r]:[];for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);Xd(i)&&(13===i&&t+1<e.length&&10===e.charCodeAt(t+1)&&t++,n.push(r+t+1))}return n}function Xd(e){return 13===e||10===e}function Jd(e){let t=e.start,r=e.end;return t.line>r.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function Zd(e){let t=Jd(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(t){function r(e,t,r,n){return new zd(e,t,r,n)}function n(e,t,r){if(e instanceof zd)return e.update(t,r),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")}function i(e,t){let r=e.getText(),n=qd(t.map(Zd),(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=0,a=[];for(let t of n){let n=e.offsetAt(t.range.start);if(n<i)throw new Error("Overlapping edit");n>i&&a.push(r.substring(i,n)),t.newText.length&&a.push(t.newText),i=e.offsetAt(t.range.end)}return a.push(r.substr(i)),a.join("")}e(r,"create"),t.create=r,e(n,"update"),t.update=n,e(i,"applyEdits"),t.applyEdits=i}(jd||(jd={})),e(qd,"mergeSort"),e(Yd,"computeLineOffsets"),e(Xd,"isEOL"),e(Jd,"getWellformedRange"),e(Zd,"getWellformedEdit"),(()=>{var t={470:t=>{function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var r,n="",i=0,a=-1,s=0,o=0;o<=e.length;++o){if(o<e.length)r=e.charCodeAt(o);else{if(47===r)break;r=47}if(47===r){if(a!==o-1&&1!==s)if(a!==o-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=o,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=o,s=0;continue}t&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+e.slice(a+1,o):n=e.slice(a+1,o),i=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return n}e(r,"e"),e(n,"r");var i={resolve:e(function(){for(var e,t="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var s;a>=0?s=arguments[a]:(void 0===e&&(e=process.cwd()),s=e),r(s),0!==s.length&&(t=s+"/"+t,i=47===s.charCodeAt(0))}return t=n(t,!i),i?t.length>0?"/"+t:"/":t.length>0?t:"."},"resolve"),normalize:e(function(e){if(r(e),0===e.length)return".";var t=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!t)).length||t||(e="."),e.length>0&&i&&(e+="/"),t?"/"+e:e},"normalize"),isAbsolute:e(function(e){return r(e),e.length>0&&47===e.charCodeAt(0)},"isAbsolute"),join:e(function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=arguments[t];r(n),n.length>0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":i.normalize(e)},"join"),relative:e(function(e,t){if(r(e),r(t),e===t||(e=i.resolve(e))===(t=i.resolve(t)))return"";for(var n=1;n<e.length&&47===e.charCodeAt(n);++n);for(var a=e.length,s=a-n,o=1;o<t.length&&47===t.charCodeAt(o);++o);for(var l=t.length-o,u=s<l?s:l,c=-1,d=0;d<=u;++d){if(d===u){if(l>u){if(47===t.charCodeAt(o+d))return t.slice(o+d+1);if(0===d)return t.slice(o+d)}else s>u&&(47===e.charCodeAt(n+d)?c=d:0===d&&(c=0));break}var h=e.charCodeAt(n+d);if(h!==t.charCodeAt(o+d))break;47===h&&(c=d)}var f="";for(d=n+c+1;d<=a;++d)d!==a&&47!==e.charCodeAt(d)||(0===f.length?f+="..":f+="/..");return f.length>0?f+t.slice(o+c):(o+=c,47===t.charCodeAt(o)&&++o,t.slice(o))},"relative"),_makeLong:e(function(e){return e},"_makeLong"),dirname:e(function(e){if(r(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,i=-1,a=!0,s=e.length-1;s>=1;--s)if(47===(t=e.charCodeAt(s))){if(!a){i=s;break}}else a=!1;return-1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},"dirname"),basename:e(function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');r(e);var n,i=0,a=-1,s=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var o=t.length-1,l=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!s){i=n+1;break}}else-1===l&&(s=!1,l=n+1),o>=0&&(u===t.charCodeAt(o)?-1==--o&&(a=n):(o=-1,a=l))}return i===a?a=l:-1===a&&(a=e.length),e.slice(i,a)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){i=n+1;break}}else-1===a&&(s=!1,a=n+1);return-1===a?"":e.slice(i,a)},"basename"),extname:e(function(e){r(e);for(var t=-1,n=0,i=-1,a=!0,s=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(a=!1,i=o+1),46===l?-1===t?t=o:1!==s&&(s=1):-1!==t&&(s=-1);else if(!a){n=o+1;break}}return-1===t||-1===i||0===s||1===s&&t===i-1&&t===n+1?"":e.slice(t,i)},"extname"),format:e(function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+"/"+n:n}(0,e)},"format"),parse:e(function(e){r(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,i=e.charCodeAt(0),a=47===i;a?(t.root="/",n=1):n=0;for(var s=-1,o=0,l=-1,u=!0,c=e.length-1,d=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===l&&(u=!1,l=c+1),46===i?-1===s?s=c:1!==d&&(d=1):-1!==s&&(d=-1);else if(!u){o=c+1;break}return-1===s||-1===l||0===d||1===d&&s===l-1&&s===o+1?-1!==l&&(t.base=t.name=0===o&&a?e.slice(1,l):e.slice(o,l)):(0===o&&a?(t.name=e.slice(1,s),t.base=e.slice(1,l)):(t.name=e.slice(o,s),t.base=e.slice(o,l)),t.ext=e.slice(s,l)),o>0?t.dir=e.slice(0,o-1):a&&(t.dir="/"),t},"parse"),sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,t.exports=i}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}e(n,"r"),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{let t;n.r(i),n.d(i,{URI:e(()=>d,"URI"),Utils:e(()=>x,"Utils")}),"object"==typeof process?t="win32"===process.platform:"object"==typeof navigator&&(t=navigator.userAgent.indexOf("Windows")>=0);let r=/^\w[\w\d+.-]*$/,a=/^\//,s=/^\/\//;function o(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!r.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!a.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}e(o,"s");let l="",u="/",c=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{static{e(this,"f")}static isUri(e){return e instanceof d||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,r,n,i,a=!1){var s,c;"object"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=(c=a,(s=e)||c?s:"file"),this.authority=t||l,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,r||l),this.query=n||l,this.fragment=i||l,o(this,a))}get fsPath(){return y(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:r,path:n,query:i,fragment:a}=e;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===r?r=this.authority:null===r&&(r=l),void 0===n?n=this.path:null===n&&(n=l),void 0===i?i=this.query:null===i&&(i=l),void 0===a?a=this.fragment:null===a&&(a=l),t===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&a===this.fragment?this:new f(t,r,n,i,a)}static parse(e,t=!1){let r=c.exec(e);return r?new f(r[2]||l,A(r[4]||l),A(r[5]||l),A(r[7]||l),A(r[9]||l),t):new f(l,l,l,l,l)}static file(e){let r=l;if(t&&(e=e.replace(/\\/g,u)),e[0]===u&&e[1]===u){let t=e.indexOf(u,2);-1===t?(r=e.substring(2),e=u):(r=e.substring(2,t),e=e.substring(t)||u)}return new f("file",r,e,l,l)}static from(e){let t=new f(e.scheme,e.authority,e.path,e.query,e.fragment);return o(t,!0),t}toString(e=!1){return T(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof d)return e;{let t=new f(e);return t._formatted=e.external,t._fsPath=e._sep===h?e.fsPath:null,t}}return e}}let h=t?1:void 0;class f extends d{static{e(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=y(this,!1)),this._fsPath}toString(e=!1){return e?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}let p={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function m(e,t,r){let n,i=-1;for(let a=0;a<e.length;a++){let s=e.charCodeAt(a);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),void 0!==n&&(n+=e.charAt(a));else{void 0===n&&(n=e.substr(0,a));let t=p[s];void 0!==t?(-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),n+=t):-1===i&&(i=a)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function g(e){let t;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);35===n||63===n?(void 0===t&&(t=e.substr(0,r)),t+=p[n]):void 0!==t&&(t+=e[r])}return void 0!==t?t:e}function y(e,r){let n;return n=e.authority&&e.path.length>1&&"file"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?r?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,t&&(n=n.replace(/\//g,"\\")),n}function T(e,t){let r=t?g:m,n="",{scheme:i,authority:a,path:s,query:o,fragment:l}=e;if(i&&(n+=i,n+=":"),(a||"file"===i)&&(n+=u,n+=u),a){let e=a.indexOf("@");if(-1!==e){let t=a.substr(0,e);a=a.substr(e+1),e=t.lastIndexOf(":"),-1===e?n+=r(t,!1,!1):(n+=r(t.substr(0,e),!1,!1),n+=":",n+=r(t.substr(e+1),!1,!0)),n+="@"}a=a.toLowerCase(),e=a.lastIndexOf(":"),-1===e?n+=r(a,!1,!0):(n+=r(a.substr(0,e),!1,!0),n+=a.substr(e))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){let e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){let e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return o&&(n+="?",n+=r(o,!1,!1)),l&&(n+="#",n+=t?l:m(l,!1,!1)),n}function v(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+v(e.substr(3)):e}}e(m,"d"),e(g,"p"),e(y,"m"),e(T,"y"),e(v,"v");let R=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function A(e){return e.match(R)?e.replace(R,e=>v(e)):e}e(A,"C");var k=n(470);let E=k.posix||k,$="/";var x,C;(C=x||(x={})).joinPath=function(e,...t){return e.with({path:E.join(e.path,...t)})},C.resolvePath=function(e,...t){let r=e.path,n=!1;r[0]!==$&&(r=$+r,n=!0);let i=E.resolve(r,...t);return n&&i[0]===$&&!e.authority&&(i=i.substring(1)),e.with({path:i})},C.dirname=function(e){if(0===e.path.length||e.path===$)return e;let t=E.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},C.basename=function(e){return E.basename(e.path)},C.extname=function(e){return E.extname(e.path)}})(),Wd=i})();var Qd,eh,{URI:th,Utils:rh}=Wd;!function(t){function r(e,t){return e?.toString()===t?.toString()}function n(e,t){let r="string"==typeof e?e:e.path,n="string"==typeof t?t:t.path,i=r.split("/").filter(e=>e.length>0),a=n.split("/").filter(e=>e.length>0),s=0;for(;s<i.length&&i[s]===a[s];s++);return"../".repeat(i.length-s)+a.slice(s).join("/")}function i(e){return th.parse(e.toString()).toString()}t.basename=rh.basename,t.dirname=rh.dirname,t.extname=rh.extname,t.joinPath=rh.joinPath,t.resolvePath=rh.resolvePath,e(r,"equals"),t.equals=r,e(n,"relative"),t.relative=n,e(i,"normalize"),t.normalize=i}(Qd||(Qd={})),function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"}(eh||(eh={}));var nh=class{static{e(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=_d.CancellationToken.None){let r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??th.parse(e.uri),_d.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return _d.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if("string"==typeof t){let n=this.parse(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}if("$model"in t){let r={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(r,e)}{let n=this.parse(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}async createAsync(e,t,r){if("string"==typeof t){let n=await this.parseAsync(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}{let n=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}createLangiumDocument(e,t,r,n){let i;if(r)i={parseResult:e,uri:t,state:eh.Parsed,references:[],textDocument:r};else{let r=this.createTextDocumentGetter(t,n);i={parseResult:e,uri:t,state:eh.Parsed,references:[],get textDocument(){return r()}}}return e.value.$document=i,i}async update(e,t){var r,n;let i=null===(r=e.parseResult.value.$cstNode)||void 0===r?void 0:r.root.fullText,a=null===(n=this.textDocuments)||void 0===n?void 0:n.get(e.uri.toString()),s=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{let t=this.createTextDocumentGetter(e.uri,s);Object.defineProperty(e,"textDocument",{get:t})}return i!==s&&(e.parseResult=await this.parseAsync(e.uri,s,t),e.parseResult.value.$document=e),e.state=eh.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){let r,n=this.serviceRegistry;return()=>r??(r=jd.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}},ih=class{static{e(this,"DefaultLangiumDocuments")}constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return le(this.documentMap.values())}addDocument(e){let t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){let t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(e=>(this.addDocument(e),e));{let r=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(r),r}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let t=e.toString(),r=this.documentMap.get(t);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=eh.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){let t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=eh.Changed,this.documentMap.delete(t)),r}},ah=Symbol("ref_resolving"),sh=class{static{e(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=_d.CancellationToken.None){for(let r of Pr(e.parseResult.value))await Vd(t),Dr(r).forEach(t=>this.doLink(t,e))}doLink(e,t){var r;let n=e.reference;if(void 0===n._ref){n._ref=ah;try{let t=this.getCandidate(e);if(Z(t))n._ref=t;else if(n._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){let r=this.loadAstNode(t);n._ref=r??this.createLinkingError(e,t)}else n._ref=void 0}catch(t){console.error(`An error occurred while resolving reference to '${n.$refText}':`,t);let i=null!==(r=t.message)&&void 0!==r?r:String(t);n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}t.references.push(n)}}unlink(e){for(let t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}buildReference(e,t,r,n){let i=this,a={$refNode:r,$refText:n,get ref(){var r;if(Y(this._ref))return this._ref;if(J(this._nodeDescription)){let r=i.loadAstNode(this._nodeDescription);this._ref=r??i.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=ah;let n=Lr(e).$document,s=i.getLinkedNode({reference:a,container:e,property:t});if(s.error&&n&&n.state<eh.ComputedScopes)return this._ref=void 0;this._ref=null!==(r=s.node)&&void 0!==r?r:s.error,this._nodeDescription=s.descr,n?.references.push(this)}else if(this._ref===ah)throw new Error(`Cyclic reference resolution detected: ${i.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${n}')`);return Y(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return Z(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){var t;try{let t=this.getCandidate(e);if(Z(t))return{error:t};let r=this.loadAstNode(t);return r?{node:r,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);let n=null!==(t=r.message)&&void 0!==t?t:String(r);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${n}`})}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);return t?this.astNodeLocator.getAstNode(t.parseResult.value,e.path):void 0}createLinkingError(e,t){let r=Lr(e.container).$document;r&&r.state<eh.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);let n=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${n} named '${e.reference.$refText}'.`,targetDescription:t})}};function oh(e){return"string"==typeof e.name}e(oh,"isNamed");var lh=class{static{e(this,"DefaultNameProvider")}getName(e){if(oh(e))return e.name}getNameNode(e){return kn(e.$cstNode,"name")}},uh=class{static{e(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let t=In(e),r=e.astNode;if(t&&r){let n=r[t.feature];if(X(n))return n.ref;if(Array.isArray(n))for(let t of n)if(X(t)&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return t.ref}if(r){let t=this.nameProvider.getNameNode(r);if(t&&(t===e||me(e,t)))return r}}}findDeclarationNode(e){let t=this.findDeclaration(e);if(t?.$cstNode){return this.nameProvider.getNameNode(t)??t.$cstNode}}findReferences(e,t){let r=[];if(t.includeDeclaration){let t=this.getReferenceToSelf(e);t&&r.push(t)}let n=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(n=n.filter(e=>Qd.equals(e.sourceUri,t.documentUri))),r.push(...n),le(r)}getReferenceToSelf(e){let t=this.nameProvider.getNameNode(e);if(t){let r=wr(e),n=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:n,targetUri:r.uri,targetPath:n,segment:ye(t),local:!0}}}},ch=class{static{e(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[t,r]of e)this.add(t,r)}get size(){return ue.sum(le(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{let r=this.map.get(e);if(r){let n=r.indexOf(t);if(n>=0)return 1===r.length?this.map.delete(e):r.splice(n,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{let r=this.map.get(e);return!!r&&r.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(t=>e(t,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return le(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return le(this.map.keys())}values(){return le(this.map.values()).flat()}entriesGroupedByKey(){return le(this.map.entries())}},dh=class{static{e(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}},hh=class{static{e(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=_d.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=br,n=_d.CancellationToken.None){let i=[];this.exportNode(e,i,t);for(let a of r(e))await Vd(n),this.exportNode(a,i,t);return i}exportNode(e,t,r){let n=this.nameProvider.getName(e);n&&t.push(this.descriptions.createDescription(e,n,r))}async computeLocalScopes(e,t=_d.CancellationToken.None){let r=e.parseResult.value,n=new ch;for(let i of Or(r))await Vd(t),this.processNode(i,e,n);return n}processNode(e,t,r){let n=e.$container;if(n){let i=this.nameProvider.getName(e);i&&r.add(n,this.descriptions.createDescription(e,i,t))}}},fh=class{static{e(this,"StreamScope")}constructor(e,t,r){var n;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(n=r?.caseInsensitive)&&void 0!==n&&n}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e);return t||(this.outerScope?this.outerScope.getElement(e):void 0)}},ph=class{static{e(this,"MapScope")}constructor(e,t,r){var n;this.elements=new Map,this.caseInsensitive=null!==(n=r?.caseInsensitive)&&void 0!==n&&n;for(let t of e){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=le(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},mh={getElement(){},getAllElements:()=>se},gh=class{static{e(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},yh=class extends gh{static{e(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let r=t();return this.cache.set(e,r),r}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},Th=class extends gh{static{e(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(e=>e)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();let n=this.cacheForContext(e);if(n.has(t))return n.get(t);if(r){let e=r();return n.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}},vh=class extends Th{static{e(this,"DocumentCache")}constructor(e,t){super(e=>e.toString()),t?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(t,e=>{this.clear(e.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{for(let e of t)this.clear(e)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{let r=e.concat(t);for(let e of r)this.clear(e)}))}},Rh=class extends yh{static{e(this,"WorkspaceCache")}constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},Ah=class{static{e(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Rh(e.shared)}getScope(e){let t=[],r=this.reflection.getReferenceType(e),n=wr(e.container).precomputedScopes;if(n){let i=e.container;do{let e=n.get(i);e.length>0&&t.push(le(e).filter(e=>this.reflection.isSubtype(e.type,r))),i=i.$container}while(i)}let i=this.getGlobalScope(r,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,r){return new fh(le(e),t,r)}createScopeForNodes(e,t,r){let n=le(e).map(e=>{let t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable();return new fh(n,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new ph(this.indexManager.allElements(e)))}};function kh(e){return"string"==typeof e.$comment}function Eh(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}e(kh,"isAstNodeWithComment"),e(Eh,"isIntermediateReference");var $h,xh=class{static{e(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(t,r){let n=r??{},i=r?.replacer,a=e((e,t)=>this.replacer(e,t,n),"defaultReplacer"),s=i?(e,t)=>i(e,t,a):a;try{return this.currentDocument=wr(t),JSON.stringify(t,s,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){let r=t??{},n=JSON.parse(e);return this.linkNode(n,n,r),n}replacer(e,t,{refText:r,sourceText:n,textRegions:i,comments:a,uriConverter:s}){var o,l,u,c;if(!this.ignoreProperties.has(e)){if(X(t)){let e=t.ref,n=r?t.$refText:void 0;if(e){let r=wr(e),i="";return this.currentDocument&&this.currentDocument!==r&&(i=s?s(r.uri,t):r.uri.toString()),{$ref:`${i}#${this.astNodeLocator.getAstNodePath(e)}`,$refText:n}}return{$error:null!==(l=null===(o=t.error)||void 0===o?void 0:o.message)&&void 0!==l?l:"Could not resolve reference",$refText:n}}if(Y(t)){let r;if(i&&(r=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&r?.$textRegion&&(r.$textRegion.documentURI=null===(u=this.currentDocument)||void 0===u?void 0:u.uri.toString())),n&&!e&&(r??(r=Object.assign({},t)),r.$sourceText=null===(c=t.$cstNode)||void 0===c?void 0:c.text),a){r??(r=Object.assign({},t));let e=this.commentProvider.getComment(t);e&&(r.$comment=e.replace(/\r/g,""))}return r??t}return t}}addAstNodeRegionWithAssignmentsTo(t){let r=e(e=>({offset:e.offset,end:e.end,length:e.length,range:e.range}),"createDocumentSegment");if(t.$cstNode){let e=(t.$textRegion=r(t.$cstNode)).assignments={};return Object.keys(t).filter(e=>!e.startsWith("$")).forEach(n=>{let i=An(t.$cstNode,n).map(r);0!==i.length&&(e[n]=i)}),t}}linkNode(e,t,r,n,i,a){for(let[n,i]of Object.entries(e))if(Array.isArray(i))for(let a=0;a<i.length;a++){let s=i[a];Eh(s)?i[a]=this.reviveReference(e,n,t,s,r):Y(s)&&this.linkNode(s,t,r,e,n,a)}else Eh(i)?e[n]=this.reviveReference(e,n,t,i,r):Y(i)&&this.linkNode(i,t,r,e,n);let s=e;s.$container=n,s.$containerProperty=i,s.$containerIndex=a}reviveReference(e,t,r,n,i){let a=n.$refText,s=n.$error;if(n.$ref){let e=this.getRefNode(r,n.$ref,i.uriConverter);if(Y(e))return a||(a=this.nameProvider.getName(e)),{$refText:a??"",ref:e};s=e}if(s){let r={$refText:a??""};return r.error={container:e,property:t,message:s,reference:r},r}}getRefNode(e,t,r){try{let n=t.indexOf("#");if(0===n){return this.astNodeLocator.getAstNode(e,t.substring(1))||"Could not resolve path: "+t}if(n<0){let e=r?r(t):th.parse(t),n=this.langiumDocuments.getDocument(e);return n?n.parseResult.value:"Could not find document for URI: "+t}let i=r?r(t.substring(0,n)):th.parse(t.substring(0,n)),a=this.langiumDocuments.getDocument(i);return a?n===t.length-1?a.parseResult.value:this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(n+1))||"Could not resolve URI: "+t:"Could not find document for URI: "+t}catch(e){return String(e)}}},Ch=class{static{e(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let t=e.LanguageMetaData;for(let r of t.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(r,e);this.languageIdMap.set(t.languageId,e),1===this.languageIdMap.size?this.singleton=e:this.singleton=void 0}getServices(e){var t,r;if(void 0!==this.singleton)return this.singleton;if(0===this.languageIdMap.size)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let n=null===(r=null===(t=this.textDocuments)||void 0===t?void 0:t.get(e))||void 0===r?void 0:r.languageId;if(void 0!==n){let e=this.languageIdMap.get(n);if(e)return e}let i=Qd.extname(e),a=this.fileExtensionMap.get(i);if(!a)throw n?new Error(`The service registry contains no services for the extension '${i}' for language '${n}'.`):new Error(`The service registry contains no services for the extension '${i}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function Ih(e){return{code:e}}e(Ih,"diagnosticData"),($h||($h={})).all=["fast","slow","built-in"];var Sh,Nh=class{static{e(this,"ValidationRegistry")}constructor(e){this.entries=new ch,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if("built-in"===r)throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[n,i]of Object.entries(e)){let e=i;if(Array.isArray(e))for(let i of e){let e={check:this.wrapValidationException(i,t),category:r};this.addEntry(n,e)}else if("function"==typeof e){let i={check:this.wrapValidationException(e,t),category:r};this.addEntry(n,i)}else _e()}}wrapValidationException(e,t){return async(r,n,i)=>{await this.handleException(()=>e.call(t,r,n,i),"An error occurred during validation",n,r)}}async handleException(e,t,r,n){try{await e()}catch(e){if(Kd(e))throw e;console.error(`${t}:`,e),e instanceof Error&&e.stack&&console.error(e.stack),r("error",`${t}: ${e instanceof Error?e.message:String(e)}`,{node:n})}}addEntry(e,t){if("AstNode"!==e)for(let r of this.reflection.getAllSubTypes(e))this.entries.add(r,t);else this.entries.add("AstNode",t)}getChecks(e,t){let r=le(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(e=>t.includes(e.category))),r.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(n,i,a,s)=>{await this.handleException(()=>e.call(r,n,i,a,s),t,i,n)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}},wh=class{static{e(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=_d.CancellationToken.None){let n=e.parseResult,i=[];if(await Vd(r),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(n,i,t),t.stopAfterLexingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Sh.LexingError})||(this.processParsingErrors(n,i,t),t.stopAfterParsingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Sh.ParsingError}))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Sh.LinkingError}))))return i;try{i.push(...await this.validateAst(n.value,t,r))}catch(e){if(Kd(e))throw e;console.error("An error occurred during validation:",e)}return await Vd(r),i}processLexingErrors(e,t,r){var n,i,a;let s=[...e.lexerErrors,...null!==(i=null===(n=e.lexerReport)||void 0===n?void 0:n.diagnostics)&&void 0!==i?i:[]];for(let e of s){let r=null!==(a=e.severity)&&void 0!==a?a:"error",n={severity:bh(r),range:{start:{line:e.line-1,character:e.column-1},end:{line:e.line-1,character:e.column+e.length-1}},message:e.message,data:Oh(r),source:this.getSource()};t.push(n)}}processParsingErrors(e,t,r){for(let r of e.parserErrors){let e;if(isNaN(r.token.startOffset)){if("previousToken"in r){let t=r.previousToken;if(isNaN(t.startOffset)){let t={line:0,character:0};e={start:t,end:t}}else{let r={line:t.endLine-1,character:t.endColumn};e={start:r,end:r}}}}else e=ge(r.token);if(e){let n={severity:bh("error"),range:e,message:r.message,data:Ih(Sh.ParsingError),source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,r){for(let r of e.references){let e=r.error;if(e){let r={node:e.container,property:e.property,index:e.index,data:{code:Sh.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,r))}}}async validateAst(t,r,n=_d.CancellationToken.None){let i=[],a=e((e,t,r)=>{i.push(this.toDiagnostic(e,t,r))},"acceptor");return await this.validateAstBefore(t,r,a,n),await this.validateAstNodes(t,r,a,n),await this.validateAstAfter(t,r,a,n),i}async validateAstBefore(e,t,r,n=_d.CancellationToken.None){var i;let a=this.validationRegistry.checksBefore;for(let s of a)await Vd(n),await s(e,r,null!==(i=t.categories)&&void 0!==i?i:[],n)}async validateAstNodes(e,t,r,n=_d.CancellationToken.None){await Promise.all(Pr(e).map(async e=>{await Vd(n);let i=this.validationRegistry.getChecks(e.$type,t.categories);for(let t of i)await t(e,r,n)}))}async validateAstAfter(e,t,r,n=_d.CancellationToken.None){var i;let a=this.validationRegistry.checksAfter;for(let s of a)await Vd(n),await s(e,r,null!==(i=t.categories)&&void 0!==i?i:[],n)}toDiagnostic(e,t,r){return{message:t,range:Lh(r),severity:bh(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function Lh(e){if(e.range)return e.range;let t;return"string"==typeof e.property?t=kn(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=xn(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function bh(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function Oh(e){switch(e){case"error":return Ih(Sh.LexingError);case"warning":return Ih(Sh.LexingWarning);case"info":return Ih(Sh.LexingInfo);case"hint":return Ih(Sh.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}e(Lh,"getDiagnosticRange"),e(bh,"toDiagnosticSeverity"),e(Oh,"toDiagnosticData"),function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"}(Sh||(Sh={}));var Ph=class{static{e(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(t,r,n){let i=n??wr(t);r??(r=this.nameProvider.getName(t));let a=this.astNodeLocator.getAstNodePath(t);if(!r)throw new Error(`Node at path ${a} has no name.`);let s,o=e(()=>{var e;return s??(s=ye(null!==(e=this.nameProvider.getNameNode(t))&&void 0!==e?e:t.$cstNode))},"nameSegmentGetter");return{node:t,name:r,get nameSegment(){return o()},selectionSegment:ye(t.$cstNode),type:t.$type,documentUri:i.uri,path:a}}},_h=class{static{e(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=_d.CancellationToken.None){let r=[],n=e.parseResult.value;for(let e of Pr(n))await Vd(t),Dr(e).filter(e=>!Z(e)).forEach(e=>{let t=this.createDescription(e);t&&r.push(t)});return r}createDescription(e){let t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;let n=wr(e.container).uri;return{sourceUri:n,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:ye(r),local:Qd.equals(t.documentUri,n)}}},Dh=class{static{e(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;let r=t.indexOf(this.indexSeparator);if(r>0){let n=t.substring(0,r),i=parseInt(t.substring(r+1)),a=e[n];return a?.[i]}return e[t]},e)}},Mh={};o(Mh,l(W()));var Fh,Uh=class{static{e(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new Hd,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Mh.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=null!==(r=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==r&&r}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,r[t])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{let r=e.settings[t];this.updateSectionConfiguration(t,r),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:r})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}};!function(t){function r(t){return{dispose:e(async()=>await t(),"dispose")}}e(r,"create"),t.create=r}(Fh||(Fh={}));var Gh=class{static{e(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new ch,this.documentPhaseListeners=new ch,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=eh.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=_d.CancellationToken.None){var n,i;for(let r of e){let e=r.uri.toString();if(r.state===eh.Validated){if("boolean"==typeof t.validation&&t.validation)r.state=eh.IndexedReferences,r.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){let a=this.buildState.get(e),s=null===(n=a?.result)||void 0===n?void 0:n.validationChecks;if(s){let n=(null!==(i=t.validation.categories)&&void 0!==i?i:$h.all).filter(e=>!s.includes(e));n.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:n})},result:a.result}),r.state=eh.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=eh.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=_d.CancellationToken.None){this.currentState=eh.Changed;for(let e of t)this.langiumDocuments.deleteDocument(e),this.buildState.delete(e.toString()),this.indexManager.remove(e);for(let t of e){if(!this.langiumDocuments.invalidateDocument(t)){let e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},t);e.state=eh.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(t.toString())}let n=le(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!n.has(e.uri.toString())&&this.shouldRelink(e,n)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,eh.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await Vd(r);let i=this.sortDocuments(this.langiumDocuments.all.filter(e=>{var t;return e.state<eh.Linked||!(null!==(t=this.buildState.get(e.uri.toString()))&&void 0!==t&&t.completed)}).toArray());await this.buildDocuments(i,this.updateBuildOptions,r)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t<r;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;t<r&&([e[t],e[r]]=[e[r],e[t]])}return e}hasTextDocument(e){var t;return!(null===(t=this.textDocuments)||void 0===t||!t.get(e.uri))}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Fh.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,eh.Parsed,r,e=>this.langiumDocumentFactory.update(e,r)),await this.runCancelable(e,eh.IndexedContent,r,e=>this.indexManager.updateContent(e,r)),await this.runCancelable(e,eh.ComputedScopes,r,async e=>{let t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,r)}),await this.runCancelable(e,eh.Linked,r,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,r)),await this.runCancelable(e,eh.IndexedReferences,r,e=>this.indexManager.updateReferences(e,r));let n=e.filter(e=>this.shouldValidate(e));await this.runCancelable(n,eh.Validated,r,e=>this.validate(e,r));for(let t of e){let e=this.buildState.get(t.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(let r of e){let e=r.uri.toString(),n=this.buildState.get(e);(!n||n.completed)&&this.buildState.set(e,{completed:!1,options:t,result:n?.result})}}async runCancelable(e,t,r,n){let i=e.filter(e=>e.state<t);for(let e of i)await Vd(r),await n(e),e.state=t,await this.notifyDocumentPhase(e,t,r);let a=e.filter(e=>e.state===t);await this.notifyBuildPhase(a,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Fh.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Fh.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let n;if(t&&"path"in t?n=t:r=t,r??(r=_d.CancellationToken.None),n){let t=this.langiumDocuments.getDocument(n);if(t&&t.state>e)return Promise.resolve(n)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(Bd):new Promise((t,i)=>{let a=this.onBuildPhase(e,()=>{if(a.dispose(),s.dispose(),n){let e=this.langiumDocuments.getDocument(n);t(e?.uri)}else t(void 0)}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(Bd)})})}async notifyDocumentPhase(e,t,r){let n=this.documentPhaseListeners.get(t).slice();for(let t of n)try{await t(e,r)}catch(e){if(!Kd(e))throw e}}async notifyBuildPhase(e,t,r){if(0===e.length)return;let n=this.buildPhaseListeners.get(t).slice();for(let t of n)await Vd(r),await t(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,n;let i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,s="object"==typeof a?a:void 0,o=await i.validateDocument(e,s,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;let l=this.buildState.get(e.uri.toString());if(l){null!==(r=l.result)&&void 0!==r||(l.result={});let e=null!==(n=s?.categories)&&void 0!==n?n:$h.all;l.result.validationChecks?l.result.validationChecks.push(...e):l.result.validationChecks=[...e]}}getBuildOptions(e){var t,r;return null!==(r=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==r?r:{}}},Bh=class{static{e(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Th,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let r=wr(e).uri,n=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{Qd.equals(e.targetUri,r)&&e.targetPath===t&&n.push(e)})}),le(n)}allElements(e,t){let r=le(this.symbolIndex.keys());return t&&(r=r.filter(e=>!t||t.has(e))),r.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var r;return(null!==(r=this.symbolIndex.get(e))&&void 0!==r?r:[]).filter(e=>this.astReflection.isSubtype(e.type,t))}):null!==(r=this.symbolIndex.get(e))&&void 0!==r?r:[]}remove(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=_d.CancellationToken.None){let r=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),n=e.uri.toString();this.symbolIndex.set(n,r),this.symbolByTypeIndex.clear(n)}async updateReferences(e,t=_d.CancellationToken.None){let r=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),r)}isAffected(e,t){let r=this.referenceIndex.get(e.uri.toString());return!!r&&r.some(e=>!e.local&&t.has(e.targetUri.toString()))}},Kh=class{static{e(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new Hd,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write(e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)})}async initializeWorkspace(e,t=_d.CancellationToken.None){let r=await this.performStartup(e);await Vd(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(t){let r=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),n=[],i=e(e=>{n.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)},"collector");return await this.loadAdditionalDocuments(t,i),await Promise.all(t.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return th.parse(e.uri)}async traverseFolder(e,t,r,n){let i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{if(this.includeEntry(e,t,r))if(t.isDirectory)await this.traverseFolder(e,t.uri,r,n);else if(t.isFile){let e=await this.langiumDocuments.getOrCreateDocument(t.uri);n(e)}}))}includeEntry(e,t,r){let n=Qd.basename(t.uri);if(n.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==n&&"out"!==n;if(t.isFile){let e=Qd.extname(t.uri);return r.includes(e)}return!1}},Vh=class{static{e(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,t,r,n,i){return za.buildUnexpectedCharactersMessage(e,t,r,n,i)}buildUnableToPopLexerModeMessage(e){return za.buildUnableToPopLexerModeMessage(e)}},jh={mode:"full"},Wh=class{static{e(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let r=qh(t)?Object.values(t):t,n="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new Ya(r,{positionTracking:"full",skipValidations:n,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=jh){var r,n,i;let a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:null!==(r=a.groups.hidden)&&void 0!==r?r:[],report:null===(i=(n=this.tokenBuilder).flushLexingReport)||void 0===i?void 0:i.call(n,e)}}toTokenTypeDictionary(e){if(qh(e))return e;let t=zh(e)?Object.values(e.modes).flat():e,r={};return t.forEach(e=>r[e.name]=e),r}};function Hh(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}function zh(e){return e&&"modes"in e&&"defaultMode"in e}function qh(e){return!Hh(e)&&!zh(e)}function Yh(e,t,r){let n,i;return"string"==typeof e?(i=t,n=r):(i=e.range.start,n=t),i||(i=Ql.create(0,0)),of({index:0,tokens:ef({lines:Jh(e),position:i,options:pf(n)}),position:i})}function Xh(e,t){let r=pf(t),n=Jh(e);if(0===n.length)return!1;let i=n[0],a=n[n.length-1],s=r.start,o=r.end;return!!s?.exec(i)&&!!o?.exec(a)}function Jh(e){let t="";return t="string"==typeof e?e:e.text,t.split(rn)}e(Hh,"isTokenTypeArray"),e(zh,"isIMultiModeLexerDefinition"),e(qh,"isTokenTypeDictionary"),e(Yh,"parseJSDoc"),e(Xh,"isJSDoc"),e(Jh,"getLines");var Zh=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Qh=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function ef(e){var t,r,n;let i=[],a=e.position.line,s=e.position.character;for(let o=0;o<e.lines.length;o++){let l=0===o,u=o===e.lines.length-1,c=e.lines[o],d=0;if(l&&e.options.start){let r=null===(t=e.options.start)||void 0===t?void 0:t.exec(c);r&&(d=r.index+r[0].length)}else{let t=null===(r=e.options.line)||void 0===r?void 0:r.exec(c);t&&(d=t.index+t[0].length)}if(u){let t=null===(n=e.options.end)||void 0===n?void 0:n.exec(c);t&&(c=c.substring(0,t.index))}if(c=c.substring(0,sf(c)),af(c,d)>=c.length){if(i.length>0){let e=Ql.create(a,s);i.push({type:"break",content:"",range:eu.create(e,e)})}}else{Zh.lastIndex=d;let e=Zh.exec(c);if(e){let t=e[0],r=e[1],n=Ql.create(a,s+d),o=Ql.create(a,s+d+t.length);i.push({type:"tag",content:r,range:eu.create(n,o)}),d+=t.length,d=af(c,d)}if(d<c.length){let e=c.substring(d),t=Array.from(e.matchAll(Qh));i.push(...tf(t,e,a,s+d))}}a++,s=0}return i.length>0&&"break"===i[i.length-1].type?i.slice(0,-1):i}function tf(e,t,r,n){let i=[];if(0===e.length){let e=Ql.create(r,n),a=Ql.create(r,n+t.length);i.push({type:"text",content:t,range:eu.create(e,a)})}else{let a=0;for(let s of e){let e=s.index,o=t.substring(a,e);o.length>0&&i.push({type:"text",content:t.substring(a,e),range:eu.create(Ql.create(r,a+n),Ql.create(r,e+n))});let l=o.length+1,u=s[1];if(i.push({type:"inline-tag",content:u,range:eu.create(Ql.create(r,a+l+n),Ql.create(r,a+l+u.length+n))}),l+=u.length,4===s.length){l+=s[2].length;let e=s[3];i.push({type:"text",content:e,range:eu.create(Ql.create(r,a+l+n),Ql.create(r,a+l+e.length+n))})}else i.push({type:"text",content:"",range:eu.create(Ql.create(r,a+l+n),Ql.create(r,a+l+n))});a=e+s[0].length}let s=t.substring(a);s.length>0&&i.push({type:"text",content:s,range:eu.create(Ql.create(r,a+n),Ql.create(r,a+n+s.length))})}return i}e(ef,"tokenize"),e(tf,"buildInlineTokens");var rf=/\S/,nf=/\s*$/;function af(e,t){let r=e.substring(t).match(rf);return r?t+r.index:e.length}function sf(e){let t=e.match(nf);if(t&&"number"==typeof t.index)return t.index}function of(e){var t,r,n,i;let a=Ql.create(e.position.line,e.position.character);if(0===e.tokens.length)return new gf([],eu.create(a,a));let s=[];for(;e.index<e.tokens.length;){let t=lf(e,s[s.length-1]);t&&s.push(t)}let o=null!==(r=null===(t=s[0])||void 0===t?void 0:t.range.start)&&void 0!==r?r:a,l=null!==(i=null===(n=s[s.length-1])||void 0===n?void 0:n.range.end)&&void 0!==i?i:a;return new gf(s,eu.create(o,l))}function lf(e,t){let r=e.tokens[e.index];return"tag"===r.type?hf(e,!1):"text"===r.type||"inline-tag"===r.type?cf(e):(uf(r,t),void e.index++)}function uf(e,t){if(t){let r=new Af("",e.range);"inlines"in t?t.inlines.push(r):t.content.inlines.push(r)}}function cf(e){let t=e.tokens[e.index],r=t,n=t,i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push(df(e)),n=t,t=e.tokens[e.index];return new Rf(i,eu.create(r.range.start,n.range.end))}function df(e){return"inline-tag"===e.tokens[e.index].type?hf(e,!0):ff(e)}function hf(e,t){let r=e.tokens[e.index++],n=r.content.substring(1),i=e.tokens[e.index];if("text"===i?.type){if(t){let i=ff(e);return new yf(n,new Rf([i],i.range),t,eu.create(r.range.start,i.range.end))}{let i=cf(e);return new yf(n,i,t,eu.create(r.range.start,i.range.end))}}{let e=r.range;return new yf(n,new Rf([],e),t,e)}}function ff(e){let t=e.tokens[e.index++];return new Af(t.content,t.range)}function pf(e){if(!e)return pf({start:"/**",end:"*/",line:"*"});let{start:t,end:r,line:n}=e;return{start:mf(t,!0),end:mf(r,!1),line:mf(n,!0)}}function mf(e,t){if("string"==typeof e||"object"==typeof e){let r="string"==typeof e?dn(e):e.source;return t?new RegExp(`^\\s*${r}`):new RegExp(`\\s*${r}\\s*$`)}return e}e(af,"skipWhitespace"),e(sf,"lastCharacter"),e(of,"parseJSDocComment"),e(lf,"parseJSDocElement"),e(uf,"appendEmptyLine"),e(cf,"parseJSDocText"),e(df,"parseJSDocInline"),e(hf,"parseJSDocTag"),e(ff,"parseJSDocLine"),e(pf,"normalizeOptions"),e(mf,"normalizeOption");var gf=class{static{e(this,"JSDocCommentImpl")}constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(0===e.length)e=t.toString();else{let r=t.toString();e+=kf(e)+r}return e.trim()}toMarkdown(e){let t="";for(let r of this.elements)if(0===t.length)t=r.toMarkdown(e);else{let n=r.toMarkdown(e);t+=kf(t)+n}return t.trim()}},yf=class{static{e(this,"JSDocTagImpl")}constructor(e,t,r,n){this.name=e,this.content=t,this.inline=r,this.range=n}toString(){let e=`@${this.name}`,t=this.content.toString();return 1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}\n${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,r;return null!==(r=null===(t=e?.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==r?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let r=Tf(this.name,t,e??{});if("string"==typeof r)return r}let r="";"italic"===e?.tag||void 0===e?.tag?r="*":"bold"===e?.tag?r="**":"bold-italic"===e?.tag&&(r="***");let n=`${r}@${this.name}${r}`;return 1===this.content.inlines.length?n=`${n} — ${t}`:this.content.inlines.length>1&&(n=`${n}\n${t}`),this.inline?`{${n}}`:n}};function Tf(e,t,r){var n,i;if("linkplain"===e||"linkcode"===e||"link"===e){let a=t.indexOf(" "),s=t;if(a>0){let e=af(t,a);s=t.substring(e),t=t.substring(0,a)}return("linkcode"===e||"link"===e&&"code"===r.link)&&(s=`\`${s}\``),null!==(i=null===(n=r.renderLink)||void 0===n?void 0:n.call(r,t,s))&&void 0!==i?i:vf(t,s)}}function vf(e,t){try{return th.parse(e,!0),`[${t}](${e})`}catch{return e}}e(Tf,"renderInlineTag"),e(vf,"renderLinkDefault");var Rf=class{static{e(this,"JSDocTextImpl")}constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){let r=this.inlines[t],n=this.inlines[t+1];e+=r.toString(),n&&n.range.start.line>r.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){let n=this.inlines[r],i=this.inlines[r+1];t+=n.toMarkdown(e),i&&i.range.start.line>n.range.start.line&&(t+="\n")}return t}},Af=class{static{e(this,"JSDocLineImpl")}constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};function kf(e){return e.endsWith("\n")?"\n":"\n\n"}e(kf,"fillNewlines");var Ef,$f=class{static{e(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(t){let r=this.commentProvider.getComment(t);if(r&&Xh(r))return Yh(r).toMarkdown({renderLink:e((e,r)=>this.documentationLinkRenderer(t,e,r),"renderLink"),renderTag:e(e=>this.documentationTagRenderer(t,e),"renderTag")})}documentationLinkRenderer(e,t,r){var n;let i=null!==(n=this.findNameInPrecomputedScopes(e,t))&&void 0!==n?n:this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){let e=i.nameSegment.range.start.line+1,t=i.nameSegment.range.start.character+1;return`[${r}](${i.documentUri.with({fragment:`L${e},${t}`}).toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){let r=wr(e).precomputedScopes;if(!r)return;let n=e;do{let e=r.get(n).find(e=>e.name===t);if(e)return e;n=n.$container}while(n)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}},xf=class{static{e(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return kh(e)?e.$comment:null===(t=ke(e.$cstNode,this.grammarConfig().multilineCommentRules))||void 0===t?void 0:t.text}},Cf=class{static{e(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}},If=class{static{e(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length<this.threadCount;){let e=this.createWorker();e.onReady(()=>{if(this.queue.length>0){let t=this.queue.shift();t&&(e.lock(),t.resolve(e))}}),this.workerPool.push(e)}}async parse(e,t){let r,n=await this.acquireParserWorker(t),i=new Hd,a=t.onCancellationRequested(()=>{r=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(e=>{let t=this.hydrator.hydrate(e);i.resolve(t)}).catch(e=>{i.reject(e)}).finally(()=>{a.dispose(),clearTimeout(r)}),i.promise}terminateWorker(e){e.terminate();let t=this.workerPool.indexOf(e);t>=0&&this.workerPool.splice(t,1)}async acquireParserWorker(e){this.initializeWorkers();for(let e of this.workerPool)if(e.ready)return e.lock(),e;let t=new Hd;return e.onCancellationRequested(()=>{let e=this.queue.indexOf(t);e>=0&&this.queue.splice(e,1),t.reject(Bd)}),this.queue.push(t),t.promise}},Sf=class{static{e(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,r,n){this.onReadyEmitter=new Mh.Emitter,this.deferred=new Hd,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=n,t(e=>{let t=e;this.deferred.resolve(t),this.unlock()}),r(e=>{this.deferred.reject(e),this.unlock()})}terminate(){this.deferred.reject(Bd),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new Hd,this.sendMessage(e),this.deferred.promise}},Nf=class{static{e(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new _d.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=Ud();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=_d.CancellationToken.None){let n=new Hd,i={action:t,deferred:n,cancellationToken:r};return e.push(i),this.performNextOperation(),n.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:r})=>{try{let n=await Promise.resolve().then(()=>e(r));t.resolve(n)}catch(e){Kd(e)?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},wf=class{static{e(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new dh,this.tokenTypeIdMap=new dh,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(e=>Object.assign(Object.assign({},e),{message:e.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let t=new Map,r=new Map;for(let r of Pr(e))t.set(r,{});if(e.$cstNode)for(let t of fe(e.$cstNode))r.set(t,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){let r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(let[n,i]of Object.entries(e))if(!n.startsWith("$"))if(Array.isArray(i)){let e=[];r[n]=e;for(let r of i)Y(r)?e.push(this.dehydrateAstNode(r,t)):X(r)?e.push(this.dehydrateReference(r,t)):e.push(r)}else Y(i)?r[n]=this.dehydrateAstNode(i,t):X(i)?r[n]=this.dehydrateReference(i,t):void 0!==i&&(r[n]=i);return r}dehydrateReference(e,t){let r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){let r=t.cstNodes.get(e);return re(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),ee(e)?r.content=e.content.map(e=>this.dehydrateCstNode(e,t)):te(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){let t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){let t,r=new Map,n=new Map;for(let t of Pr(e))r.set(t,{});if(e.$cstNode)for(let r of fe(e.$cstNode)){let e;"fullText"in r?(e=new td(r.fullText),t=e):"content"in r?e=new Qc:"tokenType"in r&&(e=this.hydrateCstLeafNode(r)),e&&(n.set(r,e),e.root=t)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,t){let r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(let[n,i]of Object.entries(e))if(!n.startsWith("$"))if(Array.isArray(i)){let e=[];r[n]=e;for(let a of i)Y(a)?e.push(this.setParent(this.hydrateAstNode(a,t),r)):X(a)?e.push(this.hydrateReference(a,r,n,t)):e.push(a)}else Y(i)?r[n]=this.setParent(this.hydrateAstNode(i,t),r):X(i)?r[n]=this.hydrateReference(i,r,n,t):void 0!==i&&(r[n]=i);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,n){return this.linker.buildReference(t,r,n.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){let n=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(n.grammarSource=this.getGrammarElement(e.grammarSource)),n.astNode=t.astNodes.get(e.astNode),ee(n))for(let i of e.content){let e=this.hydrateCstNode(i,t,r++);n.content.push(e)}return n}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),r=e.offset,n=e.length,i=e.startLine,a=e.startColumn,s=e.endLine,o=e.endColumn,l=e.hidden;return new Zc(r,n,{start:{line:i,character:a},end:{line:s,character:o}},t,l)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let t of Pr(this.grammar))Je(t)&&this.grammarElementIdMap.set(t,e++)}};function Lf(t){return{documentation:{CommentProvider:e(e=>new xf(e),"CommentProvider"),DocumentationProvider:e(e=>new $f(e),"DocumentationProvider")},parser:{AsyncParser:e(e=>new Cf(e),"AsyncParser"),GrammarConfig:e(e=>Qn(e),"GrammarConfig"),LangiumParser:e(e=>wd(e),"LangiumParser"),CompletionParser:e(e=>Nd(e),"CompletionParser"),ValueConverter:e(()=>new Pd,"ValueConverter"),TokenBuilder:e(()=>new Od,"TokenBuilder"),Lexer:e(e=>new Wh(e),"Lexer"),ParserErrorMessageProvider:e(()=>new ld,"ParserErrorMessageProvider"),LexerErrorMessageProvider:e(()=>new Vh,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:e(()=>new Dh,"AstNodeLocator"),AstNodeDescriptionProvider:e(e=>new Ph(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:e(e=>new _h(e),"ReferenceDescriptionProvider")},references:{Linker:e(e=>new sh(e),"Linker"),NameProvider:e(()=>new lh,"NameProvider"),ScopeProvider:e(e=>new Ah(e),"ScopeProvider"),ScopeComputation:e(e=>new hh(e),"ScopeComputation"),References:e(e=>new uh(e),"References")},serializer:{Hydrator:e(e=>new wf(e),"Hydrator"),JsonSerializer:e(e=>new xh(e),"JsonSerializer")},validation:{DocumentValidator:e(e=>new wh(e),"DocumentValidator"),ValidationRegistry:e(e=>new Nh(e),"ValidationRegistry")},shared:e(()=>t.shared,"shared")}}function bf(t){return{ServiceRegistry:e(e=>new Ch(e),"ServiceRegistry"),workspace:{LangiumDocuments:e(e=>new ih(e),"LangiumDocuments"),LangiumDocumentFactory:e(e=>new nh(e),"LangiumDocumentFactory"),DocumentBuilder:e(e=>new Gh(e),"DocumentBuilder"),IndexManager:e(e=>new Bh(e),"IndexManager"),WorkspaceManager:e(e=>new Kh(e),"WorkspaceManager"),FileSystemProvider:e(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:e(()=>new Nf,"WorkspaceLock"),ConfigurationProvider:e(e=>new Uh(e),"ConfigurationProvider")}}}function Of(e,t,r,n,i,a,s,o,l){return Df([e,t,r,n,i,a,s,o,l].reduce(Uf,{}))}e(Lf,"createDefaultCoreModule"),e(bf,"createDefaultSharedCoreModule"),(Ef||(Ef={})).merge=(e,t)=>Uf(Uf({},e),t),e(Of,"inject");var Pf=Symbol("isProxy");function _f(e){if(e&&e[Pf])for(let t of Object.values(e))_f(t);return e}function Df(t,r){let n=new Proxy({},{deleteProperty:e(()=>!1,"deleteProperty"),set:e(()=>{throw new Error("Cannot set property on injected service container")},"set"),get:e((e,i)=>i===Pf||Ff(e,i,t,r||n),"get"),getOwnPropertyDescriptor:e((e,i)=>(Ff(e,i,t,r||n),Object.getOwnPropertyDescriptor(e,i)),"getOwnPropertyDescriptor"),has:e((e,r)=>r in t,"has"),ownKeys:e(()=>[...Object.getOwnPropertyNames(t)],"ownKeys")});return n}e(_f,"eagerLoad"),e(Df,"_inject");var Mf=Symbol();function Ff(e,t,r,n){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===Mf)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in r){let i=r[t];e[t]=Mf;try{e[t]="function"==typeof i?i(n):Df(i,n)}catch(r){throw e[t]=r instanceof Error?r:void 0,r}return e[t]}}function Uf(e,t){if(t)for(let[r,n]of Object.entries(t))if(void 0!==n){let t=e[r];e[r]=null!==t&&null!==n&&"object"==typeof t&&"object"==typeof n?Uf(t,n):n}return e}e(Ff,"_resolve"),e(Uf,"_merge");var Gf,Bf={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};!function(e){e.REGULAR="indentation-sensitive",e.IGNORE_INDENTATION="ignore-indentation"}(Gf||(Gf={}));var Kf=class extends Od{static{e(this,"IndentationAwareTokenBuilder")}constructor(e=Bf){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options=Object.assign(Object.assign({},Bf),e),this.indentTokenType=ss({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=ss({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,t){let r=super.buildTokens(e,t);if(!Hh(r))throw new Error("Invalid tokens built by default builder");let n,i,a,{indentTokenName:s,dedentTokenName:o,whitespaceTokenName:l,ignoreIndentationDelimiters:u}=this.options,c=[];for(let e of r){for(let[t,r]of u)e.name===t?e.PUSH_MODE=Gf.IGNORE_INDENTATION:e.name===r&&(e.POP_MODE=!0);e.name===o?n=e:e.name===s?i=e:e.name===l?a=e:c.push(e)}if(!n||!i||!a)throw new Error("Some indentation/whitespace tokens not found!");return u.length>0?{modes:{[Gf.REGULAR]:[n,i,...c,a],[Gf.IGNORE_INDENTATION]:[...c,a]},defaultMode:Gf.REGULAR}:[n,i,a,...c]}flushLexingReport(e){let t=super.flushLexingReport(e);return Object.assign(Object.assign({},t),{remainingDedents:this.flushRemainingDedents(e)})}isStartOfLine(e,t){return 0===t||"\r\n".includes(e[t-1])}matchWhitespace(e,t,r,n){var i;this.whitespaceRegExp.lastIndex=t;let a=this.whitespaceRegExp.exec(e);return{currIndentLevel:null!==(i=a?.[0].length)&&void 0!==i?i:0,prevIndentLevel:this.indentationStack.at(-1),match:a}}createIndentationTokenInstance(e,t,r,n){let i=this.getLineNumber(t,n);return us(e,r,n,n+r.length,i,i,1,r.length)}getLineNumber(e,t){return e.substring(0,t).split(/\r\n|\r|\n/).length}indentMatcher(e,t,r,n){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:i,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,n);return i<=a?null:(this.indentationStack.push(i),s)}dedentMatcher(e,t,r,n){var i,a,s,o;if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:l,prevIndentLevel:u,match:c}=this.matchWhitespace(e,t,r,n);if(l>=u)return null;let d=this.indentationStack.lastIndexOf(l);if(-1===d)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${l} at offset: ${t}. Current indentation stack: ${this.indentationStack}`,offset:t,length:null!==(a=null===(i=c?.[0])||void 0===i?void 0:i.length)&&void 0!==a?a:0,line:this.getLineNumber(e,t),column:1}),null;let h=this.indentationStack.length-d-1,f=null!==(o=null===(s=e.substring(0,t).match(/[\r\n]+$/))||void 0===s?void 0:s[0].length)&&void 0!==o?o:1;for(let n=0;n<h;n++){let n=this.createIndentationTokenInstance(this.dedentTokenType,e,"",t-(f-1));r.push(n),this.indentationStack.pop()}return null}buildTerminalToken(e){let t=super.buildTerminalToken(e),{indentTokenName:r,dedentTokenName:n,whitespaceTokenName:i}=this.options;return t.name===r?this.indentTokenType:t.name===n?this.dedentTokenType:t.name===i?ss({name:i,pattern:this.whitespaceRegExp,group:Ya.SKIPPED}):t}flushRemainingDedents(e){let t=[];for(;this.indentationStack.length>1;)t.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],t}},Vf=class extends Wh{static{e(this,"IndentationAwareLexer")}constructor(e){if(super(e),!(e.parser.TokenBuilder instanceof Kf))throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder");this.indentationTokenBuilder=e.parser.TokenBuilder}tokenize(e,t=jh){let r=super.tokenize(e),n=r.report;"full"===t?.mode&&r.tokens.push(...n.remainingDedents),n.remainingDedents=[];let{indentTokenType:i,dedentTokenType:a}=this.indentationTokenBuilder,s=i.tokenTypeIdx,o=a.tokenTypeIdx,l=[],u=r.tokens.length-1;for(let e=0;e<u;e++){let t=r.tokens[e],n=r.tokens[e+1];t.tokenTypeIdx!==s||n.tokenTypeIdx!==o?l.push(t):e++}return u>=0&&l.push(r.tokens[u]),r.tokens=l,r}},jf={};i(jf,{AstUtils:()=>Cr,BiMap:()=>dh,Cancellation:()=>_d,ContextCache:()=>Th,CstUtils:()=>q,DONE_RESULT:()=>oe,Deferred:()=>Hd,Disposable:()=>Fh,DisposableCache:()=>gh,DocumentCache:()=>vh,EMPTY_STREAM:()=>se,ErrorWithLocation:()=>Pe,GrammarUtils:()=>Oe,MultiMap:()=>ch,OperationCancelled:()=>Bd,Reduction:()=>ue,RegExpUtils:()=>Br,SimpleCache:()=>yh,StreamImpl:()=>ne,TreeStreamImpl:()=>he,URI:()=>th,UriUtils:()=>Qd,WorkspaceCache:()=>Rh,assertUnreachable:()=>_e,delayNextTick:()=>Dd,interruptAndCheck:()=>Vd,isOperationCancelled:()=>Kd,loadGrammarFromJson:()=>Xf,setInterruptionPeriod:()=>Gd,startCancelableOperation:()=>Ud,stream:()=>le}),o(jf,Mh);var Wf=class{static{e(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},Hf={fileSystemProvider:e(()=>new Wf,"fileSystemProvider")},zf={Grammar:e(()=>{},"Grammar"),LanguageMetaData:e(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},qf={AstReflection:e(()=>new $r,"AstReflection")};function Yf(){let e=Of(bf(Hf),qf),t=Of(Lf({shared:e}),zf);return e.ServiceRegistry.register(t),t}function Xf(e){var t;let r=Yf(),n=r.serializer.JsonSerializer.deserialize(e);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,th.parse(`memory://${null!==(t=n.name)&&void 0!==t?t:"grammar"}.langium`)),n}e(Yf,"createMinimalGrammarServices"),e(Xf,"loadGrammarFromJson"),o(z,jf);var Jf=Object.defineProperty,Zf=e((e,t)=>Jf(e,"name",{value:t,configurable:!0}),"__name"),Qf="Statement",ep="Architecture";function tp(e){return zp.isInstance(e,ep)}e(tp,"isArchitecture"),Zf(tp,"isArchitecture");var rp="Axis",np="Branch";function ip(e){return zp.isInstance(e,np)}e(ip,"isBranch"),Zf(ip,"isBranch");var ap="Checkout",sp="CherryPicking",op="ClassDefStatement",lp="Commit";function up(e){return zp.isInstance(e,lp)}e(up,"isCommit"),Zf(up,"isCommit");var cp="Curve",dp="Edge",hp="Entry",fp="GitGraph";function pp(e){return zp.isInstance(e,fp)}e(pp,"isGitGraph"),Zf(pp,"isGitGraph");var mp="Group",gp="Info";function yp(e){return zp.isInstance(e,gp)}e(yp,"isInfo"),Zf(yp,"isInfo");var Tp="Item",vp="Junction",Rp="Merge";function Ap(e){return zp.isInstance(e,Rp)}e(Ap,"isMerge"),Zf(Ap,"isMerge");var kp="Option",Ep="Packet";function $p(e){return zp.isInstance(e,Ep)}e($p,"isPacket"),Zf($p,"isPacket");var xp="PacketBlock";function Cp(e){return zp.isInstance(e,xp)}e(Cp,"isPacketBlock"),Zf(Cp,"isPacketBlock");var Ip="Pie";function Sp(e){return zp.isInstance(e,Ip)}e(Sp,"isPie"),Zf(Sp,"isPie");var Np="PieSection";function wp(e){return zp.isInstance(e,Np)}e(wp,"isPieSection"),Zf(wp,"isPieSection");var Lp="Radar",bp="Service",Op="Treemap";function Pp(e){return zp.isInstance(e,Op)}e(Pp,"isTreemap"),Zf(Pp,"isTreemap");var _p,Dp,Mp,Fp,Up,Gp,Bp,Kp="TreemapRow",Vp="Direction",jp="Leaf",Wp="Section",Hp=class extends Q{static{e(this,"MermaidAstReflection")}static{Zf(this,"MermaidAstReflection")}getAllTypes(){return[ep,rp,np,ap,sp,op,lp,cp,Vp,dp,hp,fp,mp,gp,Tp,vp,jp,Rp,kp,Ep,xp,Ip,Np,Lp,Wp,bp,Qf,Op,Kp]}computeIsSubtype(e,t){switch(e){case np:case ap:case sp:case lp:case Rp:return this.isSubtype(Qf,t);case Vp:return this.isSubtype(fp,t);case jp:case Wp:return this.isSubtype(Tp,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;if("Entry:axis"===t)return rp;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case ep:return{name:ep,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case rp:return{name:rp,properties:[{name:"label"},{name:"name"}]};case np:return{name:np,properties:[{name:"name"},{name:"order"}]};case ap:return{name:ap,properties:[{name:"branch"}]};case sp:return{name:sp,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case op:return{name:op,properties:[{name:"className"},{name:"styleText"}]};case lp:return{name:lp,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case cp:return{name:cp,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case dp:return{name:dp,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case hp:return{name:hp,properties:[{name:"axis"},{name:"value"}]};case fp:return{name:fp,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case mp:return{name:mp,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case gp:return{name:gp,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case Tp:return{name:Tp,properties:[{name:"classSelector"},{name:"name"}]};case vp:return{name:vp,properties:[{name:"id"},{name:"in"}]};case Rp:return{name:Rp,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case kp:return{name:kp,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case Ep:return{name:Ep,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case xp:return{name:xp,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case Ip:return{name:Ip,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case Np:return{name:Np,properties:[{name:"label"},{name:"value"}]};case Lp:return{name:Lp,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case bp:return{name:bp,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Op:return{name:Op,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Kp:return{name:Kp,properties:[{name:"indent"},{name:"item"}]};case Vp:return{name:Vp,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case jp:return{name:jp,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case Wp:return{name:Wp,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},zp=new Hp,qp=Zf(()=>_p??(_p=Xf('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"InfoGrammar"),Yp=Zf(()=>Dp??(Dp=Xf('{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PacketGrammar"),Xp=Zf(()=>Mp??(Mp=Xf('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PieGrammar"),Jp=Zf(()=>Fp??(Fp=Xf('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),Zp=Zf(()=>Up??(Up=Xf('{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"GitGraphGrammar"),Qp=Zf(()=>Gp??(Gp=Xf('{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}')),"RadarGrammar"),em=Zf(()=>Bp??(Bp=Xf('{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}')),"TreemapGrammar"),tm={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},rm={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},nm={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},im={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},am={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},sm={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},om={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},lm={AstReflection:Zf(()=>new Hp,"AstReflection")},um={Grammar:Zf(()=>qp(),"Grammar"),LanguageMetaData:Zf(()=>tm,"LanguageMetaData"),parser:{}},cm={Grammar:Zf(()=>Yp(),"Grammar"),LanguageMetaData:Zf(()=>rm,"LanguageMetaData"),parser:{}},dm={Grammar:Zf(()=>Xp(),"Grammar"),LanguageMetaData:Zf(()=>nm,"LanguageMetaData"),parser:{}},hm={Grammar:Zf(()=>Jp(),"Grammar"),LanguageMetaData:Zf(()=>im,"LanguageMetaData"),parser:{}},fm={Grammar:Zf(()=>Zp(),"Grammar"),LanguageMetaData:Zf(()=>am,"LanguageMetaData"),parser:{}},pm={Grammar:Zf(()=>Qp(),"Grammar"),LanguageMetaData:Zf(()=>sm,"LanguageMetaData"),parser:{}},mm={Grammar:Zf(()=>em(),"Grammar"),LanguageMetaData:Zf(()=>om,"LanguageMetaData"),parser:{}},gm={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},ym=class extends Pd{static{e(this,"AbstractMermaidValueConverter")}static{Zf(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let n=this.runCommonConverter(e,t,r);return void 0===n&&(n=this.runCustomConverter(e,t,r)),void 0===n?super.runConverter(e,t,r):n}runCommonConverter(e,t,r){let n=gm[e.name];if(void 0===n)return;let i=n.exec(t);if(null!==i){if(void 0!==i[1])return i[1].trim().replace(/[\t ]{2,}/gm," ");if(void 0!==i[2])return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n")}}},Tm=class extends ym{static{e(this,"CommonValueConverter")}static{Zf(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},vm=class extends Od{static{e(this,"AbstractMermaidTokenBuilder")}static{Zf(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let n=super.buildKeywordTokens(e,t,r);return n.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=new RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}};(class extends vm{static{e(this,"CommonTokenBuilder")}static{Zf(this,"CommonTokenBuilder")}});var Rm={},Am={info:Zf(async()=>{let{createInfoServices:e}=await Promise.resolve().then(function(){return Jm}),t=e().Info.parser.LangiumParser;Rm.info=t},"info"),packet:Zf(async()=>{let{createPacketServices:e}=await Promise.resolve().then(function(){return Zm}),t=e().Packet.parser.LangiumParser;Rm.packet=t},"packet"),pie:Zf(async()=>{let{createPieServices:e}=await Promise.resolve().then(function(){return Qm}),t=e().Pie.parser.LangiumParser;Rm.pie=t},"pie"),architecture:Zf(async()=>{let{createArchitectureServices:e}=await Promise.resolve().then(function(){return eg}),t=e().Architecture.parser.LangiumParser;Rm.architecture=t},"architecture"),gitGraph:Zf(async()=>{let{createGitGraphServices:e}=await Promise.resolve().then(function(){return tg}),t=e().GitGraph.parser.LangiumParser;Rm.gitGraph=t},"gitGraph"),radar:Zf(async()=>{let{createRadarServices:e}=await Promise.resolve().then(function(){return rg}),t=e().Radar.parser.LangiumParser;Rm.radar=t},"radar"),treemap:Zf(async()=>{let{createTreemapServices:e}=await Promise.resolve().then(function(){return ng}),t=e().Treemap.parser.LangiumParser;Rm.treemap=t},"treemap")};async function km(e,t){let r=Am[e];if(!r)throw new Error(`Unknown diagram type: ${e}`);Rm[e]||await r();let n=Rm[e].parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new Em(n);return n.value}e(km,"parse"),Zf(km,"parse");var Em=class extends Error{static{e(this,"MermaidParseError")}constructor(e){super(`Parsing failed: ${e.lexerErrors.map(e=>e.message).join("\n")} ${e.parserErrors.map(e=>e.message).join("\n")}`),this.result=e}static{Zf(this,"MermaidParseError")}},$m=class extends vm{static{e(this,"PacketTokenBuilder")}static{Zf(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},xm={parser:{TokenBuilder:Zf(()=>new $m,"TokenBuilder"),ValueConverter:Zf(()=>new Tm,"ValueConverter")}};function Cm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),cm,xm);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}e(Cm,"createPacketServices"),Zf(Cm,"createPacketServices");var Im=class extends vm{static{e(this,"PieTokenBuilder")}static{Zf(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},Sm=class extends ym{static{e(this,"PieValueConverter")}static{Zf(this,"PieValueConverter")}runCustomConverter(e,t,r){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},Nm={parser:{TokenBuilder:Zf(()=>new Im,"TokenBuilder"),ValueConverter:Zf(()=>new Sm,"ValueConverter")}};function wm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),dm,Nm);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}e(wm,"createPieServices"),Zf(wm,"createPieServices");var Lm=class extends vm{static{e(this,"ArchitectureTokenBuilder")}static{Zf(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},bm=class extends ym{static{e(this,"ArchitectureValueConverter")}static{Zf(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){return"ARCH_ICON"===e.name?t.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===e.name?t.replace(/["()]/g,""):"ARCH_TITLE"===e.name?t.replace(/[[\]]/g,"").trim():void 0}},Om={parser:{TokenBuilder:Zf(()=>new Lm,"TokenBuilder"),ValueConverter:Zf(()=>new bm,"ValueConverter")}};function Pm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),hm,Om);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}e(Pm,"createArchitectureServices"),Zf(Pm,"createArchitectureServices");var _m=class extends vm{static{e(this,"GitGraphTokenBuilder")}static{Zf(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},Dm={parser:{TokenBuilder:Zf(()=>new _m,"TokenBuilder"),ValueConverter:Zf(()=>new Tm,"ValueConverter")}};function Mm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),fm,Dm);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}e(Mm,"createGitGraphServices"),Zf(Mm,"createGitGraphServices");var Fm=class extends vm{static{e(this,"RadarTokenBuilder")}static{Zf(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},Um={parser:{TokenBuilder:Zf(()=>new Fm,"TokenBuilder"),ValueConverter:Zf(()=>new Tm,"ValueConverter")}};function Gm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),pm,Um);return t.ServiceRegistry.register(r),{shared:t,Radar:r}}e(Gm,"createRadarServices"),Zf(Gm,"createRadarServices");var Bm=class extends vm{static{e(this,"TreemapTokenBuilder")}static{Zf(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},Km=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Vm=class extends ym{static{e(this,"TreemapValueConverter")}static{Zf(this,"TreemapValueConverter")}runCustomConverter(e,t,r){if("NUMBER2"===e.name)return parseFloat(t.replace(/,/g,""));if("SEPARATOR"===e.name)return t.substring(1,t.length-1);if("STRING2"===e.name)return t.substring(1,t.length-1);if("INDENTATION"===e.name)return t.length;if("ClassDef"===e.name){if("string"!=typeof t)return t;let e=Km.exec(t);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}};function jm(e){let t=e.validation.TreemapValidator,r=e.validation.ValidationRegistry;if(r){let e={Treemap:t.checkSingleRoot.bind(t)};r.register(e,t)}}e(jm,"registerValidationChecks"),Zf(jm,"registerValidationChecks");var Wm=class{static{e(this,"TreemapValidator")}static{Zf(this,"TreemapValidator")}checkSingleRoot(e,t){let r;for(let n of e.TreemapRows)n.item&&(void 0===r&&void 0===n.indent?r=0:(void 0===n.indent||void 0!==r&&r>=parseInt(n.indent,10))&&t("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},Hm={parser:{TokenBuilder:Zf(()=>new Bm,"TokenBuilder"),ValueConverter:Zf(()=>new Vm,"ValueConverter")},validation:{TreemapValidator:Zf(()=>new Wm,"TreemapValidator")}};function zm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),mm,Hm);return t.ServiceRegistry.register(r),jm(r),{shared:t,Treemap:r}}e(zm,"createTreemapServices"),Zf(zm,"createTreemapServices");var qm=class extends vm{static{e(this,"InfoTokenBuilder")}static{Zf(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},Ym={parser:{TokenBuilder:Zf(()=>new qm,"TokenBuilder"),ValueConverter:Zf(()=>new Tm,"ValueConverter")}};function Xm(e=Hf){let t=Of(bf(e),lm),r=Of(Lf({shared:t}),um,Ym);return t.ServiceRegistry.register(r),{shared:t,Info:r}}e(Xm,"createInfoServices"),Zf(Xm,"createInfoServices");var Jm=Object.freeze({__proto__:null,InfoModule:Ym,createInfoServices:Xm}),Zm=Object.freeze({__proto__:null,PacketModule:xm,createPacketServices:Cm}),Qm=Object.freeze({__proto__:null,PieModule:Nm,createPieServices:wm}),eg=Object.freeze({__proto__:null,ArchitectureModule:Om,createArchitectureServices:Pm}),tg=Object.freeze({__proto__:null,GitGraphModule:Dm,createGitGraphServices:Mm}),rg=Object.freeze({__proto__:null,RadarModule:Um,createRadarServices:Gm}),ng=Object.freeze({__proto__:null,TreemapModule:Hm,createTreemapServices:zm});export{km as p};
|
||
//# sourceMappingURL=treemap-KMMF4GRG-7ORZ52ND-DFBaIa1s.js.map
|