mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
12 lines • 329 kB
JavaScript
import{A as oe,B as lo,C as et,D as be,G as Dc,I as Ve,L as ce,M as Yt,O as Ns,R as Qn,S as Fc,a as fe,b as Rt,c as ke,d as he,e as te,g as Et,i as Jn,j as Xt,k as At,l as pe,m as Dt,n as I,o as Pe,p as Re,q as vt,r as Ie,s as E,t as Ne,w as Mc,x as N,y as Se,z as re}from"./chunk-5ZJXQJOJ.mjs";import{d as M}from"./chunk-YPUTD6PB.mjs";import{M as oo,d as bc,e as ot,z as ge}from"./chunk-6BY5RJGC.mjs";import{a,b as Is,c as qt,d as G,e as Pc}from"./chunk-GTKDMUJJ.mjs";var rc=Is(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var Zl;function ec(){if(Zl===void 0)throw new Error("No runtime abstraction layer installed");return Zl}a(ec,"RAL");(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");Zl=t}a(e,"install"),r.install=e})(ec||(ec={}));tc.default=ec});var Pf=Is(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.stringArray=Le.array=Le.func=Le.error=Le.number=Le.string=Le.boolean=void 0;function jm(r){return r===!0||r===!1}a(jm,"boolean");Le.boolean=jm;function Of(r){return typeof r=="string"||r instanceof String}a(Of,"string");Le.string=Of;function Vm(r){return typeof r=="number"||r instanceof Number}a(Vm,"number");Le.number=Vm;function Km(r){return r instanceof Error}a(Km,"error");Le.error=Km;function Hm(r){return typeof r=="function"}a(Hm,"func");Le.func=Hm;function $f(r){return Array.isArray(r)}a($f,"array");Le.array=$f;function zm(r){return $f(r)&&r.every(e=>Of(e))}a(zm,"stringArray");Le.stringArray=zm});var ic=Is(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.Emitter=jn.Event=void 0;var qm=rc(),bf;(function(r){let e={dispose(){}};r.None=function(){return e}})(bf||(jn.Event=bf={}));var nc=class{static{a(this,"CallbackList")}add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:a(()=>this.remove(e,t),"dispose")})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let i=0,s=this._callbacks.length;i<s;i++)if(this._callbacks[i]===e)if(this._contexts[i]===t){this._callbacks.splice(i,1),this._contexts.splice(i,1);return}else n=!0;if(n)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=[],n=this._callbacks.slice(0),i=this._contexts.slice(0);for(let s=0,o=n.length;s<o;s++)try{t.push(n[s].apply(i[s],e))}catch(l){(0,qm.default)().console.error(l)}return t}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},Pa=class r{static{a(this,"Emitter")}constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,n)=>{this._callbacks||(this._callbacks=new nc),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let i={dispose:a(()=>{this._callbacks&&(this._callbacks.remove(e,t),i.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};jn.Emitter=Pa;Pa._noop=function(){}});var Mf=Is(Vn=>{"use strict";Object.defineProperty(Vn,"__esModule",{value:!0});Vn.CancellationTokenSource=Vn.CancellationToken=void 0;var Xm=rc(),Ym=Pf(),sc=ic(),ba;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:sc.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:sc.Event.None});function e(t){let n=t;return n&&(n===r.None||n===r.Cancelled||Ym.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}a(e,"is"),r.is=e})(ba||(Vn.CancellationToken=ba={}));var Jm=Object.freeze(function(r,e){let t=(0,Xm.default)().timer.setTimeout(r.bind(e),0);return{dispose(){t.dispose()}}}),Ma=class{static{a(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?Jm:(this._emitter||(this._emitter=new sc.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},ac=class{static{a(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new Ma),this._token}cancel(){this._token?this._token.cancel():this._token=ba.Cancelled}dispose(){this._token?this._token instanceof Ma&&this._token.dispose():this._token=ba.None}};Vn.CancellationTokenSource=ac});var de={};qt(de,{AbstractAstReflection:()=>Jt,AbstractCstNode:()=>Wi,AbstractLangiumParser:()=>ji,AbstractParserErrorMessageProvider:()=>Oa,AbstractThreadedAsyncParser:()=>Tc,AstUtils:()=>Fs,BiMap:()=>xr,Cancellation:()=>_,CompositeCstNodeImpl:()=>gr,ContextCache:()=>Rr,CstNodeBuilder:()=>Bi,CstUtils:()=>_s,DEFAULT_TOKENIZE_OPTIONS:()=>Wa,DONE_RESULT:()=>Ce,DatatypeSymbol:()=>La,DefaultAstNodeDescriptionProvider:()=>as,DefaultAstNodeLocator:()=>ls,DefaultAsyncParser:()=>Ts,DefaultCommentProvider:()=>ys,DefaultConfigurationProvider:()=>cs,DefaultDocumentBuilder:()=>us,DefaultDocumentValidator:()=>ss,DefaultHydrator:()=>Rs,DefaultIndexManager:()=>ds,DefaultJsonSerializer:()=>rs,DefaultLangiumDocumentFactory:()=>zi,DefaultLangiumDocuments:()=>qi,DefaultLexer:()=>Ar,DefaultLexerErrorMessageProvider:()=>hs,DefaultLinker:()=>Xi,DefaultNameProvider:()=>Yi,DefaultReferenceDescriptionProvider:()=>os,DefaultReferences:()=>Ji,DefaultScopeComputation:()=>Qi,DefaultScopeProvider:()=>ts,DefaultServiceRegistry:()=>ns,DefaultTokenBuilder:()=>Pt,DefaultValueConverter:()=>Tr,DefaultWorkspaceLock:()=>xs,DefaultWorkspaceManager:()=>fs,Deferred:()=>Ue,Disposable:()=>Vt,DisposableCache:()=>qn,DocumentCache:()=>Ga,DocumentState:()=>Y,DocumentValidator:()=>Qe,EMPTY_SCOPE:()=>Zm,EMPTY_STREAM:()=>ei,EmptyFileSystem:()=>Ic,EmptyFileSystemProvider:()=>Xa,ErrorWithLocation:()=>tr,GrammarAST:()=>ci,GrammarUtils:()=>js,IndentationAwareLexer:()=>kc,IndentationAwareTokenBuilder:()=>qa,JSDocDocumentationProvider:()=>gs,LangiumCompletionParser:()=>Ki,LangiumParser:()=>Vi,LangiumParserErrorMessageProvider:()=>Wn,LeafCstNodeImpl:()=>mr,LexingMode:()=>vr,MapScope:()=>Zi,Module:()=>Ac,MultiMap:()=>st,OperationCancelled:()=>mt,ParserWorker:()=>xc,Reduction:()=>Nr,RegExpUtils:()=>Bs,RootCstNodeImpl:()=>Bn,SimpleCache:()=>es,StreamImpl:()=>Ke,StreamScope:()=>zn,TextDocument:()=>Kn,TreeStreamImpl:()=>lt,URI:()=>Ge,UriUtils:()=>Be,ValidationCategory:()=>Yn,ValidationRegistry:()=>is,ValueConverter:()=>pt,WorkspaceCache:()=>Xn,assertUnreachable:()=>ut,createCompletionParser:()=>Jl,createDefaultCoreModule:()=>Rc,createDefaultSharedCoreModule:()=>Ec,createGrammarConfig:()=>el,createLangiumParser:()=>Ql,createParser:()=>Hi,delayNextTick:()=>oc,diagnosticData:()=>Er,eagerLoad:()=>rh,getDiagnosticRange:()=>Kf,indentationBuilderDefaultOptions:()=>vc,inject:()=>za,interruptAndCheck:()=>ue,isAstNode:()=>le,isAstNodeDescription:()=>co,isAstNodeWithComment:()=>uc,isCompositeCstNode:()=>tt,isIMultiModeLexerDefinition:()=>fc,isJSDoc:()=>gc,isLeafCstNode:()=>Ft,isLinkingError:()=>Qt,isNamed:()=>jf,isOperationCancelled:()=>gt,isReference:()=>Ee,isRootCstNode:()=>Zn,isTokenTypeArray:()=>ja,isTokenTypeDictionary:()=>dc,loadGrammarFromJson:()=>Kt,parseJSDoc:()=>mc,prepareLangiumParser:()=>Lf,setInterruptionPeriod:()=>Ff,startCancelableOperation:()=>Fa,stream:()=>K,toDiagnosticData:()=>Hf,toDiagnosticSeverity:()=>Ba});var _s={};qt(_s,{DefaultNameRegexp:()=>Cs,RangeComparison:()=>ct,compareRange:()=>Gc,findCommentNode:()=>po,findDeclarationNodeAtOffset:()=>ph,findLeafNodeAtOffset:()=>mo,findLeafNodeBeforeOffset:()=>Bc,flattenCst:()=>hh,getInteriorNodes:()=>yh,getNextNode:()=>mh,getPreviousNode:()=>jc,getStartlineNode:()=>gh,inRange:()=>ho,isChildNode:()=>fo,isCommentNode:()=>uo,streamCst:()=>Zt,toDocumentSegment:()=>er,tokenToRange:()=>Sr});function le(r){return typeof r=="object"&&r!==null&&typeof r.$type=="string"}a(le,"isAstNode");function Ee(r){return typeof r=="object"&&r!==null&&typeof r.$refText=="string"}a(Ee,"isReference");function co(r){return typeof r=="object"&&r!==null&&typeof r.name=="string"&&typeof r.type=="string"&&typeof r.path=="string"}a(co,"isAstNodeDescription");function Qt(r){return typeof r=="object"&&r!==null&&le(r.container)&&Ee(r.reference)&&typeof r.message=="string"}a(Qt,"isLinkingError");var Jt=class{static{a(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return le(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[t];if(i!==void 0)return i;{let s=this.computeIsSubtype(e,t);return n[t]=s,s}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let n=this.getAllTypes(),i=[];for(let s of n)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}};function tt(r){return typeof r=="object"&&r!==null&&Array.isArray(r.content)}a(tt,"isCompositeCstNode");function Ft(r){return typeof r=="object"&&r!==null&&typeof r.tokenType=="object"}a(Ft,"isLeafCstNode");function Zn(r){return tt(r)&&typeof r.fullText=="string"}a(Zn,"isRootCstNode");var Ke=class r{static{a(this,"StreamImpl")}constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:a(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){let e=[],t=this.iterator(),n;do n=t.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){let n=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new r(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let n;if(!t.firstDone){do if(n=this.nextFn(t.first),!n.done)return n;while(!n.done);t.firstDone=!0}do if(n=t.iterator.next(),!n.done)return n;while(!n.done);return Ce})}join(e=","){let t=this.iterator(),n="",i,s=!1;do i=t.next(),i.done||(s&&(n+=e),n+=fh(i.value)),s=!0;while(!i.done);return n}indexOf(e,t=0){let n=this.iterator(),i=0,s=n.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=n.next(),i++}return-1}every(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){let t=this.iterator(),n=0,i=t.next();for(;!i.done;)e(i.value,n),i=t.next(),n++}map(e){return new r(this.startFn,t=>{let{done:n,value:i}=this.nextFn(t);return n?Ce:{done:!1,value:e(i)}})}filter(e){return new r(this.startFn,t=>{let n;do if(n=this.nextFn(t),!n.done&&e(n.value))return n;while(!n.done);return Ce})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){let n=this.iterator(),i=t,s=n.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=n.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){let i=e.next();if(i.done)return n;let s=this.recursiveReduce(e,t,n);return s===void 0?i.value:t(s,i.value)}find(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){let t=this.iterator(),n=0,i=t.next();for(;!i.done;){if(e(i.value))return n;i=t.next(),n++}return-1}includes(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new r(()=>({this:this.startFn()}),t=>{do{if(t.iterator){let s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}let{done:n,value:i}=this.nextFn(t.this);if(!n){let s=e(i);if(Ss(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Ce})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let t=e>1?this.flat(e-1):this;return new r(()=>({this:t.startFn()}),n=>{do{if(n.iterator){let o=n.iterator.next();if(o.done)n.iterator=void 0;else return o}let{done:i,value:s}=t.nextFn(n.this);if(!i)if(Ss(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(n.iterator);return Ce})}head(){let t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new r(()=>{let t=this.startFn();for(let n=0;n<e;n++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new r(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Ce:this.nextFn(t.state)))}distinct(e){return new r(()=>({set:new Set,internalState:this.startFn()}),t=>{let n;do if(n=this.nextFn(t.internalState),!n.done){let i=e?e(n.value):n.value;if(!t.set.has(i))return t.set.add(i),n}while(!n.done);return Ce})}exclude(e,t){let n=new Set;for(let i of e){let s=t?t(i):i;n.add(s)}return this.filter(i=>{let s=t?t(i):i;return!n.has(s)})}};function fh(r){return typeof r=="string"?r:typeof r>"u"?"undefined":typeof r.toString=="function"?r.toString():Object.prototype.toString.call(r)}a(fh,"toString");function Ss(r){return!!r&&typeof r[Symbol.iterator]=="function"}a(Ss,"isIterable");var ei=new Ke(()=>{},()=>Ce),Ce=Object.freeze({done:!0,value:void 0});function K(...r){if(r.length===1){let e=r[0];if(e instanceof Ke)return e;if(Ss(e))return new Ke(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Ke(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Ce)}return r.length>1?new Ke(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<r.length){let t=r[e.collIndex++];Ss(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<r.length);return Ce}):ei}a(K,"stream");var lt=class extends Ke{static{a(this,"TreeStreamImpl")}constructor(e,t,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let o=i.iterators[i.iterators.length-1].next();if(o.done)i.iterators.pop();else return i.iterators.push(t(o.value)[Symbol.iterator]()),o}return Ce})}iterator(){let e={state:this.startFn(),next:a(()=>this.nextFn(e.state),"next"),prune:a(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}},Nr;(function(r){function e(s){return s.reduce((o,l)=>o+l,0)}a(e,"sum"),r.sum=e;function t(s){return s.reduce((o,l)=>o*l,0)}a(t,"product"),r.product=t;function n(s){return s.reduce((o,l)=>Math.min(o,l))}a(n,"min"),r.min=n;function i(s){return s.reduce((o,l)=>Math.max(o,l))}a(i,"max"),r.max=i})(Nr||(Nr={}));function Zt(r){return new lt(r,e=>tt(e)?e.content:[],{includeRoot:!0})}a(Zt,"streamCst");function hh(r){return Zt(r).filter(Ft)}a(hh,"flattenCst");function fo(r,e){for(;r.container;)if(r=r.container,r===e)return!0;return!1}a(fo,"isChildNode");function Sr(r){return{start:{character:r.startColumn-1,line:r.startLine-1},end:{character:r.endColumn,line:r.endLine-1}}}a(Sr,"tokenToRange");function er(r){if(!r)return;let{offset:e,end:t,range:n}=r;return{range:n,offset:e,end:t,length:t-e}}a(er,"toDocumentSegment");var ct;(function(r){r[r.Before=0]="Before",r[r.After=1]="After",r[r.OverlapFront=2]="OverlapFront",r[r.OverlapBack=3]="OverlapBack",r[r.Inside=4]="Inside",r[r.Outside=5]="Outside"})(ct||(ct={}));function Gc(r,e){if(r.end.line<e.start.line||r.end.line===e.start.line&&r.end.character<=e.start.character)return ct.Before;if(r.start.line>e.end.line||r.start.line===e.end.line&&r.start.character>=e.end.character)return ct.After;let t=r.start.line>e.start.line||r.start.line===e.start.line&&r.start.character>=e.start.character,n=r.end.line<e.end.line||r.end.line===e.end.line&&r.end.character<=e.end.character;return t&&n?ct.Inside:t?ct.OverlapBack:n?ct.OverlapFront:ct.Outside}a(Gc,"compareRange");function ho(r,e){return Gc(r,e)>ct.After}a(ho,"inRange");var Cs=/^[\w\p{L}]$/u;function ph(r,e,t=Cs){if(r){if(e>0){let n=e-r.offset,i=r.text.charAt(n);t.test(i)||e--}return mo(r,e)}}a(ph,"findDeclarationNodeAtOffset");function po(r,e){if(r){let t=jc(r,!0);if(t&&uo(t,e))return t;if(Zn(r)){let n=r.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let s=r.content[i];if(uo(s,e))return s}}}}a(po,"findCommentNode");function uo(r,e){return Ft(r)&&e.includes(r.tokenType.name)}a(uo,"isCommentNode");function mo(r,e){if(Ft(r))return r;if(tt(r)){let t=Wc(r,e,!1);if(t)return mo(t,e)}}a(mo,"findLeafNodeAtOffset");function Bc(r,e){if(Ft(r))return r;if(tt(r)){let t=Wc(r,e,!0);if(t)return Bc(t,e)}}a(Bc,"findLeafNodeBeforeOffset");function Wc(r,e,t){let n=0,i=r.content.length-1,s;for(;n<=i;){let o=Math.floor((n+i)/2),l=r.content[o];if(l.offset<=e&&l.end>e)return l;l.end<=e?(s=t?l:void 0,n=o+1):i=o-1}return s}a(Wc,"binarySearch");function jc(r,e=!0){for(;r.container;){let t=r.container,n=t.content.indexOf(r);for(;n>0;){n--;let i=t.content[n];if(e||!i.hidden)return i}r=t}}a(jc,"getPreviousNode");function mh(r,e=!0){for(;r.container;){let t=r.container,n=t.content.indexOf(r),i=t.content.length-1;for(;n<i;){n++;let s=t.content[n];if(e||!s.hidden)return s}r=t}}a(mh,"getNextNode");function gh(r){if(r.range.start.character===0)return r;let e=r.range.start.line,t=r,n;for(;r.container;){let i=r.container,s=n??i.content.indexOf(r);if(s===0?(r=i,n=void 0):(n=s-1,r=i.content[n]),r.range.start.line!==e)break;t=r}return t}a(gh,"getStartlineNode");function yh(r,e){let t=Th(r,e);return t?t.parent.content.slice(t.a+1,t.b):[]}a(yh,"getInteriorNodes");function Th(r,e){let t=Uc(r),n=Uc(e),i;for(let s=0;s<t.length&&s<n.length;s++){let o=t[s],l=n[s];if(o.parent===l.parent)i={parent:o.parent,a:o.index,b:l.index};else break}return i}a(Th,"getCommonParent");function Uc(r){let e=[];for(;r.container;){let t=r.container,n=t.content.indexOf(r);e.push({parent:t,index:n}),r=t}return e.reverse()}a(Uc,"getParentChain");var js={};qt(js,{findAssignment:()=>Jo,findNameAssignment:()=>Ws,findNodeForKeyword:()=>Xo,findNodeForProperty:()=>gi,findNodesForKeyword:()=>Uh,findNodesForKeywordInternal:()=>Yo,findNodesForProperty:()=>zo,getActionAtElement:()=>Zc,getActionType:()=>tu,getAllReachableRules:()=>mi,getCrossReferenceTerminal:()=>Ko,getEntryRule:()=>Xc,getExplicitRuleType:()=>yn,getHiddenRules:()=>Yc,getRuleType:()=>Qo,getRuleTypeName:()=>Vh,getTypeName:()=>Ti,isArrayCardinality:()=>Bh,isArrayOperator:()=>Wh,isCommentTerminal:()=>Ho,isDataType:()=>jh,isDataTypeRule:()=>yi,isOptionalCardinality:()=>Gh,terminalRegex:()=>Tn});var tr=class extends Error{static{a(this,"ErrorWithLocation")}constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function ut(r){throw new Error("Error! The input value was not handled.")}a(ut,"assertUnreachable");var ci={};qt(ci,{AbstractElement:()=>wr,AbstractRule:()=>Cr,AbstractType:()=>_r,Action:()=>Xr,Alternatives:()=>Yr,ArrayLiteral:()=>Lr,ArrayType:()=>Or,Assignment:()=>Jr,BooleanLiteral:()=>$r,CharacterRange:()=>Qr,Condition:()=>ti,Conjunction:()=>Pr,CrossReference:()=>Zr,Disjunction:()=>br,EndOfFile:()=>en,Grammar:()=>Mr,GrammarImport:()=>ni,Group:()=>tn,InferredType:()=>Dr,Interface:()=>Fr,Keyword:()=>rn,LangiumGrammarAstReflection:()=>hn,LangiumGrammarTerminals:()=>xh,NamedArgument:()=>ii,NegatedToken:()=>nn,Negation:()=>Ur,NumberLiteral:()=>Gr,Parameter:()=>Br,ParameterReference:()=>Wr,ParserRule:()=>jr,ReferenceType:()=>Vr,RegexToken:()=>sn,ReturnType:()=>si,RuleCall:()=>an,SimpleType:()=>Kr,StringLiteral:()=>Hr,TerminalAlternatives:()=>on,TerminalGroup:()=>ln,TerminalRule:()=>rr,TerminalRuleCall:()=>cn,Type:()=>zr,TypeAttribute:()=>ai,TypeDefinition:()=>ws,UnionType:()=>qr,UnorderedGroup:()=>un,UntilToken:()=>dn,ValueLiteral:()=>ri,Wildcard:()=>fn,isAbstractElement:()=>oi,isAbstractRule:()=>Rh,isAbstractType:()=>Eh,isAction:()=>kt,isAlternatives:()=>Ps,isArrayLiteral:()=>Nh,isArrayType:()=>go,isAssignment:()=>rt,isBooleanLiteral:()=>yo,isCharacterRange:()=>Io,isCondition:()=>Ah,isConjunction:()=>To,isCrossReference:()=>nr,isDisjunction:()=>xo,isEndOfFile:()=>No,isFeatureName:()=>vh,isGrammar:()=>Sh,isGrammarImport:()=>Ch,isGroup:()=>Ut,isInferredType:()=>Ls,isInterface:()=>Os,isKeyword:()=>Ye,isNamedArgument:()=>_h,isNegatedToken:()=>So,isNegation:()=>Ro,isNumberLiteral:()=>wh,isParameter:()=>Lh,isParameterReference:()=>Eo,isParserRule:()=>_e,isPrimitiveType:()=>Vc,isReferenceType:()=>Ao,isRegexToken:()=>Co,isReturnType:()=>vo,isRuleCall:()=>nt,isSimpleType:()=>$s,isStringLiteral:()=>Oh,isTerminalAlternatives:()=>_o,isTerminalGroup:()=>wo,isTerminalRule:()=>He,isTerminalRuleCall:()=>bs,isType:()=>li,isTypeAttribute:()=>$h,isTypeDefinition:()=>kh,isUnionType:()=>ko,isUnorderedGroup:()=>Ms,isUntilToken:()=>Lo,isValueLiteral:()=>Ih,isWildcard:()=>Oo,reflection:()=>L});var xh={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]*/},Cr="AbstractRule";function Rh(r){return L.isInstance(r,Cr)}a(Rh,"isAbstractRule");var _r="AbstractType";function Eh(r){return L.isInstance(r,_r)}a(Eh,"isAbstractType");var ti="Condition";function Ah(r){return L.isInstance(r,ti)}a(Ah,"isCondition");function vh(r){return Vc(r)||r==="current"||r==="entry"||r==="extends"||r==="false"||r==="fragment"||r==="grammar"||r==="hidden"||r==="import"||r==="interface"||r==="returns"||r==="terminal"||r==="true"||r==="type"||r==="infer"||r==="infers"||r==="with"||typeof r=="string"&&/\^?[_a-zA-Z][\w_]*/.test(r)}a(vh,"isFeatureName");function Vc(r){return r==="string"||r==="number"||r==="boolean"||r==="Date"||r==="bigint"}a(Vc,"isPrimitiveType");var ws="TypeDefinition";function kh(r){return L.isInstance(r,ws)}a(kh,"isTypeDefinition");var ri="ValueLiteral";function Ih(r){return L.isInstance(r,ri)}a(Ih,"isValueLiteral");var wr="AbstractElement";function oi(r){return L.isInstance(r,wr)}a(oi,"isAbstractElement");var Lr="ArrayLiteral";function Nh(r){return L.isInstance(r,Lr)}a(Nh,"isArrayLiteral");var Or="ArrayType";function go(r){return L.isInstance(r,Or)}a(go,"isArrayType");var $r="BooleanLiteral";function yo(r){return L.isInstance(r,$r)}a(yo,"isBooleanLiteral");var Pr="Conjunction";function To(r){return L.isInstance(r,Pr)}a(To,"isConjunction");var br="Disjunction";function xo(r){return L.isInstance(r,br)}a(xo,"isDisjunction");var Mr="Grammar";function Sh(r){return L.isInstance(r,Mr)}a(Sh,"isGrammar");var ni="GrammarImport";function Ch(r){return L.isInstance(r,ni)}a(Ch,"isGrammarImport");var Dr="InferredType";function Ls(r){return L.isInstance(r,Dr)}a(Ls,"isInferredType");var Fr="Interface";function Os(r){return L.isInstance(r,Fr)}a(Os,"isInterface");var ii="NamedArgument";function _h(r){return L.isInstance(r,ii)}a(_h,"isNamedArgument");var Ur="Negation";function Ro(r){return L.isInstance(r,Ur)}a(Ro,"isNegation");var Gr="NumberLiteral";function wh(r){return L.isInstance(r,Gr)}a(wh,"isNumberLiteral");var Br="Parameter";function Lh(r){return L.isInstance(r,Br)}a(Lh,"isParameter");var Wr="ParameterReference";function Eo(r){return L.isInstance(r,Wr)}a(Eo,"isParameterReference");var jr="ParserRule";function _e(r){return L.isInstance(r,jr)}a(_e,"isParserRule");var Vr="ReferenceType";function Ao(r){return L.isInstance(r,Vr)}a(Ao,"isReferenceType");var si="ReturnType";function vo(r){return L.isInstance(r,si)}a(vo,"isReturnType");var Kr="SimpleType";function $s(r){return L.isInstance(r,Kr)}a($s,"isSimpleType");var Hr="StringLiteral";function Oh(r){return L.isInstance(r,Hr)}a(Oh,"isStringLiteral");var rr="TerminalRule";function He(r){return L.isInstance(r,rr)}a(He,"isTerminalRule");var zr="Type";function li(r){return L.isInstance(r,zr)}a(li,"isType");var ai="TypeAttribute";function $h(r){return L.isInstance(r,ai)}a($h,"isTypeAttribute");var qr="UnionType";function ko(r){return L.isInstance(r,qr)}a(ko,"isUnionType");var Xr="Action";function kt(r){return L.isInstance(r,Xr)}a(kt,"isAction");var Yr="Alternatives";function Ps(r){return L.isInstance(r,Yr)}a(Ps,"isAlternatives");var Jr="Assignment";function rt(r){return L.isInstance(r,Jr)}a(rt,"isAssignment");var Qr="CharacterRange";function Io(r){return L.isInstance(r,Qr)}a(Io,"isCharacterRange");var Zr="CrossReference";function nr(r){return L.isInstance(r,Zr)}a(nr,"isCrossReference");var en="EndOfFile";function No(r){return L.isInstance(r,en)}a(No,"isEndOfFile");var tn="Group";function Ut(r){return L.isInstance(r,tn)}a(Ut,"isGroup");var rn="Keyword";function Ye(r){return L.isInstance(r,rn)}a(Ye,"isKeyword");var nn="NegatedToken";function So(r){return L.isInstance(r,nn)}a(So,"isNegatedToken");var sn="RegexToken";function Co(r){return L.isInstance(r,sn)}a(Co,"isRegexToken");var an="RuleCall";function nt(r){return L.isInstance(r,an)}a(nt,"isRuleCall");var on="TerminalAlternatives";function _o(r){return L.isInstance(r,on)}a(_o,"isTerminalAlternatives");var ln="TerminalGroup";function wo(r){return L.isInstance(r,ln)}a(wo,"isTerminalGroup");var cn="TerminalRuleCall";function bs(r){return L.isInstance(r,cn)}a(bs,"isTerminalRuleCall");var un="UnorderedGroup";function Ms(r){return L.isInstance(r,un)}a(Ms,"isUnorderedGroup");var dn="UntilToken";function Lo(r){return L.isInstance(r,dn)}a(Lo,"isUntilToken");var fn="Wildcard";function Oo(r){return L.isInstance(r,fn)}a(Oo,"isWildcard");var hn=class extends Jt{static{a(this,"LangiumGrammarAstReflection")}getAllTypes(){return[wr,Cr,_r,Xr,Yr,Lr,Or,Jr,$r,Qr,ti,Pr,Zr,br,en,Mr,ni,tn,Dr,Fr,rn,ii,nn,Ur,Gr,Br,Wr,jr,Vr,sn,si,an,Kr,Hr,on,ln,rr,cn,zr,ai,ws,qr,un,dn,ri,fn]}computeIsSubtype(e,t){switch(e){case Xr:case Yr:case Jr:case Qr:case Zr:case en:case tn:case rn:case nn:case sn:case an:case on:case ln:case cn:case un:case dn:case fn:return this.isSubtype(wr,t);case Lr:case Gr:case Hr:return this.isSubtype(ri,t);case Or:case Vr:case Kr:case qr:return this.isSubtype(ws,t);case $r:return this.isSubtype(ti,t)||this.isSubtype(ri,t);case Pr:case br:case Ur:case Wr:return this.isSubtype(ti,t);case Dr:case Fr:case zr:return this.isSubtype(_r,t);case jr:return this.isSubtype(Cr,t)||this.isSubtype(_r,t);case rr:return this.isSubtype(Cr,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 _r;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Cr;case"Grammar:usedGrammars":return Mr;case"NamedArgument:parameter":case"ParameterReference:parameter":return Br;case"TerminalRuleCall:rule":return rr;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case wr:return{name:wr,properties:[{name:"cardinality"},{name:"lookahead"}]};case Lr:return{name:Lr,properties:[{name:"elements",defaultValue:[]}]};case Or:return{name:Or,properties:[{name:"elementType"}]};case $r:return{name:$r,properties:[{name:"true",defaultValue:!1}]};case Pr:return{name:Pr,properties:[{name:"left"},{name:"right"}]};case br:return{name:br,properties:[{name:"left"},{name:"right"}]};case Mr:return{name:Mr,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 ni:return{name:ni,properties:[{name:"path"}]};case Dr:return{name:Dr,properties:[{name:"name"}]};case Fr:return{name:Fr,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case ii:return{name:ii,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Ur:return{name:Ur,properties:[{name:"value"}]};case Gr:return{name:Gr,properties:[{name:"value"}]};case Br:return{name:Br,properties:[{name:"name"}]};case Wr:return{name:Wr,properties:[{name:"parameter"}]};case jr:return{name:jr,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 Vr:return{name:Vr,properties:[{name:"referenceType"}]};case si:return{name:si,properties:[{name:"name"}]};case Kr:return{name:Kr,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Hr:return{name:Hr,properties:[{name:"value"}]};case rr:return{name:rr,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case zr:return{name:zr,properties:[{name:"name"},{name:"type"}]};case ai:return{name:ai,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case qr:return{name:qr,properties:[{name:"types",defaultValue:[]}]};case Xr:return{name:Xr,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Yr:return{name:Yr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Jr:return{name:Jr,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Qr:return{name:Qr,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Zr:return{name:Zr,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case en:return{name:en,properties:[{name:"cardinality"},{name:"lookahead"}]};case tn:return{name:tn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case rn:return{name:rn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case nn:return{name:nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case sn:return{name:sn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case an:return{name:an,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case on:return{name:on,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ln:return{name:ln,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case cn:return{name:cn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case un:return{name:un,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case dn:return{name:dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case fn:return{name:fn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},L=new hn;var Fs={};qt(Fs,{assignMandatoryProperties:()=>bo,copyAstNode:()=>Po,findLocalReferences:()=>bh,findRootNode:()=>ui,getContainerOfType:()=>ir,getDocument:()=>we,hasContainerOfType:()=>Ph,linkContentToContainer:()=>Ds,streamAllContents:()=>dt,streamAst:()=>Je,streamContents:()=>di,streamReferences:()=>pn});function Ds(r){for(let[e,t]of Object.entries(r))e.startsWith("$")||(Array.isArray(t)?t.forEach((n,i)=>{le(n)&&(n.$container=r,n.$containerProperty=e,n.$containerIndex=i)}):le(t)&&(t.$container=r,t.$containerProperty=e))}a(Ds,"linkContentToContainer");function ir(r,e){let t=r;for(;t;){if(e(t))return t;t=t.$container}}a(ir,"getContainerOfType");function Ph(r,e){let t=r;for(;t;){if(e(t))return!0;t=t.$container}return!1}a(Ph,"hasContainerOfType");function we(r){let t=ui(r).$document;if(!t)throw new Error("AST node has no document.");return t}a(we,"getDocument");function ui(r){for(;r.$container;)r=r.$container;return r}a(ui,"findRootNode");function di(r,e){if(!r)throw new Error("Node must be an AstNode.");let t=e?.range;return new Ke(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){let i=n.keys[n.keyIndex];if(!i.startsWith("$")){let s=r[i];if(le(s)){if(n.keyIndex++,$o(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;n.arrayIndex<s.length;){let o=n.arrayIndex++,l=s[o];if(le(l)&&$o(l,t))return{done:!1,value:l}}n.arrayIndex=0}}n.keyIndex++}return Ce})}a(di,"streamContents");function dt(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new lt(r,t=>di(t,e))}a(dt,"streamAllContents");function Je(r,e){if(r){if(e?.range&&!$o(r,e.range))return new lt(r,()=>[])}else throw new Error("Root node must be an AstNode.");return new lt(r,t=>di(t,e),{includeRoot:!0})}a(Je,"streamAst");function $o(r,e){var t;if(!e)return!0;let n=(t=r.$cstNode)===null||t===void 0?void 0:t.range;return n?ho(n,e):!1}a($o,"isAstNodeInRange");function pn(r){return new Ke(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){let t=e.keys[e.keyIndex];if(!t.startsWith("$")){let n=r[t];if(Ee(n))return e.keyIndex++,{done:!1,value:{reference:n,container:r,property:t}};if(Array.isArray(n)){for(;e.arrayIndex<n.length;){let i=e.arrayIndex++,s=n[i];if(Ee(s))return{done:!1,value:{reference:s,container:r,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Ce})}a(pn,"streamReferences");function bh(r,e=we(r).parseResult.value){let t=[];return Je(e).forEach(n=>{pn(n).forEach(i=>{i.reference.ref===r&&t.push(i.reference)})}),K(t)}a(bh,"findLocalReferences");function bo(r,e){let t=r.getTypeMetaData(e.$type),n=e;for(let i of t.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Kc(i.defaultValue))}a(bo,"assignMandatoryProperties");function Kc(r){return Array.isArray(r)?[...r.map(Kc)]:r}a(Kc,"copyDefaultValue");function Po(r,e){let t={$type:r.$type};for(let[n,i]of Object.entries(r))if(!n.startsWith("$"))if(le(i))t[n]=Po(i,e);else if(Ee(i))t[n]=e(t,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let s=[];for(let o of i)le(o)?s.push(Po(o,e)):Ee(o)?s.push(e(t,n,o.$refNode,o.$refText)):s.push(o);t[n]=s}else t[n]=i;return Ds(t),t}a(Po,"copyAstNode");var Bs={};qt(Bs,{NEWLINE_REGEXP:()=>Uo,escapeRegExp:()=>lr,getCaseInsensitivePattern:()=>Bo,getTerminalParts:()=>Fh,isMultilineComment:()=>Go,isWhitespace:()=>gn,partialMatches:()=>Wo,partialRegExp:()=>qc,whitespaceCharacters:()=>zc});function w(r){return r.charCodeAt(0)}a(w,"cc");function Us(r,e){Array.isArray(r)?r.forEach(function(t){e.push(t)}):e.push(r)}a(Us,"insertToSet");function mn(r,e){if(r[e]===!0)throw"duplicate flag "+e;let t=r[e];r[e]=!0}a(mn,"addFlag");function sr(r){if(r===void 0)throw Error("Internal Error - Should never get here!");return!0}a(sr,"ASSERT_EXISTS");function fi(){throw Error("Internal Error - Should never get here!")}a(fi,"ASSERT_NEVER_REACH_HERE");function Mo(r){return r.type==="Character"}a(Mo,"isCharacter");var hi=[];for(let r=w("0");r<=w("9");r++)hi.push(r);var pi=[w("_")].concat(hi);for(let r=w("a");r<=w("z");r++)pi.push(r);for(let r=w("A");r<=w("Z");r++)pi.push(r);var Do=[w(" "),w("\f"),w(`
`),w("\r"),w(" "),w("\v"),w(" "),w("\xA0"),w("\u1680"),w("\u2000"),w("\u2001"),w("\u2002"),w("\u2003"),w("\u2004"),w("\u2005"),w("\u2006"),w("\u2007"),w("\u2008"),w("\u2009"),w("\u200A"),w("\u2028"),w("\u2029"),w("\u202F"),w("\u205F"),w("\u3000"),w("\uFEFF")];var Mh=/[0-9a-fA-F]/,Gs=/[0-9]/,Dh=/[1-9]/,ar=class{static{a(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 n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":mn(n,"global");break;case"i":mn(n,"ignoreCase");break;case"m":mn(n,"multiLine");break;case"u":mn(n,"unicode");break;case"y":mn(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){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"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}sr(t);let n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return fi()}quantifier(e=!1){let t,n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;sr(t);break}if(!(e===!0&&t===void 0)&&sr(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),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();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),sr(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):fi()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
`),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=hi;break;case"D":e=hi,t=!0;break;case"s":e=Do;break;case"S":e=Do,t=!0;break;case"w":e=pi;break;case"W":e=pi,t=!0;break}return sr(e)?{type:"Set",value:e,complement:t}:fi()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
`);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}return sr(e)?{type:"Character",value:e}:fi()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:w(e)}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(Mo(n)&&this.isRangeDash()){this.consumeChar("-");let s=this.classAtom(),o=s.type==="Character";if(Mo(s)){if(s.value<n.value)throw Error("Range out of order in character class");e.push({from:n.value,to:s.value})}else Us(n.value,e),e.push(w("-")),Us(s.value,e)}else Us(n.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:w("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}let t=this.disjunction();this.consumeChar(")");let n={type:"Group",capturing:e,value:t};return e&&(n.idx=this.groupIdx),n}positiveInteger(){let e=this.popChar();if(Dh.test(e)===!1)throw Error("Expecting a positive integer");for(;Gs.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(Gs.test(e)===!1)throw Error("Expecting an integer");for(;Gs.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case`
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:w(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return Gs.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
`: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 this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let i=0;i<e;i++){let s=this.popChar();if(Mh.test(s)===!1)throw Error("Expecting a HexDecimal digits");t+=s}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}};var ft=class{static{a(this,"BaseRegExpVisitor")}visitChildren(e){for(let t in e){let n=e[t];e.hasOwnProperty(t)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}};var Uo=/\r?\n/gm,Hc=new ar,Fo=class extends ft{static{a(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&&t===`
`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=lr(t);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=!!`
`.match(n)}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){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},or=new Fo;function Fh(r){try{typeof r!="string"&&(r=r.source),r=`/${r}/`;let e=Hc.pattern(r),t=[];for(let n of e.value.value)or.reset(r),or.visit(n),t.push({start:or.startRegexp,end:or.endRegex});return t}catch{return[]}}a(Fh,"getTerminalParts");function Go(r){try{return typeof r=="string"&&(r=new RegExp(r)),r=r.toString(),or.reset(r),or.visit(Hc.pattern(r)),or.multiline}catch{return!1}}a(Go,"isMultilineComment");var zc=`\f
\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");function gn(r){let e=typeof r=="string"?new RegExp(r):r;return zc.some(t=>e.test(t))}a(gn,"isWhitespace");function lr(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}a(lr,"escapeRegExp");function Bo(r){return Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:lr(e)).join("")}a(Bo,"getCaseInsensitivePattern");function Wo(r,e){let t=qc(r),n=e.match(t);return!!n&&n[0].length>0}a(Wo,"partialMatches");function qc(r){typeof r=="string"&&(r=new RegExp(r));let e=r,t=r.source,n=0;function i(){let s="",o;function l(u){s+=t.substr(n,u),n+=u}a(l,"appendRaw");function c(u){s+="(?:"+t.substr(n,u)+"|$)",n+=u}for(a(c,"appendOptional");n<t.length;)switch(t[n]){case"\\":switch(t[n+1]){case"c":c(3);break;case"x":c(4);break;case"u":e.unicode?t[n+2]==="{"?c(t.indexOf("}",n)-n+1):c(6):c(2);break;case"p":case"P":e.unicode?c(t.indexOf("}",n)-n+1):c(2);break;case"k":c(t.indexOf(">",n)-n+1);break;default:c(2);break}break;case"[":o=/\[(?:\\.|.)*?\]/g,o.lastIndex=n,o=o.exec(t)||[],c(o[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":o=/\{\d+,?\d*\}/g,o.lastIndex=n,o=o.exec(t),o?l(o[0].length):c(1);break;case"(":if(t[n+1]==="?")switch(t[n+2]){case":":s+="(?:",n+=3,s+=i()+"|$)";break;case"=":s+="(?=",n+=3,s+=i()+")";break;case"!":o=n,n+=3,i(),s+=t.substr(o,n-o);break;case"<":switch(t[n+3]){case"=":case"!":o=n,n+=4,i(),s+=t.substr(o,n-o);break;default:l(t.indexOf(">",n)-n+1),s+=i()+"|$)";break}break}else l(1),s+=i()+"|$)";break;case")":return++n,s;default:c(1);break}return s}return a(i,"process"),new RegExp(i(),r.flags)}a(qc,"partialRegExp");function Xc(r){return r.rules.find(e=>_e(e)&&e.entry)}a(Xc,"getEntryRule");function Yc(r){return r.rules.filter(e=>He(e)&&e.hidden)}a(Yc,"getHiddenRules");function mi(r,e){let t=new Set,n=Xc(r);if(!n)return new Set(r.rules);let i=[n].concat(Yc(r));for(let o of i)Jc(o,t,e);let s=new Set;for(let o of r.rules)(t.has(o.name)||He(o)&&o.hidden)&&s.add(o);return s}a(mi,"getAllReachableRules");function Jc(r,e,t){e.add(r.name),dt(r).forEach(n=>{if(nt(n)||t&&bs(n)){let i=n.rule.ref;i&&!e.has(i.name)&&Jc(i,e,t)}})}a(Jc,"ruleDfs");function Ko(r){if(r.terminal)return r.terminal;if(r.type.ref){let e=Ws(r.type.ref);return e?.terminal}}a(Ko,"getCrossReferenceTerminal");function Ho(r){return r.hidden&&!gn(Tn(r))}a(Ho,"isCommentTerminal");function zo(r,e){return!r||!e?[]:qo(r,e,r.astNode,!0)}a(zo,"findNodesForProperty");function gi(r,e,t){if(!r||!e)return;let n=qo(r,e,r.astNode,!0);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}a(gi,"findNodeForProperty");function qo(r,e,t,n){if(!n){let i=ir(r.grammarSource,rt);if(i&&i.feature===e)return[r]}return tt(r)&&r.astNode===t?r.content.flatMap(i=>qo(i,e,t,!1)):[]}a(qo,"findNodesForPropertyInternal");function Uh(r,e){return r?Yo(r,e,r?.astNode):[]}a(Uh,"findNodesForKeyword");function Xo(r,e,t){if(!r)return;let n=Yo(r,e,r?.astNode);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}a(Xo,"findNodeForKeyword");function Yo(r,e,t){if(r.astNode!==t)return[];if(Ye(r.grammarSource)&&r.grammarSource.value===e)return[r];let n=Zt(r).iterator(),i,s=[];do if(i=n.next(),!i.done){let o=i.value;o.astNode===t?Ye(o.grammarSource)&&o.grammarSource.value===e&&s.push(o):n.prune()}while