mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
12 lines • 354 kB
JavaScript
import{A as oe,B as ho,C as et,D as be,G as zu,I as Ve,L as ue,M as Yt,O as Is,R as Qn,S as qu,a as de,b as Et,c as ke,d as he,e as te,g as At,i as Jn,j as Xt,k as vt,l as pe,m as Ft,n as $,o as Pe,p as xe,q as kt,r as $e,s as E,t as Ie,w as Hu,x as I,y as Ne,z as re}from"./chunk-5ZJXQJOJ.mjs";import{d as M}from"./chunk-YPUTD6PB.mjs";import{M as fo,d as ju,e as ot,z as ge}from"./chunk-6BY5RJGC.mjs";import{a,b as $s,c as qt,d as B,e as Vu}from"./chunk-GTKDMUJJ.mjs";var au=$s(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});var nu;function iu(){if(nu===void 0)throw new Error("No runtime abstraction layer installed");return nu}a(iu,"RAL");(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");nu=t}a(e,"install"),r.install=e})(iu||(iu={}));su.default=iu});var Vd=$s(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.stringArray=_e.array=_e.func=_e.error=_e.number=_e.string=_e.boolean=void 0;function tg(r){return r===!0||r===!1}a(tg,"boolean");_e.boolean=tg;function Wd(r){return typeof r=="string"||r instanceof String}a(Wd,"string");_e.string=Wd;function rg(r){return typeof r=="number"||r instanceof Number}a(rg,"number");_e.number=rg;function ng(r){return r instanceof Error}a(ng,"error");_e.error=ng;function ig(r){return typeof r=="function"}a(ig,"func");_e.func=ig;function Kd(r){return Array.isArray(r)}a(Kd,"array");_e.array=Kd;function sg(r){return Kd(r)&&r.every(e=>Wd(e))}a(sg,"stringArray");_e.stringArray=sg});var lu=$s(Kn=>{"use strict";Object.defineProperty(Kn,"__esModule",{value:!0});Kn.Emitter=Kn.Event=void 0;var ag=au(),jd;(function(r){let e={dispose(){}};r.None=function(){return e}})(jd||(Kn.Event=jd={}));var ou=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,ag.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 ou),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)}};Kn.Emitter=Pa;Pa._noop=function(){}});var Hd=$s(Vn=>{"use strict";Object.defineProperty(Vn,"__esModule",{value:!0});Vn.CancellationTokenSource=Vn.CancellationToken=void 0;var og=au(),lg=Vd(),uu=lu(),ba;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:uu.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:uu.Event.None});function e(t){let n=t;return n&&(n===r.None||n===r.Cancelled||lg.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}a(e,"is"),r.is=e})(ba||(Vn.CancellationToken=ba={}));var ug=Object.freeze(function(r,e){let t=(0,og.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?ug:(this._emitter||(this._emitter=new uu.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},cu=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=cu});var fe={};qt(fe,{AbstractAstReflection:()=>Jt,AbstractCstNode:()=>Wi,AbstractLangiumParser:()=>Ki,AbstractParserErrorMessageProvider:()=>La,AbstractThreadedAsyncParser:()=>Au,AstUtils:()=>Fs,BiMap:()=>Rr,Cancellation:()=>S,CompositeCstNodeImpl:()=>gr,ContextCache:()=>xr,CstNodeBuilder:()=>Bi,CstUtils:()=>Ss,DEFAULT_TOKENIZE_OPTIONS:()=>Wa,DONE_RESULT:()=>Ce,DatatypeSymbol:()=>_a,DefaultAstNodeDescriptionProvider:()=>as,DefaultAstNodeLocator:()=>ls,DefaultAsyncParser:()=>Ts,DefaultCommentProvider:()=>ys,DefaultConfigurationProvider:()=>us,DefaultDocumentBuilder:()=>cs,DefaultDocumentValidator:()=>ss,DefaultHydrator:()=>xs,DefaultIndexManager:()=>fs,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:()=>bt,DefaultValueConverter:()=>Tr,DefaultWorkspaceLock:()=>Rs,DefaultWorkspaceManager:()=>ds,Deferred:()=>Ge,Disposable:()=>jt,DisposableCache:()=>qn,DocumentCache:()=>Ua,DocumentState:()=>Y,DocumentValidator:()=>Qe,EMPTY_SCOPE:()=>fg,EMPTY_STREAM:()=>ei,EmptyFileSystem:()=>Su,EmptyFileSystemProvider:()=>Xa,ErrorWithLocation:()=>tr,GrammarAST:()=>ui,GrammarUtils:()=>Ks,IndentationAwareLexer:()=>Cu,IndentationAwareTokenBuilder:()=>qa,JSDocDocumentationProvider:()=>gs,LangiumCompletionParser:()=>ji,LangiumParser:()=>Vi,LangiumParserErrorMessageProvider:()=>Wn,LeafCstNodeImpl:()=>mr,LexingMode:()=>vr,MapScope:()=>Zi,Module:()=>Iu,MultiMap:()=>st,OperationCancelled:()=>mt,ParserWorker:()=>vu,Reduction:()=>Ir,RegExpUtils:()=>Bs,RootCstNodeImpl:()=>Bn,SimpleCache:()=>es,StreamImpl:()=>je,StreamScope:()=>zn,TextDocument:()=>jn,TreeStreamImpl:()=>lt,URI:()=>Ue,UriUtils:()=>Be,ValidationCategory:()=>Yn,ValidationRegistry:()=>is,ValueConverter:()=>pt,WorkspaceCache:()=>Xn,assertUnreachable:()=>ct,createCompletionParser:()=>tu,createDefaultCoreModule:()=>ku,createDefaultSharedCoreModule:()=>$u,createGrammarConfig:()=>il,createLangiumParser:()=>ru,createParser:()=>Hi,delayNextTick:()=>fu,diagnosticData:()=>Er,eagerLoad:()=>dh,getDiagnosticRange:()=>th,indentationBuilderDefaultOptions:()=>Nu,inject:()=>za,interruptAndCheck:()=>ce,isAstNode:()=>le,isAstNodeDescription:()=>po,isAstNodeWithComment:()=>pu,isCompositeCstNode:()=>tt,isIMultiModeLexerDefinition:()=>gu,isJSDoc:()=>xu,isLeafCstNode:()=>Gt,isLinkingError:()=>Qt,isNamed:()=>Zd,isOperationCancelled:()=>gt,isReference:()=>Ee,isRootCstNode:()=>Zn,isTokenTypeArray:()=>Ka,isTokenTypeDictionary:()=>mu,loadGrammarFromJson:()=>yt,parseJSDoc:()=>Ru,prepareLangiumParser:()=>Bd,setInterruptionPeriod:()=>qd,startCancelableOperation:()=>Fa,stream:()=>j,toDiagnosticData:()=>rh,toDiagnosticSeverity:()=>Ba});var Ss={};qt(Ss,{DefaultNameRegexp:()=>Cs,RangeComparison:()=>ut,compareRange:()=>Yu,findCommentNode:()=>To,findDeclarationNodeAtOffset:()=>Ih,findLeafNodeAtOffset:()=>Ro,findLeafNodeBeforeOffset:()=>Ju,flattenCst:()=>$h,getInteriorNodes:()=>Sh,getNextNode:()=>Nh,getPreviousNode:()=>Zu,getStartlineNode:()=>Ch,inRange:()=>yo,isChildNode:()=>go,isCommentNode:()=>mo,streamCst:()=>Zt,toDocumentSegment:()=>er,tokenToRange:()=>Nr});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 po(r){return typeof r=="object"&&r!==null&&typeof r.name=="string"&&typeof r.type=="string"&&typeof r.path=="string"}a(po,"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 Gt(r){return typeof r=="object"&&r!==null&&typeof r.tokenType=="object"}a(Gt,"isLeafCstNode");function Zn(r){return tt(r)&&typeof r.fullText=="string"}a(Zn,"isRootCstNode");var je=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+=kh(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(Ns(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(Ns(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 kh(r){return typeof r=="string"?r:typeof r>"u"?"undefined":typeof r.toString=="function"?r.toString():Object.prototype.toString.call(r)}a(kh,"toString");function Ns(r){return!!r&&typeof r[Symbol.iterator]=="function"}a(Ns,"isIterable");var ei=new je(()=>{},()=>Ce),Ce=Object.freeze({done:!0,value:void 0});function j(...r){if(r.length===1){let e=r[0];if(e instanceof je)return e;if(Ns(e))return new je(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new je(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Ce)}return r.length>1?new je(()=>({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++];Ns(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(j,"stream");var lt=class extends je{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}},Ir;(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})(Ir||(Ir={}));function Zt(r){return new lt(r,e=>tt(e)?e.content:[],{includeRoot:!0})}a(Zt,"streamCst");function $h(r){return Zt(r).filter(Gt)}a($h,"flattenCst");function go(r,e){for(;r.container;)if(r=r.container,r===e)return!0;return!1}a(go,"isChildNode");function Nr(r){return{start:{character:r.startColumn-1,line:r.startLine-1},end:{character:r.endColumn,line:r.endLine-1}}}a(Nr,"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 ut;(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"})(ut||(ut={}));function Yu(r,e){if(r.end.line<e.start.line||r.end.line===e.start.line&&r.end.character<=e.start.character)return ut.Before;if(r.start.line>e.end.line||r.start.line===e.end.line&&r.start.character>=e.end.character)return ut.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?ut.Inside:t?ut.OverlapBack:n?ut.OverlapFront:ut.Outside}a(Yu,"compareRange");function yo(r,e){return Yu(r,e)>ut.After}a(yo,"inRange");var Cs=/^[\w\p{L}]$/u;function Ih(r,e,t=Cs){if(r){if(e>0){let n=e-r.offset,i=r.text.charAt(n);t.test(i)||e--}return Ro(r,e)}}a(Ih,"findDeclarationNodeAtOffset");function To(r,e){if(r){let t=Zu(r,!0);if(t&&mo(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(mo(s,e))return s}}}}a(To,"findCommentNode");function mo(r,e){return Gt(r)&&e.includes(r.tokenType.name)}a(mo,"isCommentNode");function Ro(r,e){if(Gt(r))return r;if(tt(r)){let t=Qu(r,e,!1);if(t)return Ro(t,e)}}a(Ro,"findLeafNodeAtOffset");function Ju(r,e){if(Gt(r))return r;if(tt(r)){let t=Qu(r,e,!0);if(t)return Ju(t,e)}}a(Ju,"findLeafNodeBeforeOffset");function Qu(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(Qu,"binarySearch");function Zu(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(Zu,"getPreviousNode");function Nh(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(Nh,"getNextNode");function Ch(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(Ch,"getStartlineNode");function Sh(r,e){let t=wh(r,e);return t?t.parent.content.slice(t.a+1,t.b):[]}a(Sh,"getInteriorNodes");function wh(r,e){let t=Xu(r),n=Xu(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(wh,"getCommonParent");function Xu(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(Xu,"getParentChain");var Ks={};qt(Ks,{findAssignment:()=>tl,findNameAssignment:()=>Ws,findNodeForKeyword:()=>Zo,findNodeForProperty:()=>gi,findNodesForKeyword:()=>Jh,findNodesForKeywordInternal:()=>el,findNodesForProperty:()=>Jo,getActionAtElement:()=>uc,getActionType:()=>fc,getAllReachableRules:()=>mi,getCrossReferenceTerminal:()=>Xo,getEntryRule:()=>sc,getExplicitRuleType:()=>yn,getHiddenRules:()=>ac,getRuleType:()=>rl,getRuleTypeName:()=>rp,getTypeName:()=>Ti,isArrayCardinality:()=>Zh,isArrayOperator:()=>ep,isCommentTerminal:()=>Yo,isDataType:()=>tp,isDataTypeRule:()=>yi,isOptionalCardinality:()=>Qh,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 ct(r){throw new Error("Error! The input value was not handled.")}a(ct,"assertUnreachable");var ui={};qt(ui,{AbstractElement:()=>wr,AbstractRule:()=>Cr,AbstractType:()=>Sr,Action:()=>Xr,Alternatives:()=>Yr,ArrayLiteral:()=>_r,ArrayType:()=>Lr,Assignment:()=>Jr,BooleanLiteral:()=>Or,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:()=>_h,NamedArgument:()=>ii,NegatedToken:()=>nn,Negation:()=>Gr,NumberLiteral:()=>Ur,Parameter:()=>Br,ParameterReference:()=>Wr,ParserRule:()=>Kr,ReferenceType:()=>Vr,RegexToken:()=>sn,ReturnType:()=>si,RuleCall:()=>an,SimpleType:()=>jr,StringLiteral:()=>Hr,TerminalAlternatives:()=>on,TerminalGroup:()=>ln,TerminalRule:()=>rr,TerminalRuleCall:()=>un,Type:()=>zr,TypeAttribute:()=>ai,TypeDefinition:()=>ws,UnionType:()=>qr,UnorderedGroup:()=>cn,UntilToken:()=>fn,ValueLiteral:()=>ri,Wildcard:()=>dn,isAbstractElement:()=>oi,isAbstractRule:()=>Lh,isAbstractType:()=>Oh,isAction:()=>$t,isAlternatives:()=>Ps,isArrayLiteral:()=>Fh,isArrayType:()=>xo,isAssignment:()=>rt,isBooleanLiteral:()=>Eo,isCharacterRange:()=>So,isCondition:()=>Ph,isConjunction:()=>Ao,isCrossReference:()=>nr,isDisjunction:()=>vo,isEndOfFile:()=>wo,isFeatureName:()=>bh,isGrammar:()=>Gh,isGrammarImport:()=>Uh,isGroup:()=>Ut,isInferredType:()=>_s,isInterface:()=>Ls,isKeyword:()=>Ye,isNamedArgument:()=>Bh,isNegatedToken:()=>_o,isNegation:()=>ko,isNumberLiteral:()=>Wh,isParameter:()=>Kh,isParameterReference:()=>$o,isParserRule:()=>Se,isPrimitiveType:()=>ec,isReferenceType:()=>Io,isRegexToken:()=>Lo,isReturnType:()=>No,isRuleCall:()=>nt,isSimpleType:()=>Os,isStringLiteral:()=>Vh,isTerminalAlternatives:()=>Oo,isTerminalGroup:()=>Po,isTerminalRule:()=>He,isTerminalRuleCall:()=>bs,isType:()=>li,isTypeAttribute:()=>jh,isTypeDefinition:()=>Mh,isUnionType:()=>Co,isUnorderedGroup:()=>Ms,isUntilToken:()=>bo,isValueLiteral:()=>Dh,isWildcard:()=>Mo,reflection:()=>_});var _h={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 Lh(r){return _.isInstance(r,Cr)}a(Lh,"isAbstractRule");var Sr="AbstractType";function Oh(r){return _.isInstance(r,Sr)}a(Oh,"isAbstractType");var ti="Condition";function Ph(r){return _.isInstance(r,ti)}a(Ph,"isCondition");function bh(r){return ec(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(bh,"isFeatureName");function ec(r){return r==="string"||r==="number"||r==="boolean"||r==="Date"||r==="bigint"}a(ec,"isPrimitiveType");var ws="TypeDefinition";function Mh(r){return _.isInstance(r,ws)}a(Mh,"isTypeDefinition");var ri="ValueLiteral";function Dh(r){return _.isInstance(r,ri)}a(Dh,"isValueLiteral");var wr="AbstractElement";function oi(r){return _.isInstance(r,wr)}a(oi,"isAbstractElement");var _r="ArrayLiteral";function Fh(r){return _.isInstance(r,_r)}a(Fh,"isArrayLiteral");var Lr="ArrayType";function xo(r){return _.isInstance(r,Lr)}a(xo,"isArrayType");var Or="BooleanLiteral";function Eo(r){return _.isInstance(r,Or)}a(Eo,"isBooleanLiteral");var Pr="Conjunction";function Ao(r){return _.isInstance(r,Pr)}a(Ao,"isConjunction");var br="Disjunction";function vo(r){return _.isInstance(r,br)}a(vo,"isDisjunction");var Mr="Grammar";function Gh(r){return _.isInstance(r,Mr)}a(Gh,"isGrammar");var ni="GrammarImport";function Uh(r){return _.isInstance(r,ni)}a(Uh,"isGrammarImport");var Dr="InferredType";function _s(r){return _.isInstance(r,Dr)}a(_s,"isInferredType");var Fr="Interface";function Ls(r){return _.isInstance(r,Fr)}a(Ls,"isInterface");var ii="NamedArgument";function Bh(r){return _.isInstance(r,ii)}a(Bh,"isNamedArgument");var Gr="Negation";function ko(r){return _.isInstance(r,Gr)}a(ko,"isNegation");var Ur="NumberLiteral";function Wh(r){return _.isInstance(r,Ur)}a(Wh,"isNumberLiteral");var Br="Parameter";function Kh(r){return _.isInstance(r,Br)}a(Kh,"isParameter");var Wr="ParameterReference";function $o(r){return _.isInstance(r,Wr)}a($o,"isParameterReference");var Kr="ParserRule";function Se(r){return _.isInstance(r,Kr)}a(Se,"isParserRule");var Vr="ReferenceType";function Io(r){return _.isInstance(r,Vr)}a(Io,"isReferenceType");var si="ReturnType";function No(r){return _.isInstance(r,si)}a(No,"isReturnType");var jr="SimpleType";function Os(r){return _.isInstance(r,jr)}a(Os,"isSimpleType");var Hr="StringLiteral";function Vh(r){return _.isInstance(r,Hr)}a(Vh,"isStringLiteral");var rr="TerminalRule";function He(r){return _.isInstance(r,rr)}a(He,"isTerminalRule");var zr="Type";function li(r){return _.isInstance(r,zr)}a(li,"isType");var ai="TypeAttribute";function jh(r){return _.isInstance(r,ai)}a(jh,"isTypeAttribute");var qr="UnionType";function Co(r){return _.isInstance(r,qr)}a(Co,"isUnionType");var Xr="Action";function $t(r){return _.isInstance(r,Xr)}a($t,"isAction");var Yr="Alternatives";function Ps(r){return _.isInstance(r,Yr)}a(Ps,"isAlternatives");var Jr="Assignment";function rt(r){return _.isInstance(r,Jr)}a(rt,"isAssignment");var Qr="CharacterRange";function So(r){return _.isInstance(r,Qr)}a(So,"isCharacterRange");var Zr="CrossReference";function nr(r){return _.isInstance(r,Zr)}a(nr,"isCrossReference");var en="EndOfFile";function wo(r){return _.isInstance(r,en)}a(wo,"isEndOfFile");var tn="Group";function Ut(r){return _.isInstance(r,tn)}a(Ut,"isGroup");var rn="Keyword";function Ye(r){return _.isInstance(r,rn)}a(Ye,"isKeyword");var nn="NegatedToken";function _o(r){return _.isInstance(r,nn)}a(_o,"isNegatedToken");var sn="RegexToken";function Lo(r){return _.isInstance(r,sn)}a(Lo,"isRegexToken");var an="RuleCall";function nt(r){return _.isInstance(r,an)}a(nt,"isRuleCall");var on="TerminalAlternatives";function Oo(r){return _.isInstance(r,on)}a(Oo,"isTerminalAlternatives");var ln="TerminalGroup";function Po(r){return _.isInstance(r,ln)}a(Po,"isTerminalGroup");var un="TerminalRuleCall";function bs(r){return _.isInstance(r,un)}a(bs,"isTerminalRuleCall");var cn="UnorderedGroup";function Ms(r){return _.isInstance(r,cn)}a(Ms,"isUnorderedGroup");var fn="UntilToken";function bo(r){return _.isInstance(r,fn)}a(bo,"isUntilToken");var dn="Wildcard";function Mo(r){return _.isInstance(r,dn)}a(Mo,"isWildcard");var hn=class extends Jt{static{a(this,"LangiumGrammarAstReflection")}getAllTypes(){return[wr,Cr,Sr,Xr,Yr,_r,Lr,Jr,Or,Qr,ti,Pr,Zr,br,en,Mr,ni,tn,Dr,Fr,rn,ii,nn,Gr,Ur,Br,Wr,Kr,Vr,sn,si,an,jr,Hr,on,ln,rr,un,zr,ai,ws,qr,cn,fn,ri,dn]}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 un:case cn:case fn:case dn:return this.isSubtype(wr,t);case _r:case Ur:case Hr:return this.isSubtype(ri,t);case Lr:case Vr:case jr:case qr:return this.isSubtype(ws,t);case Or:return this.isSubtype(ti,t)||this.isSubtype(ri,t);case Pr:case br:case Gr:case Wr:return this.isSubtype(ti,t);case Dr:case Fr:case zr:return this.isSubtype(Sr,t);case Kr:return this.isSubtype(Cr,t)||this.isSubtype(Sr,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 Sr;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 _r:return{name:_r,properties:[{name:"elements",defaultValue:[]}]};case Lr:return{name:Lr,properties:[{name:"elementType"}]};case Or:return{name:Or,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 Gr:return{name:Gr,properties:[{name:"value"}]};case Ur:return{name:Ur,properties:[{name:"value"}]};case Br:return{name:Br,properties:[{name:"name"}]};case Wr:return{name:Wr,properties:[{name:"parameter"}]};case Kr:return{name:Kr,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 jr:return{name:jr,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 un:return{name:un,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case cn:return{name:cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case fn:return{name:fn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case dn:return{name:dn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},_=new hn;var Fs={};qt(Fs,{assignMandatoryProperties:()=>Go,copyAstNode:()=>Fo,findLocalReferences:()=>zh,findRootNode:()=>ci,getContainerOfType:()=>ir,getDocument:()=>we,hasContainerOfType:()=>Hh,linkContentToContainer:()=>Ds,streamAllContents:()=>ft,streamAst:()=>Je,streamContents:()=>fi,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 Hh(r,e){let t=r;for(;t;){if(e(t))return!0;t=t.$container}return!1}a(Hh,"hasContainerOfType");function we(r){let t=ci(r).$document;if(!t)throw new Error("AST node has no document.");return t}a(we,"getDocument");function ci(r){for(;r.$container;)r=r.$container;return r}a(ci,"findRootNode");function fi(r,e){if(!r)throw new Error("Node must be an AstNode.");let t=e?.range;return new je(()=>({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++,Do(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)&&Do(l,t))return{done:!1,value:l}}n.arrayIndex=0}}n.keyIndex++}return Ce})}a(fi,"streamContents");function ft(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new lt(r,t=>fi(t,e))}a(ft,"streamAllContents");function Je(r,e){if(r){if(e?.range&&!Do(r,e.range))return new lt(r,()=>[])}else throw new Error("Root node must be an AstNode.");return new lt(r,t=>fi(t,e),{includeRoot:!0})}a(Je,"streamAst");function Do(r,e){var t;if(!e)return!0;let n=(t=r.$cstNode)===null||t===void 0?void 0:t.range;return n?yo(n,e):!1}a(Do,"isAstNodeInRange");function pn(r){return new je(()=>({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 zh(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)})}),j(t)}a(zh,"findLocalReferences");function Go(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]=tc(i.defaultValue))}a(Go,"assignMandatoryProperties");function tc(r){return Array.isArray(r)?[...r.map(tc)]:r}a(tc,"copyDefaultValue");function Fo(r,e){let t={$type:r.$type};for(let[n,i]of Object.entries(r))if(!n.startsWith("$"))if(le(i))t[n]=Fo(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(Fo(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(Fo,"copyAstNode");var Bs={};qt(Bs,{NEWLINE_REGEXP:()=>Ko,escapeRegExp:()=>lr,getCaseInsensitivePattern:()=>jo,getTerminalParts:()=>Yh,isMultilineComment:()=>Vo,isWhitespace:()=>gn,partialMatches:()=>Ho,partialRegExp:()=>ic,whitespaceCharacters:()=>nc});function w(r){return r.charCodeAt(0)}a(w,"cc");function Gs(r,e){Array.isArray(r)?r.forEach(function(t){e.push(t)}):e.push(r)}a(Gs,"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 di(){throw Error("Internal Error - Should never get here!")}a(di,"ASSERT_NEVER_REACH_HERE");function Uo(r){return r.type==="Character"}a(Uo,"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 Bo=[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 qh=/[0-9a-fA-F]/,Us=/[0-9]/,Xh=/[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 di()}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):di()}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=Bo;break;case"S":e=Bo,t=!0;break;case"w":e=pi;break;case"W":e=pi,t=!0;break}return sr(e)?{type:"Set",value:e,complement:t}:di()}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}:di()}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(Uo(n)&&this.isRangeDash()){this.consumeChar("-");let s=this.classAtom(),o=s.type==="Character";if(Uo(s)){if(s.value<n.value)throw Error("Range out of order in character class");e.push({from:n.value,to:s.value})}else Gs(n.value,e),e.push(w("-")),Gs(s.value,e)}else Gs(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(Xh.test(e)===!1)throw Error("Expecting a positive integer");for(;Us.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(Us.test(e)===!1)throw Error("Expecting an integer");for(;Us.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 Us.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(qh.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 dt=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 Ko=/\r?\n/gm,rc=new ar,Wo=class extends dt{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 Wo;function Yh(r){try{typeof r!="string"&&(r=r.source),r=`/${r}/`;let e=rc.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(Yh,"getTerminalParts");function Vo(r){try{return typeof r=="string"&&(r=new RegExp(r)),r=r.toString(),or.reset(r),or.visit(rc.pattern(r)),or.multiline}catch{return!1}}a(Vo,"isMultilineComment");var nc=`\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 nc.some(t=>e.test(t))}a(gn,"isWhitespace");function lr(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}a(lr,"escapeRegExp");function jo(r){return Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:lr(e)).join("")}a(jo,"getCaseInsensitivePattern");function Ho(r,e){let t=ic(r),n=e.match(t);return!!n&&n[0].length>0}a(Ho,"partialMatches");function ic(r){typeof r=="string"&&(r=new RegExp(r));let e=r,t=r.source,n=0;function i(){let s="",o;function l(c){s+=t.substr(n,c),n+=c}a(l,"appendRaw");function u(c){s+="(?:"+t.substr(n,c)+"|$)",n+=c}for(a(u,"appendOptional");n<t.length;)switch(t[n]){case"\\":switch(t[n+1]){case"c":u(3);break;case"x":u(4);break;case"u":e.unicode?t[n+2]==="{"?u(t.indexOf("}",n)-n+1):u(6):u(2);break;case"p":case"P":e.unicode?u(t.indexOf("}",n)-n+1):u(2);break;case"k":u(t.indexOf(">",n)-n+1);break;default:u(2);break}break;case"[":o=/\[(?:\\.|.)*?\]/g,o.lastIndex=n,o=o.exec(t)||[],u(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):u(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:u(1);break}return s}return a(i,"process"),new RegExp(i(),r.flags)}a(ic,"partialRegExp");function sc(r){return r.rules.find(e=>Se(e)&&e.entry)}a(sc,"getEntryRule");function ac(r){return r.rules.filter(e=>He(e)&&e.hidden)}a(ac,"getHiddenRules");function mi(r,e){let t=new Set,n=sc(r);if(!n)return new Set(r.rules);let i=[n].concat(ac(r));for(let o of i)oc(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 oc(r,e,t){e.add(r.name),ft(r).forEach(n=>{if(nt(n)||t&&bs(n)){let i=n.rule.ref;i&&!e.has(i.name)&&oc(i,e,t)}})}a(oc,"ruleDfs");function Xo(r){if(r.terminal)return r.terminal;if(r.type.ref){let e=Ws(r.type.ref);return e?.terminal}}a(Xo,"getCrossReferenceTerminal");function Yo(r){return r.hidden&&!gn(Tn(r))}a(Yo,"isCommentTerminal");function Jo(r,e){return!r||!e?[]:Qo(r,e,r.astNode,!0)}a(Jo,"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 Jh(r,e){return r?el(r,e,r?.astNode):[]}a(Jh,"findNodesForKeyword");function Zo(r,e,t){if(!r)return;let n=el(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(Zo,"findNodeForKeyword");function el(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