mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-10-25 04:46:04 +08:00
125 lines
294 KiB
JavaScript
125 lines
294 KiB
JavaScript
import{A as ie,B as oa,C as Ze,D as $e,G as gc,I as je,L as ae,M as Ht,O as _i,R as dn,S as yc,a as ce,b as mt,c as ke,d as ue,e as ee,g as gt,i as fn,j as Kt,k as yt,l as fe,m as $t,n as k,o as Oe,p as Re,q as Tt,r as Ie,s as R,t as Ne,w as mc,x as N,y as Se,z as te}from"./chunk-WYMAA4MH.js";import{d as b}from"./chunk-SISR4MA5.js";import{M as aa,d as pc,e as it,z as pe}from"./chunk-24JW6VB3.js";import{f as Ci,g as Vt,h as U,i as hc,j as Ot}from"./chunk-MGYUK2XN.js";var Gl=Ci(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});var Dl;function Fl(){if(Dl===void 0)throw new Error("No runtime abstraction layer installed");return Dl}(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");Dl=t}r.install=e})(Fl||(Fl={}));Ul.default=Fl});var yd=Ci(_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 vm(r){return r===!0||r===!1}_e.boolean=vm;function md(r){return typeof r=="string"||r instanceof String}_e.string=md;function km(r){return typeof r=="number"||r instanceof Number}_e.number=km;function Im(r){return r instanceof Error}_e.error=Im;function Nm(r){return typeof r=="function"}_e.func=Nm;function gd(r){return Array.isArray(r)}_e.array=gd;function Sm(r){return gd(r)&&r.every(e=>md(e))}_e.stringArray=Sm});var Wl=Ci(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.Emitter=Jr.Event=void 0;var Cm=Gl(),Td;(function(r){let e={dispose(){}};r.None=function(){return e}})(Td||(Jr.Event=Td={}));var Bl=class{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:()=>this.remove(e,t)})}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,a=n.length;s<a;s++)try{t.push(n[s].apply(i[s],e))}catch(o){(0,Cm.default)().console.error(o)}return t}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},Ws=class r{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,n)=>{this._callbacks||(this._callbacks=new Bl),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let i={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),i.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};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)}};Jr.Emitter=Ws;Ws._noop=function(){}});var xd=Ci(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.CancellationTokenSource=Qr.CancellationToken=void 0;var _m=Gl(),wm=yd(),jl=Wl(),js;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:jl.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:jl.Event.None});function e(t){let n=t;return n&&(n===r.None||n===r.Cancelled||wm.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}r.is=e})(js||(Qr.CancellationToken=js={}));var Lm=Object.freeze(function(r,e){let t=(0,_m.default)().timer.setTimeout(r.bind(e),0);return{dispose(){t.dispose()}}}),Vs=class{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?Lm:(this._emitter||(this._emitter=new jl.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Vl=class{get token(){return this._token||(this._token=new Vs),this._token}cancel(){this._token?this._token.cancel():this._token=js.Cancelled}dispose(){this._token?this._token instanceof Vs&&this._token.dispose():this._token=js.None}};Qr.CancellationTokenSource=Vl});var he={};Vt(he,{AbstractAstReflection:()=>zt,AbstractCstNode:()=>Yn,AbstractLangiumParser:()=>Jn,AbstractParserErrorMessageProvider:()=>Us,AbstractThreadedAsyncParser:()=>rc,AstUtils:()=>ji,BiMap:()=>yr,Cancellation:()=>_,CompositeCstNodeImpl:()=>hr,ContextCache:()=>Tr,CstNodeBuilder:()=>Xn,CstUtils:()=>Oi,DONE_RESULT:()=>Pe,DatatypeSymbol:()=>Fs,DefaultAstNodeDescriptionProvider:()=>hi,DefaultAstNodeLocator:()=>mi,DefaultAsyncParser:()=>Ii,DefaultCommentProvider:()=>ki,DefaultConfigurationProvider:()=>gi,DefaultDocumentBuilder:()=>yi,DefaultDocumentValidator:()=>di,DefaultHydrator:()=>Si,DefaultIndexManager:()=>Ti,DefaultJsonSerializer:()=>ci,DefaultLangiumDocumentFactory:()=>ei,DefaultLangiumDocuments:()=>ti,DefaultLexer:()=>Ri,DefaultLinker:()=>ri,DefaultNameProvider:()=>ni,DefaultReferenceDescriptionProvider:()=>pi,DefaultReferences:()=>ii,DefaultScopeComputation:()=>si,DefaultScopeProvider:()=>li,DefaultServiceRegistry:()=>ui,DefaultTokenBuilder:()=>mr,DefaultValueConverter:()=>gr,DefaultWorkspaceLock:()=>Ni,DefaultWorkspaceManager:()=>xi,Deferred:()=>Fe,Disposable:()=>xr,DisposableCache:()=>rn,DocumentCache:()=>Hs,DocumentState:()=>X,DocumentValidator:()=>_t,EMPTY_SCOPE:()=>$m,EMPTY_STREAM:()=>pn,EmptyFileSystem:()=>lc,EmptyFileSystemProvider:()=>Zs,ErrorWithLocation:()=>Jt,GrammarAST:()=>xn,GrammarUtils:()=>Xi,JSDocDocumentationProvider:()=>vi,LangiumCompletionParser:()=>Zn,LangiumParser:()=>Qn,LangiumParserErrorMessageProvider:()=>Yr,LeafCstNodeImpl:()=>dr,MapScope:()=>ai,Module:()=>ac,MultiMap:()=>ft,OperationCancelled:()=>ut,ParserWorker:()=>nc,Reduction:()=>Ar,RegExpUtils:()=>zi,RootCstNodeImpl:()=>Xr,SimpleCache:()=>oi,StreamImpl:()=>Ke,StreamScope:()=>tn,TextDocument:()=>Zr,TreeStreamImpl:()=>st,URI:()=>Be,UriUtils:()=>Ue,ValidationCategory:()=>sn,ValidationRegistry:()=>fi,ValueConverter:()=>ct,WorkspaceCache:()=>nn,assertUnreachable:()=>bt,createCompletionParser:()=>bl,createDefaultCoreModule:()=>ic,createDefaultSharedCoreModule:()=>sc,createGrammarConfig:()=>Do,createLangiumParser:()=>Ml,delayNextTick:()=>Hl,diagnosticData:()=>zs,eagerLoad:()=>Ud,getDiagnosticRange:()=>_d,inject:()=>Qs,interruptAndCheck:()=>ye,isAstNode:()=>se,isAstNodeDescription:()=>la,isAstNodeWithComment:()=>ql,isCompositeCstNode:()=>Ve,isIMultiModeLexerDefinition:()=>Yl,isJSDoc:()=>ec,isLeafCstNode:()=>Pt,isLinkingError:()=>qt,isNamed:()=>Sd,isOperationCancelled:()=>Gt,isReference:()=>Ee,isRootCstNode:()=>hn,isTokenTypeArray:()=>wd,isTokenTypeDictionary:()=>Xl,loadGrammarFromJson:()=>Bt,parseJSDoc:()=>Zl,prepareLangiumParser:()=>pd,setInterruptionPeriod:()=>Ad,startCancelableOperation:()=>Ed,stream:()=>V,toDiagnosticSeverity:()=>qs});var Oi={};Vt(Oi,{DefaultNameRegexp:()=>Li,RangeComparison:()=>xt,compareRange:()=>xc,findCommentNode:()=>da,findDeclarationNodeAtOffset:()=>Xd,findLeafNodeAtOffset:()=>ha,findLeafNodeBeforeOffset:()=>Rc,flattenCst:()=>qd,getInteriorNodes:()=>Qd,getNextNode:()=>Yd,getPreviousNode:()=>Ac,getStartlineNode:()=>Jd,inRange:()=>fa,isChildNode:()=>ua,isCommentNode:()=>ca,streamCst:()=>Xt,toDocumentSegment:()=>Yt,tokenToRange:()=>vr});function se(r){return typeof r=="object"&&r!==null&&typeof r.$type=="string"}function Ee(r){return typeof r=="object"&&r!==null&&typeof r.$refText=="string"}function la(r){return typeof r=="object"&&r!==null&&typeof r.name=="string"&&typeof r.type=="string"&&typeof r.path=="string"}function qt(r){return typeof r=="object"&&r!==null&&se(r.container)&&Ee(r.reference)&&typeof r.message=="string"}var zt=class{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(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 Ve(r){return typeof r=="object"&&r!==null&&Array.isArray(r.content)}function Pt(r){return typeof r=="object"&&r!==null&&typeof r.tokenType=="object"}function hn(r){return Ve(r)&&typeof r.fullText=="string"}var Ke=class r{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){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){let t=e[Symbol.iterator]();return new r(()=>({first:this.startFn(),firstDone:!1}),n=>{let i;if(!n.firstDone){do if(i=this.nextFn(n.first),!i.done)return i;while(!i.done);n.firstDone=!0}do if(i=t.next(),!i.done)return i;while(!i.done);return Pe})}join(e=","){let t=this.iterator(),n="",i,s=!1;do i=t.next(),i.done||(s&&(n+=e),n+=zd(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?Pe:{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 Pe})}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(wi(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Pe})}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 a=n.iterator.next();if(a.done)n.iterator=void 0;else return a}let{done:i,value:s}=t.nextFn(n.this);if(!i)if(wi(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(n.iterator);return Pe})}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?Pe:this.nextFn(t.state)))}distinct(e){let t=new Set;return this.filter(n=>{let i=e?e(n):n;return t.has(i)?!1:(t.add(i),!0)})}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 zd(r){return typeof r=="string"?r:typeof r=="undefined"?"undefined":typeof r.toString=="function"?r.toString():Object.prototype.toString.call(r)}function wi(r){return!!r&&typeof r[Symbol.iterator]=="function"}var pn=new Ke(()=>{},()=>Pe),Pe=Object.freeze({done:!0,value:void 0});function V(...r){if(r.length===1){let e=r[0];if(e instanceof Ke)return e;if(wi(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++]}:Pe)}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++];wi(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<r.length);return Pe}):pn}var st=class extends Ke{constructor(e,t,n){super(()=>({iterators:n!=null&&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 a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return Pe})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}},Ar;(function(r){function e(s){return s.reduce((a,o)=>a+o,0)}r.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}r.product=t;function n(s){return s.reduce((a,o)=>Math.min(a,o))}r.min=n;function i(s){return s.reduce((a,o)=>Math.max(a,o))}r.max=i})(Ar||(Ar={}));function Xt(r){return new st(r,e=>Ve(e)?e.content:[],{includeRoot:!0})}function qd(r){return Xt(r).filter(Pt)}function ua(r,e){for(;r.container;)if(r=r.container,r===e)return!0;return!1}function vr(r){return{start:{character:r.startColumn-1,line:r.startLine-1},end:{character:r.endColumn,line:r.endLine-1}}}function Yt(r){if(!r)return;let{offset:e,end:t,range:n}=r;return{range:n,offset:e,end:t,length:t-e}}var xt;(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"})(xt||(xt={}));function xc(r,e){if(r.end.line<e.start.line||r.end.line===e.start.line&&r.end.character<r.start.character)return xt.Before;if(r.start.line>e.end.line||r.start.line===e.end.line&&r.start.character>e.end.character)return xt.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?xt.Inside:t?xt.OverlapBack:xt.OverlapFront}function fa(r,e){return xc(r,e)>xt.After}var Li=/^[\w\p{L}]$/u;function Xd(r,e,t=Li){if(r){if(e>0){let n=e-r.offset,i=r.text.charAt(n);t.test(i)||e--}return ha(r,e)}}function da(r,e){if(r){let t=Ac(r,!0);if(t&&ca(t,e))return t;if(hn(r)){let n=r.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let s=r.content[i];if(ca(s,e))return s}}}}function ca(r,e){return Pt(r)&&e.includes(r.tokenType.name)}function ha(r,e){if(Pt(r))return r;if(Ve(r)){let t=Ec(r,e,!1);if(t)return ha(t,e)}}function Rc(r,e){if(Pt(r))return r;if(Ve(r)){let t=Ec(r,e,!0);if(t)return Rc(t,e)}}function Ec(r,e,t){let n=0,i=r.content.length-1,s;for(;n<=i;){let a=Math.floor((n+i)/2),o=r.content[a];if(o.offset<=e&&o.end>e)return o;o.end<=e?(s=t?o:void 0,n=a+1):i=a-1}return s}function Ac(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}}function Yd(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}}function Jd(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!=null?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}function Qd(r,e){let t=Zd(r,e);return t?t.parent.content.slice(t.a+1,t.b):[]}function Zd(r,e){let t=Tc(r),n=Tc(e),i;for(let s=0;s<t.length&&s<n.length;s++){let a=t[s],o=n[s];if(a.parent===o.parent)i={parent:a.parent,a:a.index,b:o.index};else break}return i}function Tc(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()}var Xi={};Vt(Xi,{findAssignment:()=>$o,findNameAssignment:()=>qi,findNodeForKeyword:()=>Lo,findNodeForProperty:()=>In,findNodesForKeyword:()=>Rh,findNodesForKeywordInternal:()=>Oo,findNodesForProperty:()=>_o,getActionAtElement:()=>Mc,getActionType:()=>Fc,getAllReachableRules:()=>kn,getCrossReferenceTerminal:()=>So,getEntryRule:()=>Oc,getExplicitRuleType:()=>Po,getHiddenRules:()=>$c,getRuleType:()=>bo,getTypeName:()=>ir,isArrayCardinality:()=>Ah,isArrayOperator:()=>vh,isCommentTerminal:()=>Co,isDataType:()=>kh,isDataTypeRule:()=>Nn,isOptionalCardinality:()=>Eh,terminalRegex:()=>Sr});var Jt=class extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function bt(r){throw new Error("Error! The input value was not handled.")}var xn={};Vt(xn,{AbstractElement:()=>ma,AbstractRule:()=>mn,AbstractType:()=>gn,Action:()=>ja,Alternatives:()=>Va,ArrayLiteral:()=>ga,ArrayType:()=>ya,Assignment:()=>Ka,BooleanLiteral:()=>xa,CharacterRange:()=>Ha,Condition:()=>$i,Conjunction:()=>Ea,CrossReference:()=>qa,Disjunction:()=>va,EndOfFile:()=>Xa,Grammar:()=>Ia,GrammarImport:()=>kc,Group:()=>Ja,InferredType:()=>Na,Interface:()=>Sa,Keyword:()=>Qa,LangiumGrammarAstReflection:()=>kr,LangiumGrammarTerminals:()=>eh,NamedArgument:()=>Ic,NegatedToken:()=>Za,Negation:()=>Ca,NumberLiteral:()=>wa,Parameter:()=>La,ParameterReference:()=>Oa,ParserRule:()=>Pa,ReferenceType:()=>ba,RegexToken:()=>to,ReturnType:()=>Nc,RuleCall:()=>no,SimpleType:()=>Fa,StringLiteral:()=>Ua,TerminalAlternatives:()=>io,TerminalGroup:()=>ao,TerminalRule:()=>bi,TerminalRuleCall:()=>lo,Type:()=>Ga,TypeAttribute:()=>Sc,TypeDefinition:()=>pa,UnionType:()=>Ba,UnorderedGroup:()=>co,UntilToken:()=>uo,ValueLiteral:()=>Pi,Wildcard:()=>ho,isAbstractElement:()=>yn,isAbstractRule:()=>th,isAbstractType:()=>rh,isAction:()=>Rt,isAlternatives:()=>Ui,isArrayLiteral:()=>oh,isArrayType:()=>Ta,isAssignment:()=>et,isBooleanLiteral:()=>Ra,isCharacterRange:()=>za,isCondition:()=>nh,isConjunction:()=>Aa,isCrossReference:()=>Qt,isDisjunction:()=>ka,isEndOfFile:()=>Ya,isFeatureName:()=>ih,isGrammar:()=>lh,isGrammarImport:()=>ch,isGroup:()=>Mt,isInferredType:()=>Mi,isInterface:()=>Di,isKeyword:()=>Ye,isNamedArgument:()=>uh,isNegatedToken:()=>eo,isNegation:()=>_a,isNumberLiteral:()=>fh,isParameter:()=>dh,isParameterReference:()=>$a,isParserRule:()=>Ce,isPrimitiveType:()=>vc,isReferenceType:()=>Ma,isRegexToken:()=>ro,isReturnType:()=>Da,isRuleCall:()=>tt,isSimpleType:()=>Fi,isStringLiteral:()=>hh,isTerminalAlternatives:()=>so,isTerminalGroup:()=>oo,isTerminalRule:()=>Xe,isTerminalRuleCall:()=>Gi,isType:()=>Tn,isTypeAttribute:()=>ph,isTypeDefinition:()=>sh,isUnionType:()=>Wa,isUnorderedGroup:()=>Bi,isUntilToken:()=>fo,isValueLiteral:()=>ah,isWildcard:()=>po,reflection:()=>w});var eh={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]*/},mn="AbstractRule";function th(r){return w.isInstance(r,mn)}var gn="AbstractType";function rh(r){return w.isInstance(r,gn)}var $i="Condition";function nh(r){return w.isInstance(r,$i)}function ih(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)}function vc(r){return r==="string"||r==="number"||r==="boolean"||r==="Date"||r==="bigint"}var pa="TypeDefinition";function sh(r){return w.isInstance(r,pa)}var Pi="ValueLiteral";function ah(r){return w.isInstance(r,Pi)}var ma="AbstractElement";function yn(r){return w.isInstance(r,ma)}var ga="ArrayLiteral";function oh(r){return w.isInstance(r,ga)}var ya="ArrayType";function Ta(r){return w.isInstance(r,ya)}var xa="BooleanLiteral";function Ra(r){return w.isInstance(r,xa)}var Ea="Conjunction";function Aa(r){return w.isInstance(r,Ea)}var va="Disjunction";function ka(r){return w.isInstance(r,va)}var Ia="Grammar";function lh(r){return w.isInstance(r,Ia)}var kc="GrammarImport";function ch(r){return w.isInstance(r,kc)}var Na="InferredType";function Mi(r){return w.isInstance(r,Na)}var Sa="Interface";function Di(r){return w.isInstance(r,Sa)}var Ic="NamedArgument";function uh(r){return w.isInstance(r,Ic)}var Ca="Negation";function _a(r){return w.isInstance(r,Ca)}var wa="NumberLiteral";function fh(r){return w.isInstance(r,wa)}var La="Parameter";function dh(r){return w.isInstance(r,La)}var Oa="ParameterReference";function $a(r){return w.isInstance(r,Oa)}var Pa="ParserRule";function Ce(r){return w.isInstance(r,Pa)}var ba="ReferenceType";function Ma(r){return w.isInstance(r,ba)}var Nc="ReturnType";function Da(r){return w.isInstance(r,Nc)}var Fa="SimpleType";function Fi(r){return w.isInstance(r,Fa)}var Ua="StringLiteral";function hh(r){return w.isInstance(r,Ua)}var bi="TerminalRule";function Xe(r){return w.isInstance(r,bi)}var Ga="Type";function Tn(r){return w.isInstance(r,Ga)}var Sc="TypeAttribute";function ph(r){return w.isInstance(r,Sc)}var Ba="UnionType";function Wa(r){return w.isInstance(r,Ba)}var ja="Action";function Rt(r){return w.isInstance(r,ja)}var Va="Alternatives";function Ui(r){return w.isInstance(r,Va)}var Ka="Assignment";function et(r){return w.isInstance(r,Ka)}var Ha="CharacterRange";function za(r){return w.isInstance(r,Ha)}var qa="CrossReference";function Qt(r){return w.isInstance(r,qa)}var Xa="EndOfFile";function Ya(r){return w.isInstance(r,Xa)}var Ja="Group";function Mt(r){return w.isInstance(r,Ja)}var Qa="Keyword";function Ye(r){return w.isInstance(r,Qa)}var Za="NegatedToken";function eo(r){return w.isInstance(r,Za)}var to="RegexToken";function ro(r){return w.isInstance(r,to)}var no="RuleCall";function tt(r){return w.isInstance(r,no)}var io="TerminalAlternatives";function so(r){return w.isInstance(r,io)}var ao="TerminalGroup";function oo(r){return w.isInstance(r,ao)}var lo="TerminalRuleCall";function Gi(r){return w.isInstance(r,lo)}var co="UnorderedGroup";function Bi(r){return w.isInstance(r,co)}var uo="UntilToken";function fo(r){return w.isInstance(r,uo)}var ho="Wildcard";function po(r){return w.isInstance(r,ho)}var kr=class extends zt{getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,t){switch(e){case ja:case Va:case Ka:case Ha:case qa:case Xa:case Ja:case Qa:case Za:case to:case no:case io:case ao:case lo:case co:case uo:case ho:return this.isSubtype(ma,t);case ga:case wa:case Ua:return this.isSubtype(Pi,t);case ya:case ba:case Fa:case Ba:return this.isSubtype(pa,t);case xa:return this.isSubtype($i,t)||this.isSubtype(Pi,t);case Ea:case va:case Ca:case Oa:return this.isSubtype($i,t);case Na:case Sa:case Ga:return this.isSubtype(gn,t);case Pa:return this.isSubtype(mn,t)||this.isSubtype(gn,t);case bi:return this.isSubtype(mn,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 gn;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return mn;case"Grammar:usedGrammars":return Ia;case"NamedArgument:parameter":case"ParameterReference:parameter":return La;case"TerminalRuleCall:rule":return bi;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",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"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",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"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},w=new kr;var ji={};Vt(ji,{assignMandatoryProperties:()=>yo,copyAstNode:()=>go,findLocalReferences:()=>gh,findRootNode:()=>Cc,getContainerOfType:()=>Zt,getDocument:()=>me,hasContainerOfType:()=>mh,linkContentToContainer:()=>Wi,streamAllContents:()=>at,streamAst:()=>Je,streamContents:()=>Rn,streamReferences:()=>Ir});function Wi(r){for(let[e,t]of Object.entries(r))e.startsWith("$")||(Array.isArray(t)?t.forEach((n,i)=>{se(n)&&(n.$container=r,n.$containerProperty=e,n.$containerIndex=i)}):se(t)&&(t.$container=r,t.$containerProperty=e))}function Zt(r,e){let t=r;for(;t;){if(e(t))return t;t=t.$container}}function mh(r,e){let t=r;for(;t;){if(e(t))return!0;t=t.$container}return!1}function me(r){let t=Cc(r).$document;if(!t)throw new Error("AST node has no document.");return t}function Cc(r){for(;r.$container;)r=r.$container;return r}function Rn(r,e){if(!r)throw new Error("Node must be an AstNode.");let t=e==null?void 0: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(se(s)){if(n.keyIndex++,mo(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;n.arrayIndex<s.length;){let a=n.arrayIndex++,o=s[a];if(se(o)&&mo(o,t))return{done:!1,value:o}}n.arrayIndex=0}}n.keyIndex++}return Pe})}function at(r,e){if(!r)throw new Error("Root node must be an AstNode.");return new st(r,t=>Rn(t,e))}function Je(r,e){if(r){if(e!=null&&e.range&&!mo(r,e.range))return new st(r,()=>[])}else throw new Error("Root node must be an AstNode.");return new st(r,t=>Rn(t,e),{includeRoot:!0})}function mo(r,e){var t;if(!e)return!0;let n=(t=r.$cstNode)===null||t===void 0?void 0:t.range;return n?fa(n,e):!1}function Ir(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 Pe})}function gh(r,e=me(r).parseResult.value){let t=[];return Je(e).forEach(n=>{Ir(n).forEach(i=>{i.reference.ref===r&&t.push(i.reference)})}),V(t)}function yo(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]=_c(i.defaultValue))}function _c(r){return Array.isArray(r)?[...r.map(_c)]:r}function go(r,e){let t={$type:r.$type};for(let[n,i]of Object.entries(r))if(!n.startsWith("$"))if(se(i))t[n]=go(i,e);else if(Ee(i))t[n]=e(t,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let s=[];for(let a of i)se(a)?s.push(go(a,e)):Ee(a)?s.push(e(t,n,a.$refNode,a.$refText)):s.push(a);t[n]=s}else t[n]=i;return Wi(t),t}var zi={};Vt(zi,{NEWLINE_REGEXP:()=>Eo,escapeRegExp:()=>nr,getCaseInsensitivePattern:()=>vo,getTerminalParts:()=>xh,isMultilineComment:()=>Ao,isWhitespace:()=>Hi,partialMatches:()=>ko,partialRegExp:()=>Lc});function C(r){return r.charCodeAt(0)}function Vi(r,e){Array.isArray(r)?r.forEach(function(t){e.push(t)}):e.push(r)}function Nr(r,e){if(r[e]===!0)throw"duplicate flag "+e;let t=r[e];r[e]=!0}function er(r){if(r===void 0)throw Error("Internal Error - Should never get here!");return!0}function En(){throw Error("Internal Error - Should never get here!")}function To(r){return r.type==="Character"}var An=[];for(let r=C("0");r<=C("9");r++)An.push(r);var vn=[C("_")].concat(An);for(let r=C("a");r<=C("z");r++)vn.push(r);for(let r=C("A");r<=C("Z");r++)vn.push(r);var xo=[C(" "),C("\f"),C(`
|
|
`),C("\r"),C(" "),C("\v"),C(" "),C("\xA0"),C("\u1680"),C("\u2000"),C("\u2001"),C("\u2002"),C("\u2003"),C("\u2004"),C("\u2005"),C("\u2006"),C("\u2007"),C("\u2008"),C("\u2009"),C("\u200A"),C("\u2028"),C("\u2029"),C("\u202F"),C("\u205F"),C("\u3000"),C("\uFEFF")];var yh=/[0-9a-fA-F]/,Ki=/[0-9]/,Th=/[1-9]/,tr=class{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":Nr(n,"global");break;case"i":Nr(n,"ignoreCase");break;case"m":Nr(n,"multiLine");break;case"u":Nr(n,"unicode");break;case"y":Nr(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}er(t);let n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return En()}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;er(t);break}if(!(e===!0&&t===void 0)&&er(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()),er(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):En()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[C(`
|
|
`),C("\r"),C("\u2028"),C("\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=An;break;case"D":e=An,t=!0;break;case"s":e=xo;break;case"S":e=xo,t=!0;break;case"w":e=vn;break;case"W":e=vn,t=!0;break}return er(e)?{type:"Set",value:e,complement:t}:En()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=C("\f");break;case"n":e=C(`
|
|
`);break;case"r":e=C("\r");break;case"t":e=C(" ");break;case"v":e=C("\v");break}return er(e)?{type:"Character",value:e}:En()}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:C("\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:C(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:C(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(To(n)&&this.isRangeDash()){this.consumeChar("-");let s=this.classAtom(),a=s.type==="Character";if(To(s)){if(s.value<n.value)throw Error("Range out of order in character class");e.push({from:n.value,to:s.value})}else Vi(n.value,e),e.push(C("-")),Vi(s.value,e)}else Vi(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:C("\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(Th.test(e)===!1)throw Error("Expecting a positive integer");for(;Ki.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(Ki.test(e)===!1)throw Error("Expecting an integer");for(;Ki.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:C(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 Ki.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(t){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(yh.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 ot=class{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 Eo=/\r?\n/gm,wc=new tr,Ro=class extends ot{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=nr(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)}},rr=new Ro;function xh(r){try{typeof r!="string"&&(r=r.source),r=`/${r}/`;let e=wc.pattern(r),t=[];for(let n of e.value.value)rr.reset(r),rr.visit(n),t.push({start:rr.startRegexp,end:rr.endRegex});return t}catch(e){return[]}}function Ao(r){try{return typeof r=="string"&&(r=new RegExp(r)),r=r.toString(),rr.reset(r),rr.visit(wc.pattern(r)),rr.multiline}catch(e){return!1}}function Hi(r){return(typeof r=="string"?new RegExp(r):r).test(" ")}function nr(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vo(r){return Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:nr(e)).join("")}function ko(r,e){let t=Lc(r),n=e.match(t);return!!n&&n[0].length>0}function Lc(r){typeof r=="string"&&(r=new RegExp(r));let e=r,t=r.source,n=0;function i(){let s="",a;function o(c){s+=t.substr(n,c),n+=c}function l(c){s+="(?:"+t.substr(n,c)+"|$)",n+=c}for(;n<t.length;)switch(t[n]){case"\\":switch(t[n+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[n+2]==="{"?l(t.indexOf("}",n)-n+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",n)-n+1):l(2);break;case"k":l(t.indexOf(">",n)-n+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=n,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=n,a=a.exec(t),a?o(a[0].length):l(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"!":a=n,n+=3,i(),s+=t.substr(a,n-a);break;case"<":switch(t[n+3]){case"=":case"!":a=n,n+=4,i(),s+=t.substr(a,n-a);break;default:o(t.indexOf(">",n)-n+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++n,s;default:l(1);break}return s}return new RegExp(i(),r.flags)}function Oc(r){return r.rules.find(e=>Ce(e)&&e.entry)}function $c(r){return r.rules.filter(e=>Xe(e)&&e.hidden)}function kn(r,e){let t=new Set,n=Oc(r);if(!n)return new Set(r.rules);let i=[n].concat($c(r));for(let a of i)Pc(a,t,e);let s=new Set;for(let a of r.rules)(t.has(a.name)||Xe(a)&&a.hidden)&&s.add(a);return s}function Pc(r,e,t){e.add(r.name),at(r).forEach(n=>{if(tt(n)||t&&Gi(n)){let i=n.rule.ref;i&&!e.has(i.name)&&Pc(i,e,t)}})}function So(r){if(r.terminal)return r.terminal;if(r.type.ref){let e=qi(r.type.ref);return e==null?void 0:e.terminal}}function Co(r){return r.hidden&&!Sr(r).test(" ")}function _o(r,e){return!r||!e?[]:wo(r,e,r.astNode,!0)}function In(r,e,t){if(!r||!e)return;let n=wo(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]}function wo(r,e,t,n){if(!n){let i=Zt(r.grammarSource,et);if(i&&i.feature===e)return[r]}return Ve(r)&&r.astNode===t?r.content.flatMap(i=>wo(i,e,t,!1)):[]}function Rh(r,e){return r?Oo(r,e,r==null?void 0:r.astNode):[]}function Lo(r,e,t){if(!r)return;let n=Oo(r,e,r==null?void 0:r.astNode);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function Oo(r,e,t){if(r.astNode!==t)return[];if(Ye(r.grammarSource)&&r.grammarSource.value===e)return[r];let n=Xt(r).iterator(),i,s=[];do if(i=n.next(),!i.done){let a=i.value;a.astNode===t?Ye(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):n.prune()}while(!i.done);return s}function $o(r){var e;let t=r.astNode;for(;t===((e=r.container)===null||e===void 0?void 0:e.astNode);){let n=Zt(r.grammarSource,et);if(n)return n;r=r.container}}function qi(r){let e=r;return Mi(e)&&(Rt(e.$container)?e=e.$container.$container:Ce(e.$container)?e=e.$container:bt(e.$container)),bc(r,e,new Map)}function bc(r,e,t){var n;function i(s,a){let o;return Zt(s,et)||(o=bc(a,a,t)),t.set(r,o),o}if(t.has(r))return t.get(r);t.set(r,void 0);for(let s of at(e)){if(et(s)&&s.feature.toLowerCase()==="name")return t.set(r,s),s;if(tt(s)&&Ce(s.rule.ref))return i(s,s.rule.ref);if(Fi(s)&&(!((n=s.typeRef)===null||n===void 0)&&n.ref))return i(s,s.typeRef.ref)}}function Mc(r){let e=r.$container;if(Mt(e)){let t=e.elements,n=t.indexOf(r);for(let i=n-1;i>=0;i--){let s=t[i];if(Rt(s))return s;{let a=at(t[i]).find(Rt);if(a)return a}}}if(yn(e))return Mc(e)}function Eh(r,e){return r==="?"||r==="*"||Mt(e)&&!!e.guardCondition}function Ah(r){return r==="*"||r==="+"}function vh(r){return r==="+="}function Nn(r){return Dc(r,new Set)}function Dc(r,e){if(e.has(r))return!0;e.add(r);for(let t of at(r))if(tt(t)){if(!t.rule.ref||Ce(t.rule.ref)&&!Dc(t.rule.ref,e))return!1}else{if(et(t))return!1;if(Rt(t))return!1}return!!r.definition}function kh(r){return No(r.type,new Set)}function No(r,e){if(e.has(r))return!0;if(e.add(r),Ta(r))return!1;if(Ma(r))return!1;if(Wa(r))return r.types.every(t=>No(t,e));if(Fi(r)){if(r.primitiveType!==void 0)return!0;if(r.stringType!==void 0)return!0;if(r.typeRef!==void 0){let t=r.typeRef.ref;return Tn(t)?No(t.type,e):!1}else return!1}else return!1}function Po(r){if(r.inferredType)return r.inferredType.name;if(r.dataType)return r.dataType;if(r.returnType){let e=r.returnType.ref;if(e){if(Ce(e))return e.name;if(Di(e)||Tn(e))return e.name}}}function ir(r){var e;if(Ce(r))return Nn(r)?r.name:(e=Po(r))!==null&&e!==void 0?e:r.name;if(Di(r)||Tn(r)||Da(r))return r.name;if(Rt(r)){let t=Fc(r);if(t)return t}else if(Mi(r))return r.name;throw new Error("Cannot get name of Unknown Type")}function Fc(r){var e;if(r.inferredType)return r.inferredType.name;if(!((e=r.type)===null||e===void 0)&&e.ref)return ir(r.type.ref)}function bo(r){var e,t,n;return Xe(r)?(t=(e=r.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":Nn(r)?r.name:(n=Po(r))!==null&&n!==void 0?n:r.name}function Sr(r){let e={s:!1,i:!1,u:!1},t=Cr(r.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,n)}var Mo=/[\s\S]/.source;function Cr(r,e){if(so(r))return Ih(r);if(oo(r))return Nh(r);if(za(r))return _h(r);if(Gi(r)){let t=r.rule.ref;if(!t)throw new Error("Missing rule reference.");return Et(Cr(t.definition),{cardinality:r.cardinality,lookahead:r.lookahead})}else{if(eo(r))return Ch(r);if(fo(r))return Sh(r);if(ro(r)){let t=r.regex.lastIndexOf("/"),n=r.regex.substring(1,t),i=r.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Et(n,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}else{if(po(r))return Et(Mo,{cardinality:r.cardinality,lookahead:r.lookahead});throw new Error(`Invalid terminal element: ${r==null?void 0:r.$type}`)}}}function Ih(r){return Et(r.elements.map(e=>Cr(e)).join("|"),{cardinality:r.cardinality,lookahead:r.lookahead})}function Nh(r){return Et(r.elements.map(e=>Cr(e)).join(""),{cardinality:r.cardinality,lookahead:r.lookahead})}function Sh(r){return Et(`${Mo}*?${Cr(r.terminal)}`,{cardinality:r.cardinality,lookahead:r.lookahead})}function Ch(r){return Et(`(?!${Cr(r.terminal)})${Mo}*?`,{cardinality:r.cardinality,lookahead:r.lookahead})}function _h(r){return r.right?Et(`[${Io(r.left)}-${Io(r.right)}]`,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1}):Et(Io(r.left),{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}function Io(r){return nr(r.value)}function Et(r,e){var t;return(e.wrap!==!1||e.lookahead)&&(r=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${r})`),e.cardinality?`${r}${e.cardinality}`:r}function Do(r){let e=[],t=r.Grammar;for(let n of t.rules)Xe(n)&&Co(n)&&Ao(Sr(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:Li}}function _r(r){console&&console.error&&console.error(`Error: ${r}`)}function Sn(r){console&&console.warn&&console.warn(`Warning: ${r}`)}function Cn(r){let e=new Date().getTime(),t=r();return{time:new Date().getTime()-e,value:t}}function _n(r){function e(){}e.prototype=r;let t=new e;function n(){return typeof t.bar}return n(),n(),r;(0,eval)(r)}function wh(r){return Lh(r)?r.LABEL:r.name}function Lh(r){return Se(r.LABEL)&&r.LABEL!==""}var He=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),k(this.definition,t=>{t.accept(e)})}},K=class extends He{constructor(e){super([]),this.idx=1,ke(this,je(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},be=class extends He{constructor(e){super(e.definition),this.orgText="",ke(this,je(e,t=>t!==void 0))}},Y=class extends He{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ke(this,je(e,t=>t!==void 0))}},H=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},J=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},Q=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},D=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},z=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},q=class extends He{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,ke(this,je(e,t=>t!==void 0))}},M=class{constructor(e){this.idx=1,ke(this,je(e,t=>t!==void 0))}accept(e){e.visit(this)}};function Yi(r){return R(r,wr)}function wr(r){function e(t){return R(t,wr)}if(r instanceof K){let t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return Se(r.label)&&(t.label=r.label),t}else{if(r instanceof Y)return{type:"Alternative",definition:e(r.definition)};if(r instanceof H)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof J)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Q)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:wr(new M({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof z)return{type:"RepetitionWithSeparator",idx:r.idx,separator:wr(new M({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof D)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof q)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof M){let t={type:"Terminal",name:r.terminalType.name,label:wh(r.terminalType),idx:r.idx};Se(r.label)&&(t.terminalLabel=r.label);let n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(t.pattern=Ze(n)?n.source:n),t}else{if(r instanceof be)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}var Me=class{visit(e){let t=e;switch(t.constructor){case K:return this.visitNonTerminal(t);case Y:return this.visitAlternative(t);case H:return this.visitOption(t);case J:return this.visitRepetitionMandatory(t);case Q:return this.visitRepetitionMandatoryWithSeparator(t);case z:return this.visitRepetitionWithSeparator(t);case D:return this.visitRepetition(t);case q:return this.visitAlternation(t);case M:return this.visitTerminal(t);case be:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function Fo(r){return r instanceof Y||r instanceof H||r instanceof D||r instanceof J||r instanceof Q||r instanceof z||r instanceof M||r instanceof be}function sr(r,e=[]){return r instanceof H||r instanceof D||r instanceof z?!0:r instanceof q?_i(r.definition,n=>sr(n,e)):r instanceof K&&ie(e,r)?!1:r instanceof He?(r instanceof K&&e.push(r),Oe(r.definition,n=>sr(n,e))):!1}function Uo(r){return r instanceof q}function Ge(r){if(r instanceof K)return"SUBRULE";if(r instanceof H)return"OPTION";if(r instanceof q)return"OR";if(r instanceof J)return"AT_LEAST_ONE";if(r instanceof Q)return"AT_LEAST_ONE_SEP";if(r instanceof z)return"MANY_SEP";if(r instanceof D)return"MANY";if(r instanceof M)return"CONSUME";throw Error("non exhaustive match")}var At=class{walk(e,t=[]){k(e.definition,(n,i)=>{let s=fe(e.definition,i+1);if(n instanceof K)this.walkProdRef(n,s,t);else if(n instanceof M)this.walkTerminal(n,s,t);else if(n instanceof Y)this.walkFlat(n,s,t);else if(n instanceof H)this.walkOption(n,s,t);else if(n instanceof J)this.walkAtLeastOne(n,s,t);else if(n instanceof Q)this.walkAtLeastOneSep(n,s,t);else if(n instanceof z)this.walkManySep(n,s,t);else if(n instanceof D)this.walkMany(n,s,t);else if(n instanceof q)this.walkOr(n,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let i=t.concat(n);this.walk(e,i)}walkOption(e,t,n){let i=t.concat(n);this.walk(e,i)}walkAtLeastOne(e,t,n){let i=[new H({definition:e.definition})].concat(t,n);this.walk(e,i)}walkAtLeastOneSep(e,t,n){let i=Uc(e,t,n);this.walk(e,i)}walkMany(e,t,n){let i=[new H({definition:e.definition})].concat(t,n);this.walk(e,i)}walkManySep(e,t,n){let i=Uc(e,t,n);this.walk(e,i)}walkOr(e,t,n){let i=t.concat(n);k(e.definition,s=>{let a=new Y({definition:[s]});this.walk(a,i)})}};function Uc(r,e,t){return[new H({definition:[new M({terminalType:r.separator})].concat(r.definition)})].concat(e,t)}function ar(r){if(r instanceof K)return ar(r.referencedRule);if(r instanceof M)return Ph(r);if(Fo(r))return Oh(r);if(Uo(r))return $h(r);throw Error("non exhaustive match")}function Oh(r){let e=[],t=r.definition,n=0,i=t.length>n,s,a=!0;for(;i&&a;)s=t[n],a=sr(s),e=e.concat(ar(s)),n=n+1,i=t.length>n;return dn(e)}function $h(r){let e=R(r.definition,t=>ar(t));return dn(ue(e))}function Ph(r){return[r.terminalType]}var Ji="_~IN~_";var Go=class extends At{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let i=bh(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(n),a=new Y({definition:s}),o=ar(a);this.follows[i]=o}};function Gc(r){let e={};return k(r,t=>{let n=new Go(t).startWalking();ke(e,n)}),e}function bh(r,e){return r.name+e+Ji}var Qi={},Mh=new tr;function Lr(r){let e=r.toString();if(Qi.hasOwnProperty(e))return Qi[e];{let t=Mh.pattern(e);return Qi[e]=t,t}}function Bc(){Qi={}}var jc="Complement Sets are not supported for first char optimization",wn=`Unable to use "first char" lexer optimizations:
|
|
`;function Vc(r,e=!1){try{let t=Lr(r);return Bo(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===jc)e&&Sn(`${wn} Unable to optimize: < ${r.toString()} >
|
|
Complement Sets cannot be automatically optimized.
|
|
This will disable the lexer's first char optimizations.
|
|
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=`
|
|
This will disable the lexer's first char optimizations.
|
|
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),_r(`${wn}
|
|
Failed parsing: < ${r.toString()} >
|
|
Using the @chevrotain/regexp-to-ast library
|
|
Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function Bo(r,e,t){switch(r.type){case"Disjunction":for(let i=0;i<r.value.length;i++)Bo(r.value[i],e,t);break;case"Alternative":let n=r.value;for(let i=0;i<n.length;i++){let s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}let a=s;switch(a.type){case"Character":Zi(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(jc);k(a.value,l=>{if(typeof l=="number")Zi(l,e,t);else{let c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)Zi(u,e,t);else{for(let u=c.from;u<=c.to&&u<Or;u++)Zi(u,e,t);if(c.to>=Or){let u=c.from>=Or?c.from:Or,f=c.to,h=lt(u),d=lt(f);for(let m=h;m<=d;m++)e[m]=m}}}});break;case"Group":Bo(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}let o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&Wo(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return te(e)}function Zi(r,e,t){let n=lt(r);e[n]=n,t===!0&&Dh(r,e)}function Dh(r,e){let t=String.fromCharCode(r),n=t.toUpperCase();if(n!==t){let i=lt(n.charCodeAt(0));e[i]=i}else{let i=t.toLowerCase();if(i!==t){let s=lt(i.charCodeAt(0));e[s]=s}}}function Wc(r,e){return Tt(r.value,t=>{if(typeof t=="number")return ie(e,t);{let n=t;return Tt(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function Wo(r){let e=r.quantifier;return e&&e.atLeast===0?!0:r.value?pe(r.value)?Oe(r.value,Wo):Wo(r.value):!1}var jo=class extends ot{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){ie(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Wc(e,this.targetCharCodes)===void 0&&(this.found=!0):Wc(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};function es(r,e){if(e instanceof RegExp){let t=Lr(e),n=new jo(r);return n.visit(t),n.found}else return Tt(e,t=>ie(r,t.charCodeAt(0)))!==void 0}var or="PATTERN",$r="defaultMode",ts="modes",Ko=typeof new RegExp("(?:)").sticky=="boolean";function zc(r,e){e=fn(e,{useSticky:Ko,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
|
|
`],tracer:(E,T)=>T()});let t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{tp()});let n;t("Reject Lexer.NA",()=>{n=Ht(r,E=>E[or]===oe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=R(n,E=>{let T=E[or];if(Ze(T)){let $=T.source;return $.length===1&&$!=="^"&&$!=="$"&&$!=="."&&!T.ignoreCase?$:$.length===2&&$[0]==="\\"&&!ie(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],$[1])?$[1]:e.useSticky?Hc(T):Kc(T)}else{if(it(T))return i=!0,{exec:T};if(typeof T=="object")return i=!0,T;if(typeof T=="string"){if(T.length===1)return T;{let $=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),P=new RegExp($);return e.useSticky?Hc(P):Kc(P)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=R(n,E=>E.tokenTypeIdx),o=R(n,E=>{let T=E.GROUP;if(T!==oe.SKIPPED){if(Se(T))return T;if($e(T))return!1;throw Error("non exhaustive match")}}),l=R(n,E=>{let T=E.LONGER_ALT;if(T)return pe(T)?R(T,P=>oa(n,P)):[oa(n,T)]}),c=R(n,E=>E.PUSH_MODE),u=R(n,E=>N(E,"POP_MODE"))});let f;t("Line Terminator Handling",()=>{let E=tu(e.lineTerminatorCharacters);f=R(n,T=>!1),e.positionTracking!=="onlyOffset"&&(f=R(n,T=>N(T,"LINE_BREAKS")?!!T.LINE_BREAKS:eu(T,E)===!1&&es(E,T.PATTERN)))});let h,d,m,g;t("Misc Mapping #2",()=>{h=R(n,Qc),d=R(s,Zh),m=ae(n,(E,T)=>{let $=T.GROUP;return Se($)&&$!==oe.SKIPPED&&(E[$]=[]),E},{}),g=R(s,(E,T)=>({pattern:s[T],longerAlt:l[T],canLineTerminator:f[T],isCustom:h[T],short:d[T],group:o[T],push:c[T],pop:u[T],tokenTypeIdx:a[T],tokenType:n[T]}))});let v=!0,x=[];return e.safeMode||t("First Char Optimization",()=>{x=ae(n,(E,T,$)=>{if(typeof T.PATTERN=="string"){let P=T.PATTERN.charCodeAt(0),Te=lt(P);Vo(E,Te,g[$])}else if(pe(T.START_CHARS_HINT)){let P;k(T.START_CHARS_HINT,Te=>{let Rr=typeof Te=="string"?Te.charCodeAt(0):Te,Ae=lt(Rr);P!==Ae&&(P=Ae,Vo(E,Ae,g[$]))})}else if(Ze(T.PATTERN))if(T.PATTERN.unicode)v=!1,e.ensureOptimizations&&_r(`${wn} Unable to analyze < ${T.PATTERN.toString()} > pattern.
|
|
The regexp unicode flag is not currently supported by the regexp-to-ast library.
|
|
This will disable the lexer's first char optimizations.
|
|
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let P=Vc(T.PATTERN,e.ensureOptimizations);b(P)&&(v=!1),k(P,Te=>{Vo(E,Te,g[$])})}else e.ensureOptimizations&&_r(`${wn} TokenType: <${T.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
|
|
This will disable the lexer's first char optimizations.
|
|
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return E},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function qc(r,e){let t=[],n=Uh(r);t=t.concat(n.errors);let i=Gh(n.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Fh(s)),t=t.concat(qh(s)),t=t.concat(Xh(s,e)),t=t.concat(Yh(s)),t}function Fh(r){let e=[],t=Re(r,n=>Ze(n[or]));return e=e.concat(Wh(t)),e=e.concat(Kh(t)),e=e.concat(Hh(t)),e=e.concat(zh(t)),e=e.concat(jh(t)),e}function Uh(r){let e=Re(r,i=>!N(i,or)),t=R(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:re.MISSING_PATTERN,tokenTypes:[i]})),n=Kt(r,e);return{errors:t,valid:n}}function Gh(r){let e=Re(r,i=>{let s=i[or];return!Ze(s)&&!it(s)&&!N(s,"exec")&&!Se(s)}),t=R(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:re.INVALID_PATTERN,tokenTypes:[i]})),n=Kt(r,e);return{errors:t,valid:n}}var Bh=/[^\\][$]/;function Wh(r){class e extends ot{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}let t=Re(r,i=>{let s=i.PATTERN;try{let a=Lr(s),o=new e;return o.visit(a),o.found}catch(a){return Bh.test(s.source)}});return R(t,i=>({message:`Unexpected RegExp Anchor Error:
|
|
Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
|
|
See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:re.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function jh(r){let e=Re(r,n=>n.PATTERN.test(""));return R(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:re.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}var Vh=/[^\\[][\^]|^\^/;function Kh(r){class e extends ot{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}let t=Re(r,i=>{let s=i.PATTERN;try{let a=Lr(s),o=new e;return o.visit(a),o.found}catch(a){return Vh.test(s.source)}});return R(t,i=>({message:`Unexpected RegExp Anchor Error:
|
|
Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
|
|
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:re.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Hh(r){let e=Re(r,n=>{let i=n[or];return i instanceof RegExp&&(i.multiline||i.global)});return R(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:re.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function zh(r){let e=[],t=R(r,s=>ae(r,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!ie(e,o)&&o.PATTERN!==oe.NA&&(e.push(o),a.push(o)),a),[]));t=gt(t);let n=Re(t,s=>s.length>1);return R(n,s=>{let a=R(s,l=>l.name);return{message:`The same RegExp pattern ->${Ie(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:re.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function qh(r){let e=Re(r,n=>{if(!N(n,"GROUP"))return!1;let i=n.GROUP;return i!==oe.SKIPPED&&i!==oe.NA&&!Se(i)});return R(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:re.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function Xh(r,e){let t=Re(r,i=>i.PUSH_MODE!==void 0&&!ie(e,i.PUSH_MODE));return R(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:re.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function Yh(r){let e=[],t=ae(r,(n,i,s)=>{let a=i.PATTERN;return a===oe.NA||(Se(a)?n.push({str:a,idx:s,tokenType:i}):Ze(a)&&Qh(a)&&n.push({str:a.source,idx:s,tokenType:i})),n},[]);return k(r,(n,i)=>{k(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&Jh(s,n.PATTERN)){let l=`Token: ->${o.name}<- can never be matched.
|
|
Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition.
|
|
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:re.UNREACHABLE_PATTERN,tokenTypes:[n,o]})}})}),e}function Jh(r,e){if(Ze(e)){let t=e.exec(r);return t!==null&&t.index===0}else{if(it(e))return e(r,0,[],{});if(N(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function Qh(r){return Tt([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>r.source.indexOf(t)!==-1)===void 0}function Kc(r){let e=r.ignoreCase?"i":"";return new RegExp(`^(?:${r.source})`,e)}function Hc(r){let e=r.ignoreCase?"iy":"y";return new RegExp(`${r.source}`,e)}function Xc(r,e,t){let n=[];return N(r,$r)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+$r+`> property in its definition
|
|
`,type:re.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),N(r,ts)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+ts+`> property in its definition
|
|
`,type:re.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),N(r,ts)&&N(r,$r)&&!N(r.modes,r.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${$r}: <${r.defaultMode}>which does not exist
|
|
`,type:re.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),N(r,ts)&&k(r.modes,(i,s)=>{k(i,(a,o)=>{if($e(a))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
|
|
`,type:re.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(N(a,"LONGER_ALT")){let l=pe(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];k(l,c=>{!$e(c)&&!ie(i,c)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${a.name}> outside of mode <${s}>
|
|
`,type:re.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function Yc(r,e,t){let n=[],i=!1,s=gt(ue(te(r.modes))),a=Ht(s,l=>l[or]===oe.NA),o=tu(t);return e&&k(a,l=>{let c=eu(l,o);if(c!==!1){let f={message:ep(l,c),type:c.issue,tokenType:l};n.push(f)}else N(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):es(o,l.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found.
|
|
This Lexer has been defined to track line and column information,
|
|
But none of the Token Types can be identified as matching a line terminator.
|
|
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
|
|
for details.`,type:re.NO_LINE_BREAKS_FLAGS}),n}function Jc(r){let e={},t=mt(r);return k(t,n=>{let i=r[n];if(pe(i))e[n]=[];else throw Error("non exhaustive match")}),e}function Qc(r){let e=r.PATTERN;if(Ze(e))return!1;if(it(e))return!0;if(N(e,"exec"))return!0;if(Se(e))return!1;throw Error("non exhaustive match")}function Zh(r){return Se(r)&&r.length===1?r.charCodeAt(0):!1}var Zc={test:function(r){let e=r.length;for(let t=this.lastIndex;t<e;t++){let n=r.charCodeAt(t);if(n===10)return this.lastIndex=t+1,!0;if(n===13)return r.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function eu(r,e){if(N(r,"LINE_BREAKS"))return!1;if(Ze(r.PATTERN)){try{es(e,r.PATTERN)}catch(t){return{issue:re.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(Se(r.PATTERN))return!1;if(Qc(r))return{issue:re.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function ep(r,e){if(e.issue===re.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
|
|
The problem is in the <${r.name}> Token Type
|
|
Root cause: ${e.errMsg}.
|
|
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===re.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
|
|
The problem is in the <${r.name}> Token Type
|
|
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function tu(r){return R(r,t=>Se(t)?t.charCodeAt(0):t)}function Vo(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}var Or=256,rs=[];function lt(r){return r<Or?r:rs[r]}function tp(){if(b(rs)){rs=new Array(65536);for(let r=0;r<65536;r++)rs[r]=r>255?255+~~(r/255):r}}function vt(r,e){let t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function Pr(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}var ru=1,iu={};function kt(r){let e=rp(r);np(e),sp(e),ip(e),k(e,t=>{t.isParent=t.categoryMatches.length>0})}function rp(r){let e=ee(r),t=r,n=!0;for(;n;){t=gt(ue(R(t,s=>s.CATEGORIES)));let i=Kt(t,e);e=e.concat(i),b(i)?n=!1:t=i}return e}function np(r){k(r,e=>{Ho(e)||(iu[ru]=e,e.tokenTypeIdx=ru++),nu(e)&&!pe(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),nu(e)||(e.CATEGORIES=[]),ap(e)||(e.categoryMatches=[]),op(e)||(e.categoryMatchesMap={})})}function ip(r){k(r,e=>{e.categoryMatches=[],k(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(iu[n].tokenTypeIdx)})})}function sp(r){k(r,e=>{su([],e)})}function su(r,e){k(r,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),k(e.CATEGORIES,t=>{let n=r.concat(e);ie(n,t)||su(n,t)})}function Ho(r){return N(r,"tokenTypeIdx")}function nu(r){return N(r,"CATEGORIES")}function ap(r){return N(r,"categoryMatches")}function op(r){return N(r,"categoryMatchesMap")}function au(r){return N(r,"tokenTypeIdx")}var zo={buildUnableToPopLexerModeMessage(r){return`Unable to pop Lexer Mode after encountering Token ->${r.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(r,e,t,n,i){return`unexpected character: ->${r.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var re;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",r[r.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(re||(re={}));var Ln={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
|
|
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:zo,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Ln);var oe=class{constructor(e,t=Ln){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);let{time:o,value:l}=Cn(s),c=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&c(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
|
|
a boolean 2nd argument is no longer supported`);this.config=ke({},Ln,t);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Ln.lineTerminatorsPattern)this.config.lineTerminatorsPattern=Zc;else if(this.config.lineTerminatorCharacters===Ln.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
|
|
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),pe(e)?i={modes:{defaultMode:ee(e)},defaultMode:$r}:(s=!1,i=ee(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Xc(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Yc(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},k(i.modes,(o,l)=>{i.modes[l]=Ht(o,c=>$e(c))});let a=mt(i.modes);if(k(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(qc(o,a))}),b(this.lexerDefinitionErrors)){kt(o);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=zc(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=c.charCodeToPatternIdxToConfig,this.emptyGroups=ke({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,!b(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let l=R(this.lexerDefinitionErrors,c=>c.message).join(`-----------------------
|
|
`);throw new Error(`Errors detected in definition of Lexer:
|
|
`+l)}k(this.lexerDefinitionWarning,o=>{Sn(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Ko?(this.chopInput=aa,this.match=this.matchWithTest):(this.updateLastIndex=ce,this.match=this.matchWithExec),s&&(this.handleModes=ce),this.trackStartLines===!1&&(this.computeNewColumn=aa),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ce),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let o=ae(this.canModeBeOptimized,(l,c,u)=>(c===!1&&l.push(u),l),[]);if(t.ensureOptimizations&&!b(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized.
|
|
Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
|
|
Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Bc()}),this.TRACE_INIT("toFastProperties",()=>{_n(this)})})}tokenize(e,t=this.defaultMode){if(!b(this.lexerDefinitionErrors)){let i=R(this.lexerDefinitionErrors,s=>s.message).join(`-----------------------
|
|
`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
|
|
`+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,i,s,a,o,l,c,u,f,h,d,m,g,v,x,E,T=e,$=T.length,P=0,Te=0,Rr=this.hasCustom?0:Math.floor(e.length/10),Ae=new Array(Rr),wt=[],dt=this.trackStartLines?1:void 0,A=this.trackStartLines?1:void 0,y=Jc(this.emptyGroups),I=this.trackStartLines,S=this.config.lineTerminatorsPattern,j=0,O=[],L=[],we=[],Le=[];Object.freeze(Le);let Z;function Wt(){return O}function cc(ve){let qe=lt(ve),Er=L[qe];return Er===void 0?Le:Er}let Hd=ve=>{if(we.length===1&&ve.tokenType.PUSH_MODE===void 0){let qe=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ve);wt.push({offset:ve.startOffset,line:ve.startLine,column:ve.startColumn,length:ve.image.length,message:qe})}else{we.pop();let qe=yt(we);O=this.patternIdxToConfig[qe],L=this.charCodeToPatternIdxToConfig[qe],j=O.length;let Er=this.canModeBeOptimized[qe]&&this.config.safeMode===!1;L&&Er?Z=cc:Z=Wt}};function uc(ve){we.push(ve),L=this.charCodeToPatternIdxToConfig[ve],O=this.patternIdxToConfig[ve],j=O.length,j=O.length;let qe=this.canModeBeOptimized[ve]&&this.config.safeMode===!1;L&&qe?Z=cc:Z=Wt}uc.call(this,t);let Qe,fc=this.config.recoveryEnabled;for(;P<$;){l=null;let ve=T.charCodeAt(P),qe=Z(ve),Er=qe.length;for(n=0;n<Er;n++){Qe=qe[n];let We=Qe.pattern;c=null;let ht=Qe.short;if(ht!==!1?ve===ht&&(l=We):Qe.isCustom===!0?(E=We.exec(T,P,Ae,y),E!==null?(l=E[0],E.payload!==void 0&&(c=E.payload)):l=null):(this.updateLastIndex(We,P),l=this.match(We,e,P)),l!==null){if(o=Qe.longerAlt,o!==void 0){let Lt=o.length;for(s=0;s<Lt;s++){let pt=O[o[s]],jt=pt.pattern;if(u=null,pt.isCustom===!0?(E=jt.exec(T,P,Ae,y),E!==null?(a=E[0],E.payload!==void 0&&(u=E.payload)):a=null):(this.updateLastIndex(jt,P),a=this.match(jt,e,P)),a&&a.length>l.length){l=a,c=u,Qe=pt;break}}}break}}if(l!==null){if(f=l.length,h=Qe.group,h!==void 0&&(d=Qe.tokenTypeIdx,m=this.createTokenInstance(l,P,d,Qe.tokenType,dt,A,f),this.handlePayload(m,c),h===!1?Te=this.addToken(Ae,Te,m):y[h].push(m)),e=this.chopInput(e,f),P=P+f,A=this.computeNewColumn(A,f),I===!0&&Qe.canLineTerminator===!0){let We=0,ht,Lt;S.lastIndex=0;do ht=S.test(l),ht===!0&&(Lt=S.lastIndex-1,We++);while(ht===!0);We!==0&&(dt=dt+We,A=f-Lt,this.updateTokenEndLineColumnLocation(m,h,Lt,We,dt,A,f))}this.handleModes(Qe,Hd,uc,m)}else{let We=P,ht=dt,Lt=A,pt=fc===!1;for(;pt===!1&&P<$;)for(e=this.chopInput(e,1),P++,i=0;i<j;i++){let jt=O[i],sa=jt.pattern,dc=jt.short;if(dc!==!1?T.charCodeAt(P)===dc&&(pt=!0):jt.isCustom===!0?pt=sa.exec(T,P,Ae,y)!==null:(this.updateLastIndex(sa,P),pt=sa.exec(e)!==null),pt===!0)break}if(g=P-We,A=this.computeNewColumn(A,g),x=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(T,We,g,ht,Lt),wt.push({offset:We,line:ht,column:Lt,length:g,message:x}),fc===!1)break}}return this.hasCustom||(Ae.length=Te),{tokens:Ae,groups:y,errors:wt}}handleModes(e,t,n,i){if(e.pop===!0){let s=e.push;t(i),s!==void 0&&n.call(this,s)}else e.push!==void 0&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,i,s,a,o){let l,c;t!==void 0&&(l=n===o-1,c=l?-1:0,i===1&&l===!0||(e.endLine=s+c,e.endColumn=a-1+-c))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,i){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:i}}createStartOnlyToken(e,t,n,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:n,tokenType:i}}createFullToken(e,t,n,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:n,tokenType:i}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,n){return e.test(t)===!0?t.substring(n,e.lastIndex):null}matchWithExec(e,t){let n=e.exec(t);return n!==null?n[0]:null}};oe.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.";oe.NA=/NOT_APPLICABLE/;function It(r){return qo(r)?r.LABEL:r.name}function qo(r){return Se(r.LABEL)&&r.LABEL!==""}var lp="parent",ou="categories",lu="label",cu="group",uu="push_mode",fu="pop_mode",du="longer_alt",hu="line_breaks",pu="start_chars_hint";function ns(r){return cp(r)}function cp(r){let e=r.pattern,t={};if(t.name=r.name,$e(e)||(t.PATTERN=e),N(r,lp))throw`The parent property is no longer supported.
|
|
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return N(r,ou)&&(t.CATEGORIES=r[ou]),kt([t]),N(r,lu)&&(t.LABEL=r[lu]),N(r,cu)&&(t.GROUP=r[cu]),N(r,fu)&&(t.POP_MODE=r[fu]),N(r,uu)&&(t.PUSH_MODE=r[uu]),N(r,du)&&(t.LONGER_ALT=r[du]),N(r,hu)&&(t.LINE_BREAKS=r[hu]),N(r,pu)&&(t.START_CHARS_HINT=r[pu]),t}var ze=ns({name:"EOF",pattern:oe.NA});kt([ze]);function lr(r,e,t,n,i,s,a,o){return{image:e,startOffset:t,endOffset:n,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}function On(r,e){return vt(r,e)}var Nt={buildMismatchTokenMessage({expected:r,actual:e,previous:t,ruleName:n}){return`Expecting ${qo(r)?`--> ${It(r)} <--`:`token of type --> ${r.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:r,ruleName:e}){return"Redundant input, expecting EOF but found: "+r.image},buildNoViableAltMessage({expectedPathsPerAlt:r,actual:e,previous:t,customUserDescription:n,ruleName:i}){let s="Expecting: ",o=`
|
|
but found: '`+Ie(e).image+"'";if(n)return s+n+o;{let l=ae(r,(h,d)=>h.concat(d),[]),c=R(l,h=>`[${R(h,d=>It(d)).join(", ")}]`),f=`one of these possible Token sequences:
|
|
${R(c,(h,d)=>` ${d+1}. ${h}`).join(`
|
|
`)}`;return s+f+o}},buildEarlyExitMessage({expectedIterationPaths:r,actual:e,customUserDescription:t,ruleName:n}){let i="Expecting: ",a=`
|
|
but found: '`+Ie(e).image+"'";if(t)return i+t+a;{let l=`expecting at least one iteration which starts with one of these possible Token sequences::
|
|
<${R(r,c=>`[${R(c,u=>It(u)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(Nt);var mu={buildRuleNotFoundError(r,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
|
|
inside top level rule: ->`+r.name+"<-"}},rt={buildDuplicateFoundError(r,e){function t(u){return u instanceof M?u.terminalType.name:u instanceof K?u.nonTerminalName:""}let n=r.name,i=Ie(e),s=i.idx,a=Ge(i),o=t(i),l=s>0,c=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""}
|
|
appears more than once (${e.length} times) in the top level rule: ->${n}<-.
|
|
For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
|
|
`;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,`
|
|
`),c},buildNamespaceConflictError(r){return`Namespace conflict found in grammar.
|
|
The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${r.name}>.
|
|
To resolve this make sure each Terminal and Non-Terminal names are unique
|
|
This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
|
|
and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(r){let e=R(r.prefixPath,i=>It(i)).join(", "),t=r.alternation.idx===0?"":r.alternation.idx;return`Ambiguous alternatives: <${r.ambiguityIndices.join(" ,")}> due to common lookahead prefix
|
|
in <OR${t}> inside <${r.topLevelRule.name}> Rule,
|
|
<${e}> may appears as a prefix path in all these alternatives.
|
|
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
|
|
For Further details.`},buildAlternationAmbiguityError(r){let e=R(r.prefixPath,i=>It(i)).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,n=`Ambiguous Alternatives Detected: <${r.ambiguityIndices.join(" ,")}> in <OR${t}> inside <${r.topLevelRule.name}> Rule,
|
|
<${e}> may appears as a prefix path in all these alternatives.
|
|
`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
For Further details.`,n},buildEmptyRepetitionError(r){let e=Ge(r.repetition);return r.repetition.idx!==0&&(e+=r.repetition.idx),`The repetition <${e}> within Rule <${r.topLevelRule.name}> can never consume any tokens.
|
|
This could lead to an infinite loop.`},buildTokenNameError(r){return"deprecated"},buildEmptyAlternationError(r){return`Ambiguous empty alternative: <${r.emptyChoiceIdx+1}> in <OR${r.alternation.idx}> inside <${r.topLevelRule.name}> Rule.
|
|
Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(r){return`An Alternation cannot have more than 256 alternatives:
|
|
<OR${r.alternation.idx}> inside <${r.topLevelRule.name}> Rule.
|
|
has ${r.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(r){let e=r.topLevelRule.name,t=R(r.leftRecursionPath,s=>s.name),n=`${e} --> ${t.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
|
|
rule: <${e}> can be invoked from itself (directly or indirectly)
|
|
without consuming any Tokens. The grammar path that causes this is:
|
|
${n}
|
|
To fix this refactor your grammar to remove the left recursion.
|
|
see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(r){return"deprecated"},buildDuplicateRuleNameError(r){let e;return r.topLevelRule instanceof be?e=r.topLevelRule.name:e=r.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${r.grammarName}<-`}};function gu(r,e){let t=new Xo(r,e);return t.resolveRefs(),t.errors}var Xo=class extends Me{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){k(te(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:ge.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}};var Yo=class extends At{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=ee(this.path.ruleStack).reverse(),this.occurrenceStack=ee(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){b(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},is=class extends Yo{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=t.concat(n),s=new Y({definition:i});this.possibleTokTypes=ar(s),this.found=!0}}},br=class extends At{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},ss=class extends br{walkMany(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,n)}},$n=class extends br{walkManySep(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,n)}},as=class extends br{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,n)}},Pn=class extends br{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,n)}};function os(r,e,t=[]){t=ee(t);let n=[],i=0;function s(o){return o.concat(fe(r,i+1))}function a(o){let l=os(s(o),e,t);return n.concat(l)}for(;t.length<e&&i<r.length;){let o=r[i];if(o instanceof Y)return a(o.definition);if(o instanceof K)return a(o.definition);if(o instanceof H)n=a(o.definition);else if(o instanceof J){let l=o.definition.concat([new D({definition:o.definition})]);return a(l)}else if(o instanceof Q){let l=[new Y({definition:o.definition}),new D({definition:[new M({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof z){let l=o.definition.concat([new D({definition:[new M({terminalType:o.separator})].concat(o.definition)})]);n=a(l)}else if(o instanceof D){let l=o.definition.concat([new D({definition:o.definition})]);n=a(l)}else{if(o instanceof q)return k(o.definition,l=>{b(l.definition)===!1&&(n=a(l.definition))}),n;if(o instanceof M)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:t,suffixDef:fe(r,i)}),n}function ls(r,e,t,n){let i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE",o=!1,l=e.length,c=l-n-1,u=[],f=[];for(f.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!b(f);){let h=f.pop();if(h===a){o&&yt(f).idx<=c&&f.pop();continue}let d=h.def,m=h.idx,g=h.ruleStack,v=h.occurrenceStack;if(b(d))continue;let x=d[0];if(x===i){let E={idx:m,def:fe(d),ruleStack:$t(g),occurrenceStack:$t(v)};f.push(E)}else if(x instanceof M)if(m<l-1){let E=m+1,T=e[E];if(t(T,x.terminalType)){let $={idx:E,def:fe(d),ruleStack:g,occurrenceStack:v};f.push($)}}else if(m===l-1)u.push({nextTokenType:x.terminalType,nextTokenOccurrence:x.idx,ruleStack:g,occurrenceStack:v}),o=!0;else throw Error("non exhaustive match");else if(x instanceof K){let E=ee(g);E.push(x.nonTerminalName);let T=ee(v);T.push(x.idx);let $={idx:m,def:x.definition.concat(s,fe(d)),ruleStack:E,occurrenceStack:T};f.push($)}else if(x instanceof H){let E={idx:m,def:fe(d),ruleStack:g,occurrenceStack:v};f.push(E),f.push(a);let T={idx:m,def:x.definition.concat(fe(d)),ruleStack:g,occurrenceStack:v};f.push(T)}else if(x instanceof J){let E=new D({definition:x.definition,idx:x.idx}),T=x.definition.concat([E],fe(d)),$={idx:m,def:T,ruleStack:g,occurrenceStack:v};f.push($)}else if(x instanceof Q){let E=new M({terminalType:x.separator}),T=new D({definition:[E].concat(x.definition),idx:x.idx}),$=x.definition.concat([T],fe(d)),P={idx:m,def:$,ruleStack:g,occurrenceStack:v};f.push(P)}else if(x instanceof z){let E={idx:m,def:fe(d),ruleStack:g,occurrenceStack:v};f.push(E),f.push(a);let T=new M({terminalType:x.separator}),$=new D({definition:[T].concat(x.definition),idx:x.idx}),P=x.definition.concat([$],fe(d)),Te={idx:m,def:P,ruleStack:g,occurrenceStack:v};f.push(Te)}else if(x instanceof D){let E={idx:m,def:fe(d),ruleStack:g,occurrenceStack:v};f.push(E),f.push(a);let T=new D({definition:x.definition,idx:x.idx}),$=x.definition.concat([T],fe(d)),P={idx:m,def:$,ruleStack:g,occurrenceStack:v};f.push(P)}else if(x instanceof q)for(let E=x.definition.length-1;E>=0;E--){let T=x.definition[E],$={idx:m,def:T.definition.concat(fe(d)),ruleStack:g,occurrenceStack:v};f.push($),f.push(a)}else if(x instanceof Y)f.push({idx:m,def:x.definition.concat(fe(d)),ruleStack:g,occurrenceStack:v});else if(x instanceof be)f.push(up(x,m,g,v));else throw Error("non exhaustive match")}return u}function up(r,e,t,n){let i=ee(t);i.push(r.name);let s=ee(n);return s.push(1),{idx:e,def:r.definition,ruleStack:i,occurrenceStack:s}}var ne;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(ne||(ne={}));function bn(r){if(r instanceof H||r==="Option")return ne.OPTION;if(r instanceof D||r==="Repetition")return ne.REPETITION;if(r instanceof J||r==="RepetitionMandatory")return ne.REPETITION_MANDATORY;if(r instanceof Q||r==="RepetitionMandatoryWithSeparator")return ne.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof z||r==="RepetitionWithSeparator")return ne.REPETITION_WITH_SEPARATOR;if(r instanceof q||r==="Alternation")return ne.ALTERNATION;throw Error("non exhaustive match")}function us(r){let{occurrence:e,rule:t,prodType:n,maxLookahead:i}=r,s=bn(n);return s===ne.ALTERNATION?Mr(e,t,i):Dr(e,t,s,i)}function Tu(r,e,t,n,i,s){let a=Mr(r,e,t),o=ku(a)?Pr:vt;return s(a,n,o,i)}function xu(r,e,t,n,i,s){let a=Dr(r,e,i,t),o=ku(a)?Pr:vt;return s(a[0],o,n)}function Ru(r,e,t,n){let i=r.length,s=Oe(r,a=>Oe(a,o=>o.length===1));if(e)return function(a){let o=R(a,l=>l.GATE);for(let l=0;l<i;l++){let c=r[l],u=c.length,f=o[l];if(!(f!==void 0&&f.call(this)===!1))e:for(let h=0;h<u;h++){let d=c[h],m=d.length;for(let g=0;g<m;g++){let v=this.LA(g+1);if(t(v,d[g])===!1)continue e}return l}}};if(s&&!n){let a=R(r,l=>ue(l)),o=ae(a,(l,c,u)=>(k(c,f=>{N(l,f.tokenTypeIdx)||(l[f.tokenTypeIdx]=u),k(f.categoryMatches,h=>{N(l,h)||(l[h]=u)})}),l),{});return function(){let l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){let o=r[a],l=o.length;e:for(let c=0;c<l;c++){let u=o[c],f=u.length;for(let h=0;h<f;h++){let d=this.LA(h+1);if(t(d,u[h])===!1)continue e}return a}}}}function Eu(r,e,t){let n=Oe(r,s=>s.length===1),i=r.length;if(n&&!t){let s=ue(r);if(s.length===1&&b(s[0].categoryMatches)){let o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{let a=ae(s,(o,l,c)=>(o[l.tokenTypeIdx]=!0,k(l.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){let o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){let a=r[s],o=a.length;for(let l=0;l<o;l++){let c=this.LA(l+1);if(e(c,a[l])===!1)continue e}return!0}return!1}}var Qo=class extends At{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=n.concat(i),!0):!1}walkOption(e,t,n){this.checkIsTarget(e,ne.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,ne.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,ne.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,ne.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,ne.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}},cs=class extends Me{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,ne.OPTION)}visitRepetition(e){this.checkIsTarget(e,ne.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,ne.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,ne.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,ne.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,ne.ALTERNATION)}};function yu(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=[];return e}function Jo(r){let e=[""];for(let t=0;t<r.length;t++){let n=r[t],i=[];for(let s=0;s<e.length;s++){let a=e[s];i.push(a+"_"+n.tokenTypeIdx);for(let o=0;o<n.categoryMatches.length;o++){let l="_"+n.categoryMatches[o];i.push(a+l)}}e=i}return e}function fp(r,e,t){for(let n=0;n<r.length;n++){if(n===t)continue;let i=r[n];for(let s=0;s<e.length;s++){let a=e[s];if(i[a]===!0)return!1}}return!0}function Au(r,e){let t=R(r,a=>os([a],1)),n=yu(t.length),i=R(t,a=>{let o={};return k(a,l=>{let c=Jo(l.partialPath);k(c,u=>{o[u]=!0})}),o}),s=t;for(let a=1;a<=e;a++){let o=s;s=yu(o.length);for(let l=0;l<o.length;l++){let c=o[l];for(let u=0;u<c.length;u++){let f=c[u].partialPath,h=c[u].suffixDef,d=Jo(f);if(fp(i,d,l)||b(h)||f.length===e){let g=n[l];if(fs(g,f)===!1){g.push(f);for(let v=0;v<d.length;v++){let x=d[v];i[l][x]=!0}}}else{let g=os(h,a+1,f);s[l]=s[l].concat(g),k(g,v=>{let x=Jo(v.partialPath);k(x,E=>{i[l][E]=!0})})}}}}return n}function Mr(r,e,t,n){let i=new cs(r,ne.ALTERNATION,n);return e.accept(i),Au(i.result,t)}function Dr(r,e,t,n){let i=new cs(r,t);e.accept(i);let s=i.result,o=new Qo(e,r,t).startWalking(),l=new Y({definition:s}),c=new Y({definition:o});return Au([l,c],n)}function fs(r,e){e:for(let t=0;t<r.length;t++){let n=r[t];if(n.length===e.length){for(let i=0;i<n.length;i++){let s=e[i],a=n[i];if((s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function vu(r,e){return r.length<e.length&&Oe(r,(t,n)=>{let i=e[n];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function ku(r){return Oe(r,e=>Oe(e,t=>Oe(t,n=>b(n.categoryMatches))))}function Iu(r){let e=r.lookaheadStrategy.validate({rules:r.rules,tokenTypes:r.tokenTypes,grammarName:r.grammarName});return R(e,t=>Object.assign({type:ge.CUSTOM_LOOKAHEAD_VALIDATION},t))}function Nu(r,e,t,n){let i=Ne(r,l=>dp(l,t)),s=Tp(r,e,t),a=Ne(r,l=>mp(l,t)),o=Ne(r,l=>pp(l,r,n,t));return i.concat(s,a,o)}function dp(r,e){let t=new Zo;r.accept(t);let n=t.allProductions,i=mc(n,hp),s=je(i,o=>o.length>1);return R(te(s),o=>{let l=Ie(o),c=e.buildDuplicateFoundError(r,o),u=Ge(l),f={message:c,type:ge.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=Su(l);return h&&(f.parameter=h),f})}function hp(r){return`${Ge(r)}_#_${r.idx}_#_${Su(r)}`}function Su(r){return r instanceof M?r.terminalType.name:r instanceof K?r.nonTerminalName:""}var Zo=class extends Me{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};function pp(r,e,t,n){let i=[];if(ae(e,(a,o)=>o.name===r.name?a+1:a,0)>1){let a=n.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});i.push({message:a,type:ge.DUPLICATE_RULE_NAME,ruleName:r.name})}return i}function Cu(r,e,t){let n=[],i;return ie(e,r)||(i=`Invalid rule override, rule: ->${r}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,n.push({message:i,type:ge.INVALID_RULE_OVERRIDE,ruleName:r})),n}function tl(r,e,t,n=[]){let i=[],s=ds(e.definition);if(b(s))return[];{let a=r.name;ie(s,r)&&i.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:n}),type:ge.LEFT_RECURSION,ruleName:a});let l=Kt(s,n.concat([r])),c=Ne(l,u=>{let f=ee(n);return f.push(u),tl(r,u,t,f)});return i.concat(c)}}function ds(r){let e=[];if(b(r))return e;let t=Ie(r);if(t instanceof K)e.push(t.referencedRule);else if(t instanceof Y||t instanceof H||t instanceof J||t instanceof Q||t instanceof z||t instanceof D)e=e.concat(ds(t.definition));else if(t instanceof q)e=ue(R(t.definition,s=>ds(s.definition)));else if(!(t instanceof M))throw Error("non exhaustive match");let n=sr(t),i=r.length>1;if(n&&i){let s=fe(r);return e.concat(ds(s))}else return e}var Mn=class extends Me{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function _u(r,e){let t=new Mn;r.accept(t);let n=t.alternations;return Ne(n,s=>{let a=$t(s.definition);return Ne(a,(o,l)=>{let c=ls([o],[],vt,1);return b(c)?[{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:s,emptyChoiceIdx:l}),type:ge.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:s.idx,alternative:l+1}]:[]})})}function wu(r,e,t){let n=new Mn;r.accept(n);let i=n.alternations;return i=Ht(i,a=>a.ignoreAmbiguities===!0),Ne(i,a=>{let o=a.idx,l=a.maxLookahead||e,c=Mr(o,r,l,a),u=gp(c,a,r,t),f=yp(c,a,r,t);return u.concat(f)})}var el=class extends Me{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};function mp(r,e){let t=new Mn;r.accept(t);let n=t.alternations;return Ne(n,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:s}),type:ge.TOO_MANY_ALTS,ruleName:r.name,occurrence:s.idx}]:[])}function Lu(r,e,t){let n=[];return k(r,i=>{let s=new el;i.accept(s);let a=s.allProductions;k(a,o=>{let l=bn(o),c=o.maxLookahead||e,u=o.idx,h=Dr(u,i,l,c)[0];if(b(ue(h))){let d=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});n.push({message:d,type:ge.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function gp(r,e,t,n){let i=[],s=ae(r,(o,l,c)=>(e.definition[c].ignoreAmbiguities===!0||k(l,u=>{let f=[c];k(r,(h,d)=>{c!==d&&fs(h,u)&&e.definition[d].ignoreAmbiguities!==!0&&f.push(d)}),f.length>1&&!fs(i,u)&&(i.push(u),o.push({alts:f,path:u}))}),o),[]);return R(s,o=>{let l=R(o.alts,u=>u+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:ge.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function yp(r,e,t,n){let i=ae(r,(a,o,l)=>{let c=R(o,u=>({idx:l,path:u}));return a.concat(c)},[]);return gt(Ne(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];let l=a.idx,c=a.path,u=Re(i,h=>e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&vu(h.path,c));return R(u,h=>{let d=[h.idx+1,l+1],m=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:d,prefixPath:h.path}),type:ge.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:m,alternatives:d}})}))}function Tp(r,e,t){let n=[],i=R(e,s=>s.name);return k(r,s=>{let a=s.name;if(ie(i,a)){let o=t.buildNamespaceConflictError(s);n.push({message:o,type:ge.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),n}function Ou(r){let e=fn(r,{errMsgProvider:mu}),t={};return k(r.rules,n=>{t[n.name]=n}),gu(t,e.errMsgProvider)}function $u(r){return r=fn(r,{errMsgProvider:rt}),Nu(r.rules,r.tokenTypes,r.errMsgProvider,r.grammarName)}var Pu="MismatchedTokenException",bu="NoViableAltException",Mu="EarlyExitException",Du="NotAllInputParsedException",Fu=[Pu,bu,Mu,Du];Object.freeze(Fu);function Dt(r){return ie(Fu,r.name)}var Fr=class extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},cr=class extends Fr{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Pu}},Dn=class extends Fr{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=bu}},Fn=class extends Fr{constructor(e,t){super(e,t),this.name=Du}},Un=class extends Fr{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Mu}};var rl={},il="InRuleRecoveryException",nl=class extends Error{constructor(e){super(e),this.name=il}},hs=class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=N(e,"recoveryEnabled")?e.recoveryEnabled:De.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=xp)}getTokenToInsert(e){let t=lr(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,i){let s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[],l=!1,c=this.LA(1),u=this.LA(1),f=()=>{let h=this.LA(0),d=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:h,ruleName:this.getCurrRuleFullName()}),m=new cr(d,c,this.LA(0));m.resyncedTokens=$t(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(u,i)){f();return}else if(n.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(u,s)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nl("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||b(t))return!1;let n=this.LA(1);return Tt(t,s=>this.tokenMatcher(n,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(t);return ie(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),n=2;for(;;){let i=Tt(e,s=>On(t,s));if(i!==void 0)return i;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return rl;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return R(e,(n,i)=>i===0?rl:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=R(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return ue(e)}getFollowSetFromFollowKey(e){if(e===rl)return[ze];let t=e.ruleName+e.idxInCallingRule+Ji+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,ze)||t.push(e),t}reSyncTo(e){let t=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return $t(t)}attemptInRepetitionRecovery(e,t,n,i,s,a,o){}getCurrentGrammarPath(e,t){let n=this.getHumanReadableRuleStack(),i=ee(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return R(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function xp(r,e,t,n,i,s,a){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(l===void 0){let h=this.getCurrRuleFullName(),d=this.getGAstProductions()[h];l=new s(d,i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence,f=l.isEndOfRule;this.RULE_STACK.length===1&&f&&c===void 0&&(c=ze,u=1),!(c===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(r,e,t,c)}function ps(r,e,t){return t|e|r}var St=class{constructor(e){var t;this.maxLookahead=(t=e==null?void 0:e.maxLookahead)!==null&&t!==void 0?t:De.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if(b(t)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...i,...s]}return t}validateNoLeftRecursion(e){return Ne(e,t=>tl(t,t,rt))}validateEmptyOrAlternatives(e){return Ne(e,t=>_u(t,rt))}validateAmbiguousAlternationAlternatives(e,t){return Ne(e,n=>wu(n,t,rt))}validateSomeNonEmptyLookaheadPath(e,t){return Lu(e,t,rt)}buildLookaheadForAlternation(e){return Tu(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Ru)}buildLookaheadForOptional(e){return xu(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,bn(e.prodType),Eu)}};var gs=class{initLooksAhead(e){this.dynamicTokensEnabled=N(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:De.dynamicTokensEnabled,this.maxLookahead=N(e,"maxLookahead")?e.maxLookahead:De.maxLookahead,this.lookaheadStrategy=N(e,"lookaheadStrategy")?e.lookaheadStrategy:new St({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){k(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=Rp(t);k(n,c=>{let u=c.idx===0?"":c.idx;this.TRACE_INIT(`${Ge(c)}${u}`,()=>{let f=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:t,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),h=ps(this.fullRuleNameToShort[t.name],256,c.idx);this.setLaFuncCache(h,f)})}),k(i,c=>{this.computeLookaheadFunc(t,c.idx,768,"Repetition",c.maxLookahead,Ge(c))}),k(s,c=>{this.computeLookaheadFunc(t,c.idx,512,"Option",c.maxLookahead,Ge(c))}),k(a,c=>{this.computeLookaheadFunc(t,c.idx,1024,"RepetitionMandatory",c.maxLookahead,Ge(c))}),k(o,c=>{this.computeLookaheadFunc(t,c.idx,1536,"RepetitionMandatoryWithSeparator",c.maxLookahead,Ge(c))}),k(l,c=>{this.computeLookaheadFunc(t,c.idx,1280,"RepetitionWithSeparator",c.maxLookahead,Ge(c))})})})}computeLookaheadFunc(e,t,n,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{let o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=ps(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){let n=this.getLastExplicitRuleShortName();return ps(n,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},sl=class extends Me{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},ms=new sl;function Rp(r){ms.reset(),r.accept(ms);let e=ms.dslMethods;return ms.reset(),e}function ll(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}function cl(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}function Uu(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}function Gu(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}var Ep="name";function ul(r,e){Object.defineProperty(r,Ep,{enumerable:!1,configurable:!0,writable:!1,value:e})}function Ap(r,e){let t=mt(r),n=t.length;for(let i=0;i<n;i++){let s=t[i],a=r[s],o=a.length;for(let l=0;l<o;l++){let c=a[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}}function Bu(r,e){let t=function(){};ul(t,r+"BaseSemantics");let n={visit:function(i,s){if(pe(i)&&(i=i[0]),!$e(i))return this[i.name](i.children,s)},validateVisitor:function(){let i=vp(this,e);if(!b(i)){let s=R(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
|
|
${s.join(`
|
|
|
|
`).replace(/\n/g,`
|
|
`)}`)}}};return t.prototype=n,t.prototype.constructor=t,t._RULE_NAMES=e,t}function Wu(r,e,t){let n=function(){};ul(n,r+"BaseSemanticsWithDefaults");let i=Object.create(t.prototype);return k(e,s=>{i[s]=Ap}),n.prototype=i,n.prototype.constructor=n,n}var fl;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(fl||(fl={}));function vp(r,e){return kp(r,e)}function kp(r,e){let t=Re(e,i=>it(r[i])===!1),n=R(t,i=>({msg:`Missing visitor method: <${i}> on ${r.constructor.name} CST Visitor.`,type:fl.MISSING_METHOD,methodName:i}));return gt(n)}var Rs=class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=N(e,"nodeLocationTracking")?e.nodeLocationTracking:De.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ce,this.cstFinallyStateUpdate=ce,this.cstPostTerminal=ce,this.cstPostNonTerminal=ce,this.cstPostRule=ce;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=cl,this.setNodeLocationFromNode=cl,this.cstPostRule=ce,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ce,this.setNodeLocationFromNode=ce,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=ll,this.setNodeLocationFromNode=ll,this.cstPostRule=ce,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ce,this.setNodeLocationFromNode=ce,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ce,this.setNodeLocationFromNode=ce,this.cstPostRule=ce,this.setInitialNodeLocation=ce;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];Uu(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];Gu(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if($e(this.baseCstVisitorConstructor)){let e=Bu(this.className,mt(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if($e(this.baseCstVisitorWithDefaultsConstructor)){let e=Wu(this.className,mt(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}};var Es=class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Ur}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Ur:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}};var As=class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=Gr){if(ie(this.definedRulesNames,e)){let a={message:rt.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:ge.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);let i=this.defineRule(e,t,n);return this[e]=i,i}OVERRIDE_RULE(e,t,n=Gr){let i=Cu(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let s=this.defineRule(e,t,n);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(Dt(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Yi(te(this.gastProductionsCache))}};var vs=class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Pr,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},N(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
|
|
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
|
|
For Further details.`);if(pe(e)){if(b(e))throw Error(`A Token Vocabulary cannot be empty.
|
|
Note that the first argument for the parser constructor
|
|
is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
|
|
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
|
|
For Further details.`)}if(pe(e))this.tokensMap=ae(e,(s,a)=>(s[a.name]=a,s),{});else if(N(e,"modes")&&Oe(ue(te(e.modes)),au)){let s=ue(te(e.modes)),a=dn(s);this.tokensMap=ae(a,(o,l)=>(o[l.name]=l,o),{})}else if(pc(e))this.tokensMap=ee(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=ze;let n=N(e,"modes")?ue(te(e.modes)):te(e),i=Oe(n,s=>b(s.categoryMatches));this.tokenMatcher=i?Pr:vt,kt(te(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
|
|
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=N(n,"resyncEnabled")?n.resyncEnabled:Gr.resyncEnabled,s=N(n,"recoveryValueFunc")?n.recoveryValueFunc:Gr.recoveryValueFunc,a=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...u){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u);let f=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(f),f}catch(f){return this.invokeRuleCatch(f,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...u){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u)}catch(f){return this.invokeRuleCatch(f,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){let i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Dt(e)){let a=e;if(s){let o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){let l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return n(e);else{if(this.outputCst){let l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),n(e);throw a}}else throw e}optionInternal(e,t){let n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof e!="function"){s=e.DEF;let a=e.GATE;if(a!==void 0){let o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;let a=t.GATE;if(a!==void 0){let o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,ne.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,1024,e,as)}atLeastOneSepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){let i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Pn],o,1536,e,Pn)}else throw this.raiseEarlyExitException(e,ne.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;let o=t.GATE;if(o!==void 0){let l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,ss,a)}manySepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){let i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,$n],o,1280,e,$n)}}repetitionSepSecondInternal(e,t,n,i,s){for(;n();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,i,s],n,1536,e,s)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let n=this.getKeyForAutomaticLookahead(256,t),i=pe(e)?e:e.DEF,a=this.getLaFuncFromCache(n).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Fn(t,e))}}subruleInternal(e,t,n){let i;try{let s=n!==void 0?n.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,n,e.ruleName)}}subruleInternalError(e,t,n){throw Dt(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let i;try{let s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,n)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,t,n){let i,s=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new cr(i,t,s))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===il?n:s}}else throw n}saveRecogState(){let e=this.errors,t=ee(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ze)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}};var ks=class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=N(e,"errorMessageProvider")?e.errorMessageProvider:De.errorMessageProvider}SAVE_ERROR(e){if(Dt(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ee(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ee(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){let i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=Dr(e,s,t,this.maxLookahead)[0],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));let c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new Un(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],s=Mr(e,i,this.maxLookahead),a=[];for(let c=1;c<=this.maxLookahead;c++)a.push(this.LA(c));let o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Dn(l,this.LA(1),o))}};var Is=class{initContentAssist(){}computeContentAssist(e,t){let n=this.gastProductionsCache[e];if($e(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return ls([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=Ie(e.ruleStack),i=this.getGAstProductions()[t];return new is(i,e).startWalking()}};var Cs={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Cs);var ju=!0,Vu=Math.pow(2,8)-1,Hu=ns({name:"RECORDING_PHASE_TOKEN",pattern:oe.NA});kt([Hu]);var zu=lr(Hu,`This IToken indicates the Parser is in Recording Phase
|
|
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(zu);var Np={name:`This CSTNode indicates the Parser is in Recording Phase
|
|
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Ns=class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";this[`CONSUME${t}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${t}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${t}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${t}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${t}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${t}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${t}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${t}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let t=0;t<10;t++){let n=t>0?t:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Ur}topLevelRuleRecord(e,t){try{let n=new be({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+`
|
|
This error was thrown during the "grammar recording phase" For more info see:
|
|
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(i){throw n}throw n}}optionInternalRecord(e,t){return Bn.call(this,H,e,t)}atLeastOneInternalRecord(e,t){Bn.call(this,J,t,e)}atLeastOneSepFirstInternalRecord(e,t){Bn.call(this,Q,t,e,ju)}manyInternalRecord(e,t){Bn.call(this,D,t,e)}manySepFirstInternalRecord(e,t){Bn.call(this,z,t,e,ju)}orInternalRecord(e,t){return Sp.call(this,e,t)}subruleInternalRecord(e,t,n){if(Ss(t),!e||N(e,"ruleName")===!1){let o=new Error(`<SUBRULE${Ku(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
|
|
inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}let i=yt(this.recordingProdStack),s=e.ruleName,a=new K({idx:t,nonTerminalName:s,label:n==null?void 0:n.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?Np:Cs}consumeInternalRecord(e,t,n){if(Ss(t),!Ho(e)){let a=new Error(`<CONSUME${Ku(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
|
|
inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}let i=yt(this.recordingProdStack),s=new M({idx:t,terminalType:e,label:n==null?void 0:n.LABEL});return i.definition.push(s),zu}};function Bn(r,e,t,n=!1){Ss(t);let i=yt(this.recordingProdStack),s=it(e)?e:e.DEF,a=new r({definition:[],idx:t});return n&&(a.separator=e.SEP),N(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),Cs}function Sp(r,e){Ss(e);let t=yt(this.recordingProdStack),n=pe(r)===!1,i=n===!1?r:r.DEF,s=new q({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});N(r,"MAX_LOOKAHEAD")&&(s.maxLookahead=r.MAX_LOOKAHEAD);let a=_i(i,o=>it(o.GATE));return s.hasPredicates=a,t.definition.push(s),k(i,o=>{let l=new Y({definition:[]});s.definition.push(l),N(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:N(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),Cs}function Ku(r){return r===0?"":`${r}`}function Ss(r){if(r<0||r>Vu){let e=new Error(`Invalid DSL Method idx value: <${r}>
|
|
Idx value must be a none negative value smaller than ${Vu+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var _s=class{initPerformanceTracer(e){if(N(e,"traceInitPerf")){let t=e.traceInitPerf,n=typeof t=="number";this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=De.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:i,value:s}=Cn(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${n}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}};function qu(r,e){e.forEach(t=>{let n=t.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let s=Object.getOwnPropertyDescriptor(n,i);s&&(s.get||s.set)?Object.defineProperty(r.prototype,i,s):r.prototype[i]=t.prototype[i]})})}var Ur=lr(ze,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Ur);var De=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Nt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Gr=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0}),ge;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",r[r.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(ge||(ge={}));function ws(r=void 0){return function(){return r}}var Wn=class r{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let t=this.className;this.TRACE_INIT("toFastProps",()=>{_n(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),k(this.definedRulesNames,i=>{let a=this[i].originalGrammarAction,o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=Ou({rules:te(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(b(n)&&this.skipValidations===!1){let i=$u({rules:te(this.gastProductionsCache),tokenTypes:te(this.tokensMap),errMsgProvider:rt,grammarName:t}),s=Iu({lookaheadStrategy:this.lookaheadStrategy,rules:te(this.gastProductionsCache),tokenTypes:te(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),b(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=Gc(te(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:te(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(te(this.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!b(this.definitionErrors))throw e=R(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
|
|
${e.join(`
|
|
-------------------------------
|
|
`)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),N(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
|
|
Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
|
|
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
|
|
For further details.`);this.skipValidations=N(t,"skipValidations")?t.skipValidations:De.skipValidations}};Wn.DEFER_DEFINITION_ERRORS_HANDLING=!1;qu(Wn,[hs,gs,Rs,Es,vs,As,ks,Is,Ns,_s]);var jn=class extends Wn{constructor(e,t=De){let n=ee(t);n.outputCst=!1,super(e,n)}};function ur(r,e,t){return`${r.name}_${e}_${t}`}var Ft=1,_p=2,Xu=4,Yu=5;var jr=7,wp=8,Lp=9,Op=10,$p=11,Ju=12,Vn=class{constructor(e){this.target=e}isEpsilon(){return!1}},Br=class extends Vn{constructor(e,t){super(e),this.tokenType=t}},Kn=class extends Vn{constructor(e){super(e)}isEpsilon(){return!0}},Wr=class extends Vn{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}};function Qu(r){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Pp(e,r);let t=r.length;for(let n=0;n<t;n++){let i=r[n],s=fr(e,i,i);s!==void 0&&Kp(e,i,s)}return e}function Pp(r,e){let t=e.length;for(let n=0;n<t;n++){let i=e[n],s=xe(r,i,void 0,{type:_p}),a=xe(r,i,void 0,{type:jr});s.stop=a,r.ruleToStartState.set(i,s),r.ruleToStopState.set(i,a)}}function Zu(r,e,t){return t instanceof M?hl(r,e,t.terminalType,t):t instanceof K?Vp(r,e,t):t instanceof q?Up(r,e,t):t instanceof H?Gp(r,e,t):t instanceof D?bp(r,e,t):t instanceof z?Mp(r,e,t):t instanceof J?Dp(r,e,t):t instanceof Q?Fp(r,e,t):fr(r,e,t)}function bp(r,e,t){let n=xe(r,e,t,{type:Yu});Ut(r,n);let i=Vr(r,e,n,t,fr(r,e,t));return tf(r,e,t,i)}function Mp(r,e,t){let n=xe(r,e,t,{type:Yu});Ut(r,n);let i=Vr(r,e,n,t,fr(r,e,t)),s=hl(r,e,t.separator,t);return tf(r,e,t,i,s)}function Dp(r,e,t){let n=xe(r,e,t,{type:Xu});Ut(r,n);let i=Vr(r,e,n,t,fr(r,e,t));return ef(r,e,t,i)}function Fp(r,e,t){let n=xe(r,e,t,{type:Xu});Ut(r,n);let i=Vr(r,e,n,t,fr(r,e,t)),s=hl(r,e,t.separator,t);return ef(r,e,t,i,s)}function Up(r,e,t){let n=xe(r,e,t,{type:Ft});Ut(r,n);let i=R(t.definition,a=>Zu(r,e,a));return Vr(r,e,n,t,...i)}function Gp(r,e,t){let n=xe(r,e,t,{type:Ft});Ut(r,n);let i=Vr(r,e,n,t,fr(r,e,t));return Bp(r,e,t,i)}function fr(r,e,t){let n=Re(R(t.definition,i=>Zu(r,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:jp(r,n)}function ef(r,e,t,n,i){let s=n.left,a=n.right,o=xe(r,e,t,{type:$p});Ut(r,o);let l=xe(r,e,t,{type:Ju});return s.loopback=o,l.loopback=o,r.decisionMap[ur(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,de(a,o),i===void 0?(de(o,s),de(o,l)):(de(o,l),de(o,i.left),de(i.right,s)),{left:s,right:l}}function tf(r,e,t,n,i){let s=n.left,a=n.right,o=xe(r,e,t,{type:Op});Ut(r,o);let l=xe(r,e,t,{type:Ju}),c=xe(r,e,t,{type:Lp});return o.loopback=c,l.loopback=c,de(o,s),de(o,l),de(a,c),i!==void 0?(de(c,l),de(c,i.left),de(i.right,s)):de(c,o),r.decisionMap[ur(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Bp(r,e,t,n){let i=n.left,s=n.right;return de(i,s),r.decisionMap[ur(e,"Option",t.idx)]=i,n}function Ut(r,e){return r.decisionStates.push(e),e.decision=r.decisionStates.length-1,e.decision}function Vr(r,e,t,n,...i){let s=xe(r,e,n,{type:wp,start:t});t.end=s;for(let o of i)o!==void 0?(de(t,o.left),de(o.right,s)):de(t,s);let a={left:t,right:s};return r.decisionMap[ur(e,Wp(n),n.idx)]=t,a}function Wp(r){if(r instanceof q)return"Alternation";if(r instanceof H)return"Option";if(r instanceof D)return"Repetition";if(r instanceof z)return"RepetitionWithSeparator";if(r instanceof J)return"RepetitionMandatory";if(r instanceof Q)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function jp(r,e){let t=e.length;for(let s=0;s<t-1;s++){let a=e[s],o;a.left.transitions.length===1&&(o=a.left.transitions[0]);let l=o instanceof Wr,c=o,u=e[s+1].left;a.left.type===Ft&&a.right.type===Ft&&o!==void 0&&(l&&c.followState===a.right||o.target===a.right)?(l?c.followState=u:o.target=u,Hp(r,a.right)):de(a.right,u)}let n=e[0],i=e[t-1];return{left:n.left,right:i.right}}function hl(r,e,t,n){let i=xe(r,e,n,{type:Ft}),s=xe(r,e,n,{type:Ft});return pl(i,new Br(s,t)),{left:i,right:s}}function Vp(r,e,t){let n=t.referencedRule,i=r.ruleToStartState.get(n),s=xe(r,e,t,{type:Ft}),a=xe(r,e,t,{type:Ft}),o=new Wr(i,n,a);return pl(s,o),{left:s,right:a}}function Kp(r,e,t){let n=r.ruleToStartState.get(e);de(n,t.left);let i=r.ruleToStopState.get(e);return de(t.right,i),{left:n,right:i}}function de(r,e){let t=new Kn(e);pl(r,t)}function xe(r,e,t,n){let i=Object.assign({atn:r,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:r.states.length},n);return r.states.push(i),i}function pl(r,e){r.transitions.length===0&&(r.epsilonOnlyTransitions=e.isEpsilon()),r.transitions.push(e)}function Hp(r,e){r.states.splice(r.states.indexOf(e),1)}var Hn={},Kr=class{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=ml(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return R(this.configs,e=>e.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}};function ml(r,e=!0){return`${e?`a${r.alt}`:""}s${r.state.stateNumber}:${r.stack.map(t=>t.stateNumber.toString()).join("_")}`}function zp(r,e){let t={};return n=>{let i=n.toString(),s=t[i];return s!==void 0||(s={atnStartState:r,decision:e,states:{}},t[i]=s),s}}var Ls=class{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let n=0;n<t;n++)e+=this.predicates[n]===!0?"1":"0";return e}},rf=new Ls,zn=class extends St{constructor(e){var t;super(),this.logging=(t=e==null?void 0:e.logging)!==null&&t!==void 0?t:n=>console.log(n)}initialize(e){this.atn=Qu(e.rules),this.dfas=qp(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:n,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=ur(n,"Alternation",t),u=this.atn.decisionMap[l].decision,f=R(us({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),h=>R(h,d=>d[0]));if(nf(f,!1)&&!s){let h=ae(f,(d,m,g)=>(k(m,v=>{v&&(d[v.tokenTypeIdx]=g,k(v.categoryMatches,x=>{d[x]=g}))}),d),{});return i?function(d){var m;let g=this.LA(1),v=h[g.tokenTypeIdx];if(d!==void 0&&v!==void 0){let x=(m=d[v])===null||m===void 0?void 0:m.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let d=this.LA(1);return h[d.tokenTypeIdx]}}else return i?function(h){let d=new Ls,m=h===void 0?0:h.length;for(let v=0;v<m;v++){let x=h==null?void 0:h[v].GATE;d.set(v,x===void 0||x.call(this))}let g=gl.call(this,a,u,d,o);return typeof g=="number"?g:void 0}:function(){let h=gl.call(this,a,u,rf,o);return typeof h=="number"?h:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:t,rule:n,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=ur(n,i,t),u=this.atn.decisionMap[l].decision,f=R(us({maxLookahead:1,occurrence:t,prodType:i,rule:n}),h=>R(h,d=>d[0]));if(nf(f)&&f[0][0]&&!s){let h=f[0],d=ue(h);if(d.length===1&&b(d[0].categoryMatches)){let g=d[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===g}}else{let m=ae(d,(g,v)=>(v!==void 0&&(g[v.tokenTypeIdx]=!0,k(v.categoryMatches,x=>{g[x]=!0})),g),{});return function(){let g=this.LA(1);return m[g.tokenTypeIdx]===!0}}}return function(){let h=gl.call(this,a,u,rf,o);return typeof h=="object"?!1:h===0}}};function nf(r,e=!0){let t=new Set;for(let n of r){let i=new Set;for(let s of n){if(s===void 0){if(e)break;return!1}let a=[s.tokenTypeIdx].concat(s.categoryMatches);for(let o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function qp(r){let e=r.decisionStates.length,t=Array(e);for(let n=0;n<e;n++)t[n]=zp(r.decisionStates[n],n);return t}function gl(r,e,t,n){let i=r[e](t),s=i.start;if(s===void 0){let o=sm(i.atnStartState);s=of(i,af(o)),i.start=s}return Xp.apply(this,[i,s,t,n])}function Xp(r,e,t,n){let i=e,s=1,a=[],o=this.LA(s++);for(;;){let l=tm(i,o);if(l===void 0&&(l=Yp.apply(this,[r,i,o,s,t,n])),l===Hn)return em(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function Yp(r,e,t,n,i,s){let a=rm(e.configs,t,i);if(a.size===0)return sf(r,e,t,Hn),Hn;let o=af(a),l=im(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(cm(a)){let c=gc(a.alts);o.isAcceptState=!0,o.prediction=c,o.configs.uniqueAlt=c,Jp.apply(this,[r,n,a.alts,s])}return o=sf(r,e,t,o),o}function Jp(r,e,t,n){let i=[];for(let c=1;c<=e;c++)i.push(this.LA(c).tokenType);let s=r.atnStartState,a=s.rule,o=s.production,l=Qp({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});n(l)}function Qp(r){let e=R(r.prefixPath,i=>It(i)).join(", "),t=r.production.idx===0?"":r.production.idx,n=`Ambiguous Alternatives Detected: <${r.ambiguityIndices.join(", ")}> in <${Zp(r.production)}${t}> inside <${r.topLevelRule.name}> Rule,
|
|
<${e}> may appears as a prefix path in all these alternatives.
|
|
`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
For Further details.`,n}function Zp(r){if(r instanceof K)return"SUBRULE";if(r instanceof H)return"OPTION";if(r instanceof q)return"OR";if(r instanceof J)return"AT_LEAST_ONE";if(r instanceof Q)return"AT_LEAST_ONE_SEP";if(r instanceof z)return"MANY_SEP";if(r instanceof D)return"MANY";if(r instanceof M)return"CONSUME";throw Error("non exhaustive match")}function em(r,e,t){let n=Ne(e.configs.elements,s=>s.state.transitions),i=yc(n.filter(s=>s instanceof Br).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:r}}function tm(r,e){return r.edges[e.tokenTypeIdx]}function rm(r,e,t){let n=new Kr,i=[];for(let a of r.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===jr){i.push(a);continue}let o=a.state.transitions.length;for(let l=0;l<o;l++){let c=a.state.transitions[l],u=nm(c,e);u!==void 0&&n.add({state:u,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&n.size===1&&(s=n),s===void 0){s=new Kr;for(let a of n.elements)Os(a,s)}if(i.length>0&&!om(s))for(let a of i)s.add(a);return s}function nm(r,e){if(r instanceof Br&&On(e,r.tokenType))return r.target}function im(r,e){let t;for(let n of r.elements)if(e.is(n.alt)===!0){if(t===void 0)t=n.alt;else if(t!==n.alt)return}return t}function af(r){return{configs:r,edges:{},isAcceptState:!1,prediction:-1}}function sf(r,e,t,n){return n=of(r,n),e.edges[t.tokenTypeIdx]=n,n}function of(r,e){if(e===Hn)return e;let t=e.configs.key,n=r.states[t];return n!==void 0?n:(e.configs.finalize(),r.states[t]=e,e)}function sm(r){let e=new Kr,t=r.transitions.length;for(let n=0;n<t;n++){let s={state:r.transitions[n].target,alt:n,stack:[]};Os(s,e)}return e}function Os(r,e){let t=r.state;if(t.type===jr){if(r.stack.length>0){let i=[...r.stack],a={state:i.pop(),alt:r.alt,stack:i};Os(a,e)}else e.add(r);return}t.epsilonOnlyTransitions||e.add(r);let n=t.transitions.length;for(let i=0;i<n;i++){let s=t.transitions[i],a=am(r,s);a!==void 0&&Os(a,e)}}function am(r,e){if(e instanceof Kn)return{state:e.target,alt:r.alt,stack:r.stack};if(e instanceof Wr){let t=[...r.stack,e.followState];return{state:e.target,alt:r.alt,stack:t}}}function om(r){for(let e of r.elements)if(e.state.type===jr)return!0;return!1}function lm(r){for(let e of r.elements)if(e.state.type!==jr)return!1;return!0}function cm(r){if(lm(r))return!0;let e=um(r.elements);return fm(e)&&!dm(e)}function um(r){let e=new Map;for(let t of r){let n=ml(t,!1),i=e.get(n);i===void 0&&(i={},e.set(n,i)),i[t.alt]=!0}return e}function fm(r){for(let e of Array.from(r.values()))if(Object.keys(e).length>1)return!0;return!1}function dm(r){for(let e of Array.from(r.values()))if(Object.keys(e).length===1)return!0;return!1}var lf;(function(r){function e(t){return typeof t=="string"}r.is=e})(lf||(lf={}));var yl;(function(r){function e(t){return typeof t=="string"}r.is=e})(yl||(yl={}));var cf;(function(r){r.MIN_VALUE=-2147483648,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(cf||(cf={}));var $s;(function(r){r.MIN_VALUE=0,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})($s||($s={}));var G;(function(r){function e(n,i){return n===Number.MAX_VALUE&&(n=$s.MAX_VALUE),i===Number.MAX_VALUE&&(i=$s.MAX_VALUE),{line:n,character:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}r.is=t})(G||(G={}));var F;(function(r){function e(n,i,s,a){if(p.uinteger(n)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:G.create(n,i),end:G.create(s,a)};if(G.is(n)&&G.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${s}, ${a}]`)}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&G.is(i.start)&&G.is(i.end)}r.is=t})(F||(F={}));var Ps;(function(r){function e(n,i){return{uri:n,range:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}r.is=t})(Ps||(Ps={}));var uf;(function(r){function e(n,i,s,a){return{targetUri:n,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.targetRange)&&p.string(i.targetUri)&&F.is(i.targetSelectionRange)&&(F.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}r.is=t})(uf||(uf={}));var Tl;(function(r){function e(n,i,s,a){return{red:n,green:i,blue:s,alpha:a}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}r.is=t})(Tl||(Tl={}));var ff;(function(r){function e(n,i){return{range:n,color:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.range)&&Tl.is(i.color)}r.is=t})(ff||(ff={}));var df;(function(r){function e(n,i,s){return{label:n,textEdit:i,additionalTextEdits:s}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||zr.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,zr.is))}r.is=t})(df||(df={}));var hf;(function(r){r.Comment="comment",r.Imports="imports",r.Region="region"})(hf||(hf={}));var pf;(function(r){function e(n,i,s,a,o,l){let c={startLine:n,endLine:i};return p.defined(s)&&(c.startCharacter=s),p.defined(a)&&(c.endCharacter=a),p.defined(o)&&(c.kind=o),p.defined(l)&&(c.collapsedText=l),c}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}r.is=t})(pf||(pf={}));var xl;(function(r){function e(n,i){return{location:n,message:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Ps.is(i.location)&&p.string(i.message)}r.is=t})(xl||(xl={}));var mf;(function(r){r.Error=1,r.Warning=2,r.Information=3,r.Hint=4})(mf||(mf={}));var gf;(function(r){r.Unnecessary=1,r.Deprecated=2})(gf||(gf={}));var yf;(function(r){function e(t){let n=t;return p.objectLiteral(n)&&p.string(n.href)}r.is=e})(yf||(yf={}));var bs;(function(r){function e(n,i,s,a,o,l){let c={range:n,message:i};return p.defined(s)&&(c.severity=s),p.defined(a)&&(c.code=a),p.defined(o)&&(c.source=o),p.defined(l)&&(c.relatedInformation=l),c}r.create=e;function t(n){var i;let s=n;return p.defined(s)&&F.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,xl.is))}r.is=t})(bs||(bs={}));var Hr;(function(r){function e(n,i,...s){let a={title:n,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}r.is=t})(Hr||(Hr={}));var zr;(function(r){function e(s,a){return{range:s,newText:a}}r.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}r.insert=t;function n(s){return{range:s,newText:""}}r.del=n;function i(s){let a=s;return p.objectLiteral(a)&&p.string(a.newText)&&F.is(a.range)}r.is=i})(zr||(zr={}));var Rl;(function(r){function e(n,i,s){let a={label:n};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}r.is=t})(Rl||(Rl={}));var qr;(function(r){function e(t){let n=t;return p.string(n)}r.is=e})(qr||(qr={}));var Tf;(function(r){function e(s,a,o){return{range:s,newText:a,annotationId:o}}r.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}r.insert=t;function n(s,a){return{range:s,newText:"",annotationId:a}}r.del=n;function i(s){let a=s;return zr.is(a)&&(Rl.is(a.annotationId)||qr.is(a.annotationId))}r.is=i})(Tf||(Tf={}));var El;(function(r){function e(n,i){return{textDocument:n,edits:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Nl.is(i.textDocument)&&Array.isArray(i.edits)}r.is=t})(El||(El={}));var Al;(function(r){function e(n,i,s){let a={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||qr.is(i.annotationId))}r.is=t})(Al||(Al={}));var vl;(function(r){function e(n,i,s,a){let o={kind:"rename",oldUri:n,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}r.create=e;function t(n){let i=n;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||qr.is(i.annotationId))}r.is=t})(vl||(vl={}));var kl;(function(r){function e(n,i,s){let a={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||qr.is(i.annotationId))}r.is=t})(kl||(kl={}));var Il;(function(r){function e(t){let n=t;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>p.string(i.kind)?Al.is(i)||vl.is(i)||kl.is(i):El.is(i)))}r.is=e})(Il||(Il={}));var xf;(function(r){function e(n){return{uri:n}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)}r.is=t})(xf||(xf={}));var Rf;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}r.is=t})(Rf||(Rf={}));var Nl;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}r.is=t})(Nl||(Nl={}));var Ef;(function(r){function e(n,i,s,a){return{uri:n,languageId:i,version:s,text:a}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}r.is=t})(Ef||(Ef={}));var Sl;(function(r){r.PlainText="plaintext",r.Markdown="markdown";function e(t){let n=t;return n===r.PlainText||n===r.Markdown}r.is=e})(Sl||(Sl={}));var qn;(function(r){function e(t){let n=t;return p.objectLiteral(t)&&Sl.is(n.kind)&&p.string(n.value)}r.is=e})(qn||(qn={}));var Af;(function(r){r.Text=1,r.Method=2,r.Function=3,r.Constructor=4,r.Field=5,r.Variable=6,r.Class=7,r.Interface=8,r.Module=9,r.Property=10,r.Unit=11,r.Value=12,r.Enum=13,r.Keyword=14,r.Snippet=15,r.Color=16,r.File=17,r.Reference=18,r.Folder=19,r.EnumMember=20,r.Constant=21,r.Struct=22,r.Event=23,r.Operator=24,r.TypeParameter=25})(Af||(Af={}));var vf;(function(r){r.PlainText=1,r.Snippet=2})(vf||(vf={}));var kf;(function(r){r.Deprecated=1})(kf||(kf={}));var If;(function(r){function e(n,i,s){return{newText:n,insert:i,replace:s}}r.create=e;function t(n){let i=n;return i&&p.string(i.newText)&&F.is(i.insert)&&F.is(i.replace)}r.is=t})(If||(If={}));var Nf;(function(r){r.asIs=1,r.adjustIndentation=2})(Nf||(Nf={}));var Sf;(function(r){function e(t){let n=t;return n&&(p.string(n.detail)||n.detail===void 0)&&(p.string(n.description)||n.description===void 0)}r.is=e})(Sf||(Sf={}));var Cf;(function(r){function e(t){return{label:t}}r.create=e})(Cf||(Cf={}));var _f;(function(r){function e(t,n){return{items:t||[],isIncomplete:!!n}}r.create=e})(_f||(_f={}));var Ms;(function(r){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}r.fromPlainText=e;function t(n){let i=n;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}r.is=t})(Ms||(Ms={}));var wf;(function(r){function e(t){let n=t;return!!n&&p.objectLiteral(n)&&(qn.is(n.contents)||Ms.is(n.contents)||p.typedArray(n.contents,Ms.is))&&(t.range===void 0||F.is(t.range))}r.is=e})(wf||(wf={}));var Lf;(function(r){function e(t,n){return n?{label:t,documentation:n}:{label:t}}r.create=e})(Lf||(Lf={}));var Of;(function(r){function e(t,n,...i){let s={label:t};return p.defined(n)&&(s.documentation=n),p.defined(i)?s.parameters=i:s.parameters=[],s}r.create=e})(Of||(Of={}));var $f;(function(r){r.Text=1,r.Read=2,r.Write=3})($f||($f={}));var Pf;(function(r){function e(t,n){let i={range:t};return p.number(n)&&(i.kind=n),i}r.create=e})(Pf||(Pf={}));var bf;(function(r){r.File=1,r.Module=2,r.Namespace=3,r.Package=4,r.Class=5,r.Method=6,r.Property=7,r.Field=8,r.Constructor=9,r.Enum=10,r.Interface=11,r.Function=12,r.Variable=13,r.Constant=14,r.String=15,r.Number=16,r.Boolean=17,r.Array=18,r.Object=19,r.Key=20,r.Null=21,r.EnumMember=22,r.Struct=23,r.Event=24,r.Operator=25,r.TypeParameter=26})(bf||(bf={}));var Mf;(function(r){r.Deprecated=1})(Mf||(Mf={}));var Df;(function(r){function e(t,n,i,s,a){let o={name:t,kind:n,location:{uri:s,range:i}};return a&&(o.containerName=a),o}r.create=e})(Df||(Df={}));var Ff;(function(r){function e(t,n,i,s){return s!==void 0?{name:t,kind:n,location:{uri:i,range:s}}:{name:t,kind:n,location:{uri:i}}}r.create=e})(Ff||(Ff={}));var Uf;(function(r){function e(n,i,s,a,o,l){let c={name:n,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(c.children=l),c}r.create=e;function t(n){let i=n;return i&&p.string(i.name)&&p.number(i.kind)&&F.is(i.range)&&F.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}r.is=t})(Uf||(Uf={}));var Gf;(function(r){r.Empty="",r.QuickFix="quickfix",r.Refactor="refactor",r.RefactorExtract="refactor.extract",r.RefactorInline="refactor.inline",r.RefactorRewrite="refactor.rewrite",r.Source="source",r.SourceOrganizeImports="source.organizeImports",r.SourceFixAll="source.fixAll"})(Gf||(Gf={}));var Ds;(function(r){r.Invoked=1,r.Automatic=2})(Ds||(Ds={}));var Bf;(function(r){function e(n,i,s){let a={diagnostics:n};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.typedArray(i.diagnostics,bs.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Ds.Invoked||i.triggerKind===Ds.Automatic)}r.is=t})(Bf||(Bf={}));var Wf;(function(r){function e(n,i,s){let a={title:n},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Hr.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}r.create=e;function t(n){let i=n;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,bs.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Hr.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||Il.is(i.edit))}r.is=t})(Wf||(Wf={}));var jf;(function(r){function e(n,i){let s={range:n};return p.defined(i)&&(s.data=i),s}r.create=e;function t(n){let i=n;return p.defined(i)&&F.is(i.range)&&(p.undefined(i.command)||Hr.is(i.command))}r.is=t})(jf||(jf={}));var Vf;(function(r){function e(n,i){return{tabSize:n,insertSpaces:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}r.is=t})(Vf||(Vf={}));var Kf;(function(r){function e(n,i,s){return{range:n,target:i,data:s}}r.create=e;function t(n){let i=n;return p.defined(i)&&F.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}r.is=t})(Kf||(Kf={}));var Hf;(function(r){function e(n,i){return{range:n,parent:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.range)&&(i.parent===void 0||r.is(i.parent))}r.is=t})(Hf||(Hf={}));var zf;(function(r){r.namespace="namespace",r.type="type",r.class="class",r.enum="enum",r.interface="interface",r.struct="struct",r.typeParameter="typeParameter",r.parameter="parameter",r.variable="variable",r.property="property",r.enumMember="enumMember",r.event="event",r.function="function",r.method="method",r.macro="macro",r.keyword="keyword",r.modifier="modifier",r.comment="comment",r.string="string",r.number="number",r.regexp="regexp",r.operator="operator",r.decorator="decorator"})(zf||(zf={}));var qf;(function(r){r.declaration="declaration",r.definition="definition",r.readonly="readonly",r.static="static",r.deprecated="deprecated",r.abstract="abstract",r.async="async",r.modification="modification",r.documentation="documentation",r.defaultLibrary="defaultLibrary"})(qf||(qf={}));var Xf;(function(r){function e(t){let n=t;return p.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}r.is=e})(Xf||(Xf={}));var Yf;(function(r){function e(n,i){return{range:n,text:i}}r.create=e;function t(n){let i=n;return i!=null&&F.is(i.range)&&p.string(i.text)}r.is=t})(Yf||(Yf={}));var Jf;(function(r){function e(n,i,s){return{range:n,variableName:i,caseSensitiveLookup:s}}r.create=e;function t(n){let i=n;return i!=null&&F.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}r.is=t})(Jf||(Jf={}));var Qf;(function(r){function e(n,i){return{range:n,expression:i}}r.create=e;function t(n){let i=n;return i!=null&&F.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}r.is=t})(Qf||(Qf={}));var Zf;(function(r){function e(n,i){return{frameId:n,stoppedLocation:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&F.is(n.stoppedLocation)}r.is=t})(Zf||(Zf={}));var Cl;(function(r){r.Type=1,r.Parameter=2;function e(t){return t===1||t===2}r.is=e})(Cl||(Cl={}));var _l;(function(r){function e(n){return{value:n}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||qn.is(i.tooltip))&&(i.location===void 0||Ps.is(i.location))&&(i.command===void 0||Hr.is(i.command))}r.is=t})(_l||(_l={}));var ed;(function(r){function e(n,i,s){let a={position:n,label:i};return s!==void 0&&(a.kind=s),a}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&G.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,_l.is))&&(i.kind===void 0||Cl.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,zr.is)&&(i.tooltip===void 0||p.string(i.tooltip)||qn.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}r.is=t})(ed||(ed={}));var td;(function(r){function e(t){return{kind:"snippet",value:t}}r.createSnippet=e})(td||(td={}));var rd;(function(r){function e(t,n,i,s){return{insertText:t,filterText:n,range:i,command:s}}r.create=e})(rd||(rd={}));var nd;(function(r){function e(t){return{items:t}}r.create=e})(nd||(nd={}));var id;(function(r){r.Invoked=0,r.Automatic=1})(id||(id={}));var sd;(function(r){function e(t,n){return{range:t,text:n}}r.create=e})(sd||(sd={}));var ad;(function(r){function e(t,n){return{triggerKind:t,selectedCompletionInfo:n}}r.create=e})(ad||(ad={}));var od;(function(r){function e(t){let n=t;return p.objectLiteral(n)&&yl.is(n.uri)&&p.string(n.name)}r.is=e})(od||(od={}));var ld;(function(r){function e(s,a,o,l){return new wl(s,a,o,l)}r.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}r.is=t;function n(s,a){let o=s.getText(),l=i(a,(u,f)=>{let h=u.range.start.line-f.range.start.line;return h===0?u.range.start.character-f.range.start.character:h}),c=o.length;for(let u=l.length-1;u>=0;u--){let f=l[u],h=s.offsetAt(f.range.start),d=s.offsetAt(f.range.end);if(d<=c)o=o.substring(0,h)+f.newText+o.substring(d,o.length);else throw new Error("Overlapping edit");c=h}return o}r.applyEdits=n;function i(s,a){if(s.length<=1)return s;let o=s.length/2|0,l=s.slice(0,o),c=s.slice(o);i(l,a),i(c,a);let u=0,f=0,h=0;for(;u<l.length&&f<c.length;)a(l[u],c[f])<=0?s[h++]=l[u++]:s[h++]=c[f++];for(;u<l.length;)s[h++]=l[u++];for(;f<c.length;)s[h++]=c[f++];return s}})(ld||(ld={}));var wl=class{constructor(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let i=0;i<t.length;i++){n&&(e.push(i),n=!1);let s=t.charAt(i);n=s==="\r"||s===`
|
|
`,s==="\r"&&i+1<t.length&&t.charAt(i+1)===`
|
|
`&&i++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,i=t.length;if(i===0)return G.create(0,e);for(;n<i;){let a=Math.floor((n+i)/2);t[a]>e?i=a:n=a+1}let s=n-1;return G.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)}get lineCount(){return this.getLineOffsets().length}},p;(function(r){let e=Object.prototype.toString;function t(d){return typeof d!="undefined"}r.defined=t;function n(d){return typeof d=="undefined"}r.undefined=n;function i(d){return d===!0||d===!1}r.boolean=i;function s(d){return e.call(d)==="[object String]"}r.string=s;function a(d){return e.call(d)==="[object Number]"}r.number=a;function o(d,m,g){return e.call(d)==="[object Number]"&&m<=d&&d<=g}r.numberRange=o;function l(d){return e.call(d)==="[object Number]"&&-2147483648<=d&&d<=2147483647}r.integer=l;function c(d){return e.call(d)==="[object Number]"&&0<=d&&d<=2147483647}r.uinteger=c;function u(d){return e.call(d)==="[object Function]"}r.func=u;function f(d){return d!==null&&typeof d=="object"}r.objectLiteral=f;function h(d,m){return Array.isArray(d)&&d.every(m)}r.typedArray=h})(p||(p={}));var Xn=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new Xr(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new hr;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let n=new dr(e.startOffset,e.image.length,vr(e),e.tokenType,!1);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let t=e.container;if(t){let n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}construct(e){let t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;let n=this.nodeStack.pop();(n==null?void 0:n.content.length)===0&&this.removeNode(n)}addHiddenTokens(e){for(let t of e){let n=new dr(t.startOffset,t.image.length,vr(t),t.tokenType,!0);n.root=this.rootNode,this.addHiddenToken(this.rootNode,n)}}addHiddenToken(e,t){let{offset:n,end:i}=t;for(let s=0;s<e.content.length;s++){let a=e.content[s],{offset:o,end:l}=a;if(Ve(a)&&n>o&&i<l){this.addHiddenToken(a,t);return}else if(i<=o){e.content.splice(s,0,t);return}}e.content.push(t)}},Yn=class{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;let n=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}},dr=class extends Yn{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,n,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=n}},hr=class extends Yn{constructor(){super(...arguments),this.content=new Ll(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){let{range:n}=e,{range:i}=t;this._rangeCache={start:n.start,end:i.end.line<n.start.line?n.start:i.end}}return this._rangeCache}else return{start:G.create(0,0),end:G.create(0,0)}}get firstNonHiddenNode(){for(let e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},Ll=class r extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,r.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(let t of e)t.container=this.parent}},Xr=class extends hr{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e!=null?e:""}};var Fs=Symbol("Datatype");function Ol(r){return r.$type===Fs}var cd="\u200B",ud=r=>r.endsWith(cd)?r:r+cd,Jn=class{constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition;this.wrapper=new $l(t,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},Qn=class extends Jn{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Xn,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let n=e.fragment?void 0:Nn(e)?Fs:ir(e),i=this.wrapper.DEFINE_RULE(ud(e.name),this.startImplementation(n,t).bind(this));return e.entry&&(this.mainRule=i),i}parse(e){this.nodeBuilder.buildRootNode(e);let t=this.lexer.tokenize(e);this.wrapper.input=t.tokens;let n=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(t.hidden),this.unorderedGroups.clear(),{value:n,lexerErrors:t.errors,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{if(!this.isRecording()){let s={$type:e};this.stack.push(s),e===Fs&&(s.value="")}let i;try{i=t(n)}catch(s){i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,t,n){let i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){let s=this.nodeBuilder.buildLeafNode(i,n),{assignment:a,isCrossRef:o}=this.getAssignment(n),l=this.current;if(a){let c=Ye(n)?i.image:this.converter.convert(i.image,s);this.assign(a.operator,a.feature,c,s,o)}else if(Ol(l)){let c=i.image;Ye(n)||(c=this.converter.convert(c,s).toString()),l.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,n,i){let s;this.isRecording()||(s=this.nodeBuilder.buildCompositeNode(n));let a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,n,s)}performSubruleAssignment(e,t,n){let{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,n,s);else if(!i){let a=this.current;if(Ol(a))a.value+=e.toString();else if(typeof e=="object"&&e){let o=e.$type,l=this.assignWithoutOverride(e,a);o&&(l.$type=o);let c=l;this.stack.pop(),this.stack.push(c)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(!n.$cstNode&&t.feature&&t.operator){n=this.construct(!1);let s=n.$cstNode.feature;this.nodeBuilder.buildCompositeNode(s)}let i={$type:e};this.stack.pop(),this.stack.push(i),t.feature&&t.operator&&this.assign(t.operator,t.feature,n,n.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let t=this.current;return Wi(t),this.nodeBuilder.construct(t),e&&this.stack.pop(),Ol(t)?this.converter.convert(t.value,t.$cstNode):(yo(this.astReflection,t),t)}getAssignment(e){if(!this.assignmentMap.has(e)){let t=Zt(e,et);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Qt(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,n,i,s){let a=this.current,o;switch(s&&typeof n=="string"?o=this.linker.buildReference(a,t,i,n):o=n,e){case"=":{a[t]=o;break}case"?=":{a[t]=!0;break}case"+=":Array.isArray(a[t])||(a[t]=[]),a[t].push(o)}}assignWithoutOverride(e,t){for(let[n,i]of Object.entries(t)){let s=e[n];s===void 0?e[n]=i:Array.isArray(s)&&Array.isArray(i)&&(i.push(...s),e[n]=i)}return e}get definitionErrors(){return this.wrapper.definitionErrors}},Us=class{buildMismatchTokenMessage(e){return Nt.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Nt.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Nt.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Nt.buildEarlyExitMessage(e)}},Yr=class extends Us{buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},Zn=class extends Jn{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e);return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let n=this.wrapper.DEFINE_RULE(ud(e.name),this.startImplementation(t).bind(this));return e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,i){this.before(n),this.wrapper.wrapSubrule(e,t,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}},hm={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Yr},$l=class extends jn{constructor(e,t){let n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},hm),{lookaheadStrategy:n?new St({maxLookahead:t.maxLookahead}):new zn}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}};function Bs(r,e,t){return pm({parser:e,tokens:t,rules:new Map,ruleNames:new Map},r),e}function pm(r,e){let t=kn(e,!1),n=V(e.rules).filter(Ce).filter(i=>t.has(i));for(let i of n){let s=Object.assign(Object.assign({},r),{consume:1,optional:1,subrule:1,many:1,or:1});s.rules.set(i.name,r.parser.rule(i,pr(s,i.definition)))}}function pr(r,e,t=!1){let n;if(Ye(e))n=Em(r,e);else if(Rt(e))n=mm(r,e);else if(et(e))n=pr(r,e.terminal);else if(Qt(e))n=fd(r,e);else if(tt(e))n=gm(r,e);else if(Ui(e))n=Tm(r,e);else if(Bi(e))n=xm(r,e);else if(Mt(e))n=Rm(r,e);else if(Ya(e)){let i=r.consume++;n=()=>r.parser.consume(i,ze,e)}else throw new Jt(e.$cstNode,`Unexpected element type: ${e.$type}`);return dd(r,t?void 0:Gs(e),n,e.cardinality)}function mm(r,e){let t=ir(e);return()=>r.parser.action(t,e)}function gm(r,e){let t=e.rule.ref;if(Ce(t)){let n=r.subrule++,i=e.arguments.length>0?ym(t,e.arguments):()=>({});return s=>r.parser.subrule(n,hd(r,t),e,i(s))}else if(Xe(t)){let n=r.consume++,i=Pl(r,t.name);return()=>r.parser.consume(n,i,e)}else if(t)bt(t);else throw new Jt(e.$cstNode,`Undefined rule type: ${e.$type}`)}function ym(r,e){let t=e.map(n=>Ct(n.value));return n=>{let i={};for(let s=0;s<t.length;s++){let a=r.parameters[s],o=t[s];i[a.name]=o(n)}return i}}function Ct(r){if(ka(r)){let e=Ct(r.left),t=Ct(r.right);return n=>e(n)||t(n)}else if(Aa(r)){let e=Ct(r.left),t=Ct(r.right);return n=>e(n)&&t(n)}else if(_a(r)){let e=Ct(r.value);return t=>!e(t)}else if($a(r)){let e=r.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Ra(r)){let e=!!r.true;return()=>e}bt(r)}function Tm(r,e){if(e.elements.length===1)return pr(r,e.elements[0]);{let t=[];for(let i of e.elements){let s={ALT:pr(r,i,!0)},a=Gs(i);a&&(s.GATE=Ct(a)),t.push(s)}let n=r.or++;return i=>r.parser.alternatives(n,t.map(s=>{let a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function xm(r,e){if(e.elements.length===1)return pr(r,e.elements[0]);let t=[];for(let o of e.elements){let l={ALT:pr(r,o,!0)},c=Gs(o);c&&(l.GATE=Ct(c)),t.push(l)}let n=r.or++,i=(o,l)=>{let c=l.getRuleStack().join("-");return`uGroup_${o}_${c}`},s=o=>r.parser.alternatives(n,t.map((l,c)=>{let u={ALT:()=>!0},f=r.parser;u.ALT=()=>{if(l.ALT(o),!f.isRecording()){let d=i(n,f);f.unorderedGroups.get(d)||f.unorderedGroups.set(d,[]);let m=f.unorderedGroups.get(d);typeof(m==null?void 0:m[c])=="undefined"&&(m[c]=!0)}};let h=l.GATE;return h?u.GATE=()=>h(o):u.GATE=()=>{let d=f.unorderedGroups.get(i(n,f));return!(d!=null&&d[c])},u})),a=dd(r,Gs(e),s,"*");return o=>{a(o),r.parser.isRecording()||r.parser.unorderedGroups.delete(i(n,r.parser))}}function Rm(r,e){let t=e.elements.map(n=>pr(r,n));return n=>t.forEach(i=>i(n))}function Gs(r){if(Mt(r))return r.guardCondition}function fd(r,e,t=e.terminal){if(t)if(tt(t)&&Ce(t.rule.ref)){let n=r.subrule++;return i=>r.parser.subrule(n,hd(r,t.rule.ref),e,i)}else if(tt(t)&&Xe(t.rule.ref)){let n=r.consume++,i=Pl(r,t.rule.ref.name);return()=>r.parser.consume(n,i,e)}else if(Ye(t)){let n=r.consume++,i=Pl(r,t.value);return()=>r.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let n=qi(e.type.ref),i=n==null?void 0:n.terminal;if(!i)throw new Error("Could not find name assignment for type: "+ir(e.type.ref));return fd(r,e,i)}}function Em(r,e){let t=r.consume++,n=r.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>r.parser.consume(t,n,e)}function dd(r,e,t,n){let i=e&&Ct(e);if(!n)if(i){let s=r.or++;return a=>r.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:ws(),GATE:()=>!i(a)}])}else return t;if(n==="*"){let s=r.many++;return a=>r.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(n==="+"){let s=r.many++;if(i){let a=r.or++;return o=>r.parser.alternatives(a,[{ALT:()=>r.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:ws(),GATE:()=>!i(o)}])}else return a=>r.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(n==="?"){let s=r.optional++;return a=>r.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else bt(n)}function hd(r,e){let t=Am(r,e),n=r.rules.get(t);if(!n)throw new Error(`Rule "${t}" not found."`);return n}function Am(r,e){if(Ce(e))return e.name;if(r.ruleNames.has(e))return r.ruleNames.get(e);{let t=e,n=t.$container,i=e.$type;for(;!Ce(n);)(Mt(n)||Ui(n)||Bi(n))&&(i=n.elements.indexOf(t).toString()+":"+i),t=n,n=n.$container;return i=n.name+":"+i,r.ruleNames.set(e,i),i}}function Pl(r,e){let t=r.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function bl(r){let e=r.Grammar,t=r.parser.Lexer,n=new Zn(r);return Bs(e,n,t.definition),n.finalize(),n}function Ml(r){let e=pd(r);return e.finalize(),e}function pd(r){let e=r.Grammar,t=r.parser.Lexer,n=new Qn(r);return Bs(e,n,t.definition)}var mr=class{buildTokens(e,t){let n=V(kn(e,!1)),i=this.buildTerminalTokens(n),s=this.buildKeywordTokens(n,i,t);return i.forEach(a=>{let o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&Hi(o)?s.unshift(a):s.push(a)}),s}buildTerminalTokens(e){return e.filter(Xe).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){let t=Sr(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:n,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=Hi(t)?oe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){let t=new RegExp(e,e.flags+"y");return(n,i)=>(t.lastIndex=i,t.exec(n))}buildKeywordTokens(e,t,n){return e.filter(Ce).flatMap(i=>at(i).filter(Ye)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!(n!=null&&n.caseInsensitive)))}buildKeywordToken(e,t,n){return{name:e.value,PATTERN:this.buildKeywordPattern(e,n),LONGER_ALT:this.findLongerAlt(e,t)}}buildKeywordPattern(e,t){return t?new RegExp(vo(e.value)):e.value}findLongerAlt(e,t){return t.reduce((n,i)=>{let s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&ko("^"+s.source+"$",e.value)&&n.push(i),n},[])}};var gr=class{convert(e,t){let n=t.grammarSource;if(Qt(n)&&(n=So(n)),tt(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,n){var i;switch(e.name.toUpperCase()){case"INT":return ct.convertInt(t);case"STRING":return ct.convertString(t);case"ID":return ct.convertID(t)}switch((i=bo(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return ct.convertNumber(t);case"boolean":return ct.convertBoolean(t);case"bigint":return ct.convertBigint(t);case"date":return ct.convertDate(t);default:return t}}},ct;(function(r){function e(c){let u="";for(let f=1;f<c.length-1;f++){let h=c.charAt(f);if(h==="\\"){let d=c.charAt(++f);u+=t(d)}else u+=h}return u}r.convertString=e;function t(c){switch(c){case"b":return"\b";case"f":return"\f";case"n":return`
|
|
`;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return c}}function n(c){return c.charAt(0)==="^"?c.substring(1):c}r.convertID=n;function i(c){return parseInt(c)}r.convertInt=i;function s(c){return BigInt(c)}r.convertBigint=s;function a(c){return new Date(c)}r.convertDate=a;function o(c){return Number(c)}r.convertNumber=o;function l(c){return c.toLowerCase()==="true"}r.convertBoolean=l})(ct||(ct={}));var _={};U(_,hc(xd(),1));function Hl(){return new Promise(r=>{typeof setImmediate=="undefined"?setTimeout(r,0):setImmediate(r)})}var Kl=0,Rd=10;function Ed(){return Kl=Date.now(),new _.CancellationTokenSource}function Ad(r){Rd=r}var ut=Symbol("OperationCancelled");function Gt(r){return r===ut}async function ye(r){if(r===_.CancellationToken.None)return;let e=Date.now();if(e-Kl>=Rd&&(Kl=e,await Hl()),r.isCancellationRequested)throw ut}var Fe=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=n=>(e(n),this),this.reject=n=>(t(n),this)})}};var Ks=class r{constructor(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(let n of e)if(r.isIncremental(n)){let i=Id(n.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+n.text+this._content.substring(a,this._content.length);let o=Math.max(i.start.line,0),l=Math.max(i.end.line,0),c=this._lineOffsets,u=vd(n.text,!1,s);if(l-o===u.length)for(let h=0,d=u.length;h<d;h++)c[h+o+1]=u[h];else u.length<1e4?c.splice(o+1,l-o,...u):this._lineOffsets=c=c.slice(0,o+1).concat(u,c.slice(l+1));let f=n.text.length-(a-s);if(f!==0)for(let h=o+1+u.length,d=c.length;h<d;h++)c[h]=c[h]+f}else if(r.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=vd(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,i=t.length;if(i===0)return{line:0,character:e};for(;n<i;){let a=Math.floor((n+i)/2);t[a]>e?i=a:n=a+1}let s=n-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line];if(e.character<=0)return n;let i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(n+e.character,i);return this.ensureBeforeEOL(s,n)}ensureBeforeEOL(e,t){for(;e>t&&kd(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}},Zr;(function(r){function e(i,s,a,o){return new Ks(i,s,a,o)}r.create=e;function t(i,s,a){if(i instanceof Ks)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}r.update=t;function n(i,s){let a=i.getText(),o=zl(s.map(Om),(u,f)=>{let h=u.range.start.line-f.range.start.line;return h===0?u.range.start.character-f.range.start.character:h}),l=0,c=[];for(let u of o){let f=i.offsetAt(u.range.start);if(f<l)throw new Error("Overlapping edit");f>l&&c.push(a.substring(l,f)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(a.substr(l)),c.join("")}r.applyEdits=n})(Zr||(Zr={}));function zl(r,e){if(r.length<=1)return r;let t=r.length/2|0,n=r.slice(0,t),i=r.slice(t);zl(n,e),zl(i,e);let s=0,a=0,o=0;for(;s<n.length&&a<i.length;)e(n[s],i[a])<=0?r[o++]=n[s++]:r[o++]=i[a++];for(;s<n.length;)r[o++]=n[s++];for(;a<i.length;)r[o++]=i[a++];return r}function vd(r,e,t=0){let n=e?[t]:[];for(let i=0;i<r.length;i++){let s=r.charCodeAt(i);kd(s)&&(s===13&&i+1<r.length&&r.charCodeAt(i+1)===10&&i++,n.push(t+i+1))}return n}function kd(r){return r===13||r===10}function Id(r){let e=r.start,t=r.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:r}function Om(r){let e=Id(r.range);return e!==r.range?{newText:r.newText,range:e}:r}var Nd;(()=>{"use strict";var r={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,c){for(var u,f="",h=0,d=-1,m=0,g=0;g<=l.length;++g){if(g<l.length)u=l.charCodeAt(g);else{if(u===47)break;u=47}if(u===47){if(!(d===g-1||m===1))if(d!==g-1&&m===2){if(f.length<2||h!==2||f.charCodeAt(f.length-1)!==46||f.charCodeAt(f.length-2)!==46){if(f.length>2){var v=f.lastIndexOf("/");if(v!==f.length-1){v===-1?(f="",h=0):h=(f=f.slice(0,v)).length-1-f.lastIndexOf("/"),d=g,m=0;continue}}else if(f.length===2||f.length===1){f="",h=0,d=g,m=0;continue}}c&&(f.length>0?f+="/..":f="..",h=2)}else f.length>0?f+="/"+l.slice(d+1,g):f=l.slice(d+1,g),h=g-d-1;d=g,m=0}else u===46&&m!==-1?++m:m=-1}return f}var o={resolve:function(){for(var l,c="",u=!1,f=arguments.length-1;f>=-1&&!u;f--){var h;f>=0?h=arguments[f]:(l===void 0&&(l=process.cwd()),h=l),s(h),h.length!==0&&(c=h+"/"+c,u=h.charCodeAt(0)===47)}return c=a(c,!u),u?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(l){if(s(l),l.length===0)return".";var c=l.charCodeAt(0)===47,u=l.charCodeAt(l.length-1)===47;return(l=a(l,!c)).length!==0||c||(l="."),l.length>0&&u&&(l+="/"),c?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,c=0;c<arguments.length;++c){var u=arguments[c];s(u),u.length>0&&(l===void 0?l=u:l+="/"+u)}return l===void 0?".":o.normalize(l)},relative:function(l,c){if(s(l),s(c),l===c||(l=o.resolve(l))===(c=o.resolve(c)))return"";for(var u=1;u<l.length&&l.charCodeAt(u)===47;++u);for(var f=l.length,h=f-u,d=1;d<c.length&&c.charCodeAt(d)===47;++d);for(var m=c.length-d,g=h<m?h:m,v=-1,x=0;x<=g;++x){if(x===g){if(m>g){if(c.charCodeAt(d+x)===47)return c.slice(d+x+1);if(x===0)return c.slice(d+x)}else h>g&&(l.charCodeAt(u+x)===47?v=x:x===0&&(v=0));break}var E=l.charCodeAt(u+x);if(E!==c.charCodeAt(d+x))break;E===47&&(v=x)}var T="";for(x=u+v+1;x<=f;++x)x!==f&&l.charCodeAt(x)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+c.slice(d+v):(d+=v,c.charCodeAt(d)===47&&++d,c.slice(d))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var c=l.charCodeAt(0),u=c===47,f=-1,h=!0,d=l.length-1;d>=1;--d)if((c=l.charCodeAt(d))===47){if(!h){f=d;break}}else h=!1;return f===-1?u?"/":".":u&&f===1?"//":l.slice(0,f)},basename:function(l,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(l);var u,f=0,h=-1,d=!0;if(c!==void 0&&c.length>0&&c.length<=l.length){if(c.length===l.length&&c===l)return"";var m=c.length-1,g=-1;for(u=l.length-1;u>=0;--u){var v=l.charCodeAt(u);if(v===47){if(!d){f=u+1;break}}else g===-1&&(d=!1,g=u+1),m>=0&&(v===c.charCodeAt(m)?--m==-1&&(h=u):(m=-1,h=g))}return f===h?h=g:h===-1&&(h=l.length),l.slice(f,h)}for(u=l.length-1;u>=0;--u)if(l.charCodeAt(u)===47){if(!d){f=u+1;break}}else h===-1&&(d=!1,h=u+1);return h===-1?"":l.slice(f,h)},extname:function(l){s(l);for(var c=-1,u=0,f=-1,h=!0,d=0,m=l.length-1;m>=0;--m){var g=l.charCodeAt(m);if(g!==47)f===-1&&(h=!1,f=m+1),g===46?c===-1?c=m:d!==1&&(d=1):c!==-1&&(d=-1);else if(!h){u=m+1;break}}return c===-1||f===-1||d===0||d===1&&c===f-1&&c===u+1?"":l.slice(c,f)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(c,u){var f=u.dir||u.root,h=u.base||(u.name||"")+(u.ext||"");return f?f===u.root?f+h:f+"/"+h:h}(0,l)},parse:function(l){s(l);var c={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return c;var u,f=l.charCodeAt(0),h=f===47;h?(c.root="/",u=1):u=0;for(var d=-1,m=0,g=-1,v=!0,x=l.length-1,E=0;x>=u;--x)if((f=l.charCodeAt(x))!==47)g===-1&&(v=!1,g=x+1),f===46?d===-1?d=x:E!==1&&(E=1):d!==-1&&(E=-1);else if(!v){m=x+1;break}return d===-1||g===-1||E===0||E===1&&d===g-1&&d===m+1?g!==-1&&(c.base=c.name=m===0&&h?l.slice(1,g):l.slice(m,g)):(m===0&&h?(c.name=l.slice(1,d),c.base=l.slice(1,g)):(c.name=l.slice(m,d),c.base=l.slice(m,g)),c.ext=l.slice(d,g)),m>0?c.dir=l.slice(0,m-1):h&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return r[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>h,Utils:()=>dt}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(A,y){if(!A.scheme&&y)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${A.authority}", path: "${A.path}", query: "${A.query}", fragment: "${A.fragment}"}`);if(A.scheme&&!s.test(A.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(A.path){if(A.authority){if(!a.test(A.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(A.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",u="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{constructor(y,I,S,j,O,L=!1){Ot(this,"scheme");Ot(this,"authority");Ot(this,"path");Ot(this,"query");Ot(this,"fragment");typeof y=="object"?(this.scheme=y.scheme||c,this.authority=y.authority||c,this.path=y.path||c,this.query=y.query||c,this.fragment=y.fragment||c):(this.scheme=function(we,Le){return we||Le?we:"file"}(y,L),this.authority=I||c,this.path=function(we,Le){switch(we){case"https":case"http":case"file":Le?Le[0]!==u&&(Le=u+Le):Le=u}return Le}(this.scheme,S||c),this.query=j||c,this.fragment=O||c,l(this,L))}static isUri(y){return y instanceof h||!!y&&typeof y.authority=="string"&&typeof y.fragment=="string"&&typeof y.path=="string"&&typeof y.query=="string"&&typeof y.scheme=="string"&&typeof y.fsPath=="string"&&typeof y.with=="function"&&typeof y.toString=="function"}get fsPath(){return E(this,!1)}with(y){if(!y)return this;let{scheme:I,authority:S,path:j,query:O,fragment:L}=y;return I===void 0?I=this.scheme:I===null&&(I=c),S===void 0?S=this.authority:S===null&&(S=c),j===void 0?j=this.path:j===null&&(j=c),O===void 0?O=this.query:O===null&&(O=c),L===void 0?L=this.fragment:L===null&&(L=c),I===this.scheme&&S===this.authority&&j===this.path&&O===this.query&&L===this.fragment?this:new m(I,S,j,O,L)}static parse(y,I=!1){let S=f.exec(y);return S?new m(S[2]||c,Te(S[4]||c),Te(S[5]||c),Te(S[7]||c),Te(S[9]||c),I):new m(c,c,c,c,c)}static file(y){let I=c;if(i&&(y=y.replace(/\\/g,u)),y[0]===u&&y[1]===u){let S=y.indexOf(u,2);S===-1?(I=y.substring(2),y=u):(I=y.substring(2,S),y=y.substring(S)||u)}return new m("file",I,y,c,c)}static from(y){let I=new m(y.scheme,y.authority,y.path,y.query,y.fragment);return l(I,!0),I}toString(y=!1){return T(this,y)}toJSON(){return this}static revive(y){if(y){if(y instanceof h)return y;{let I=new m(y);return I._formatted=y.external,I._fsPath=y._sep===d?y.fsPath:null,I}}return y}}let d=i?1:void 0;class m extends h{constructor(){super(...arguments);Ot(this,"_formatted",null);Ot(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=E(this,!1)),this._fsPath}toString(I=!1){return I?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let I={$mid:1};return this._fsPath&&(I.fsPath=this._fsPath,I._sep=d),this._formatted&&(I.external=this._formatted),this.path&&(I.path=this.path),this.scheme&&(I.scheme=this.scheme),this.authority&&(I.authority=this.authority),this.query&&(I.query=this.query),this.fragment&&(I.fragment=this.fragment),I}}let g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(A,y,I){let S,j=-1;for(let O=0;O<A.length;O++){let L=A.charCodeAt(O);if(L>=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||y&&L===47||I&&L===91||I&&L===93||I&&L===58)j!==-1&&(S+=encodeURIComponent(A.substring(j,O)),j=-1),S!==void 0&&(S+=A.charAt(O));else{S===void 0&&(S=A.substr(0,O));let we=g[L];we!==void 0?(j!==-1&&(S+=encodeURIComponent(A.substring(j,O)),j=-1),S+=we):j===-1&&(j=O)}}return j!==-1&&(S+=encodeURIComponent(A.substring(j))),S!==void 0?S:A}function x(A){let y;for(let I=0;I<A.length;I++){let S=A.charCodeAt(I);S===35||S===63?(y===void 0&&(y=A.substr(0,I)),y+=g[S]):y!==void 0&&(y+=A[I])}return y!==void 0?y:A}function E(A,y){let I;return I=A.authority&&A.path.length>1&&A.scheme==="file"?`//${A.authority}${A.path}`:A.path.charCodeAt(0)===47&&(A.path.charCodeAt(1)>=65&&A.path.charCodeAt(1)<=90||A.path.charCodeAt(1)>=97&&A.path.charCodeAt(1)<=122)&&A.path.charCodeAt(2)===58?y?A.path.substr(1):A.path[1].toLowerCase()+A.path.substr(2):A.path,i&&(I=I.replace(/\//g,"\\")),I}function T(A,y){let I=y?x:v,S="",{scheme:j,authority:O,path:L,query:we,fragment:Le}=A;if(j&&(S+=j,S+=":"),(O||j==="file")&&(S+=u,S+=u),O){let Z=O.indexOf("@");if(Z!==-1){let Wt=O.substr(0,Z);O=O.substr(Z+1),Z=Wt.lastIndexOf(":"),Z===-1?S+=I(Wt,!1,!1):(S+=I(Wt.substr(0,Z),!1,!1),S+=":",S+=I(Wt.substr(Z+1),!1,!0)),S+="@"}O=O.toLowerCase(),Z=O.lastIndexOf(":"),Z===-1?S+=I(O,!1,!0):(S+=I(O.substr(0,Z),!1,!0),S+=O.substr(Z))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){let Z=L.charCodeAt(1);Z>=65&&Z<=90&&(L=`/${String.fromCharCode(Z+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){let Z=L.charCodeAt(0);Z>=65&&Z<=90&&(L=`${String.fromCharCode(Z+32)}:${L.substr(2)}`)}S+=I(L,!0,!1)}return we&&(S+="?",S+=I(we,!1,!1)),Le&&(S+="#",S+=y?Le:v(Le,!1,!1)),S}function $(A){try{return decodeURIComponent(A)}catch(y){return A.length>3?A.substr(0,3)+$(A.substr(3)):A}}let P=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Te(A){return A.match(P)?A.replace(P,y=>$(y)):A}var Rr=t(470);let Ae=Rr.posix||Rr,wt="/";var dt;(function(A){A.joinPath=function(y,...I){return y.with({path:Ae.join(y.path,...I)})},A.resolvePath=function(y,...I){let S=y.path,j=!1;S[0]!==wt&&(S=wt+S,j=!0);let O=Ae.resolve(S,...I);return j&&O[0]===wt&&!y.authority&&(O=O.substring(1)),y.with({path:O})},A.dirname=function(y){if(y.path.length===0||y.path===wt)return y;let I=Ae.dirname(y.path);return I.length===1&&I.charCodeAt(0)===46&&(I=""),y.with({path:I})},A.basename=function(y){return Ae.basename(y.path)},A.extname=function(y){return Ae.extname(y.path)}})(dt||(dt={}))})(),Nd=n})();var{URI:Be,Utils:en}=Nd;var Ue;(function(r){r.basename=en.basename,r.dirname=en.dirname,r.extname=en.extname,r.joinPath=en.joinPath,r.resolvePath=en.resolvePath;function e(n,i){return(n==null?void 0:n.toString())===(i==null?void 0:i.toString())}r.equals=e;function t(n,i){let s=typeof n=="string"?n:n.path,a=typeof i=="string"?i:i.path,o=s.split("/").filter(h=>h.length>0),l=a.split("/").filter(h=>h.length>0),c=0;for(;c<o.length&&o[c]===l[c];c++);let u="../".repeat(o.length-c),f=l.slice(c).join("/");return u+f}r.relative=t})(Ue||(Ue={}));var X;(function(r){r[r.Changed=0]="Changed",r[r.Parsed=1]="Parsed",r[r.IndexedContent=2]="IndexedContent",r[r.ComputedScopes=3]="ComputedScopes",r[r.Linked=4]="Linked",r[r.IndexedReferences=5]="IndexedReferences",r[r.Validated=6]="Validated"})(X||(X={}));var ei=class{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=_.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=t!=null?t:Be.parse(e.uri),n?this.createAsync(t,e,n):this.create(t,e)}fromString(e,t,n){return n?this.createAsync(t,e,n):this.create(t,e)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t){if(typeof t=="string"){let n=this.parse(e,t);return this.createLangiumDocument(n,e,void 0,t)}else if("$model"in t){let n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}else{let n=this.parse(e,t.getText());return this.createLangiumDocument(n,e,t)}}async createAsync(e,t,n){if(typeof t=="string"){let i=await this.parseAsync(e,t,n);return this.createLangiumDocument(i,e,void 0,t)}else{let i=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,n,i){let s;if(n)s={parseResult:e,uri:t,state:X.Parsed,references:[],textDocument:n};else{let a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:X.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var n,i;let s=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,a=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),o=a?a.getText():await this.fileSystemProvider.readFile(e.uri);if(a)Object.defineProperty(e,"textDocument",{value:a});else{let l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=X.Parsed,e}parse(e,t){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t)}parseAsync(e,t,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){let n=this.serviceRegistry,i;return()=>i!=null?i:i=Zr.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t!=null?t:"")}},ti=class{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return V(this.documentMap.values())}addDocument(e){let t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){let t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=X.Changed,n.precomputedScopes=void 0,n.references=[],n.diagnostics=void 0),n}deleteDocument(e){let t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=X.Changed,this.documentMap.delete(t)),n}};var ri=class{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=_.CancellationToken.None){for(let n of Je(e.parseResult.value))await ye(t),Ir(n).forEach(i=>this.doLink(i,e))}doLink(e,t){let n=e.reference;if(n._ref===void 0)try{let i=this.getCandidate(e);if(qt(i))n._ref=i;else if(n._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){let s=this.loadAstNode(i);n._ref=s!=null?s:this.createLinkingError(e,i)}}catch(i){n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}t.references.push(n)}unlink(e){for(let t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n!=null?n:this.createLinkingError(e)}buildReference(e,t,n,i){let s=this,a={$refNode:n,$refText:i,get ref(){var o;if(se(this._ref))return this._ref;if(la(this._nodeDescription)){let l=s.loadAstNode(this._nodeDescription);this._ref=l!=null?l:s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){let l=s.getLinkedNode({reference:a,container:e,property:t});if(l.error&&me(e).state<X.ComputedScopes)return;this._ref=(o=l.node)!==null&&o!==void 0?o:l.error,this._nodeDescription=l.descr}return se(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return qt(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){try{let t=this.getCandidate(e);if(qt(t))return{error:t};let n=this.loadAstNode(t);return n?{node:n,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(t){return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${t}`})}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){let n=me(e.container);n.state<X.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);let i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:t})}};function Sd(r){return typeof r.name=="string"}var ni=class{getName(e){if(Sd(e))return e.name}getNameNode(e){return In(e.$cstNode,"name")}};var ii=class{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let t=$o(e),n=e.astNode;if(t&&n){let i=n[t.feature];if(Ee(i))return i.ref;if(Array.isArray(i)){for(let s of i)if(Ee(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||ua(e,i)))return n}}}findDeclarationNode(e){let t=this.findDeclaration(e);if(t!=null&&t.$cstNode){let n=this.nameProvider.getNameNode(t);return n!=null?n:t.$cstNode}}findReferences(e,t){let n=[];if(t.includeDeclaration){let s=this.getReferenceToSelf(e);s&&n.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>Ue.equals(s.sourceUri,t.documentUri))),n.push(...i),V(n)}getReferenceToSelf(e){let t=this.nameProvider.getNameNode(e);if(t){let n=me(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Yt(t),local:!0}}}};var ft=class{constructor(e){if(this.map=new Map,e)for(let[t,n]of e)this.add(t,n)}get size(){return Ar.sum(V(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(t);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,n)=>t.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return V(this.map.entries()).flatMap(([e,t])=>t.map(n=>[e,n]))}keys(){return V(this.map.keys())}values(){return V(this.map.values()).flat()}entriesGroupedByKey(){return V(this.map.entries())}},yr=class{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}};var si=class{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=_.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=Rn,i=_.CancellationToken.None){let s=[];this.exportNode(e,s,t);for(let a of n(e))await ye(i),this.exportNode(a,s,t);return s}exportNode(e,t,n){let i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,t=_.CancellationToken.None){let n=e.parseResult.value,i=new ft;for(let s of at(n))await ye(t),this.processNode(s,e,i);return i}processNode(e,t,n){let i=e.$container;if(i){let s=this.nameProvider.getName(e);s&&n.add(i,this.descriptions.createDescription(e,s,t))}}};var tn=class{constructor(e,t,n){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=n==null?void 0:n.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}},ai=class{constructor(e,t,n){var i;this.elements=new Map,this.caseInsensitive=(i=n==null?void 0:n.caseInsensitive)!==null&&i!==void 0?i:!1;for(let s of e){let a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(t);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=V(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},$m={getElement(){},getAllElements(){return pn}};var rn=class{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},oi=class extends rn{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let n=t();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},Tr=class extends rn{constructor(e){super(),this.cache=new Map,this.converter=e!=null?e:t=>t}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(n){let s=n();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}},Hs=class extends Tr{constructor(e){super(t=>t.toString()),this.onDispose(e.workspace.DocumentBuilder.onUpdate((t,n)=>{let i=t.concat(n);for(let s of i)this.clear(s)}))}},nn=class extends oi{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}};var li=class{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new nn(e.shared)}getScope(e){let t=[],n=this.reflection.getReferenceType(e),i=me(e.container).precomputedScopes;if(i){let a=e.container;do{let o=i.get(a);o.length>0&&t.push(V(o).filter(l=>this.reflection.isSubtype(l.type,n))),a=a.$container}while(a)}let s=this.getGlobalScope(n,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,n){return new tn(V(e),t,n)}createScopeForNodes(e,t,n){let i=V(e).map(s=>{let a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new tn(i,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new ai(this.indexManager.allElements(e)))}};function ql(r){return typeof r.$comment=="string"}function Cd(r){return typeof r=="object"&&!!r&&("$ref"in r||"$error"in r)}var ci=class{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t={}){let n=t==null?void 0:t.replacer,i=(a,o)=>this.replacer(a,o,t),s=n?(a,o)=>n(a,o,i):i;try{return this.currentDocument=me(e),JSON.stringify(e,s,t==null?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t={}){let n=JSON.parse(e);return this.linkNode(n,n,t),n}replacer(e,t,{refText:n,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,c,u,f;if(!this.ignoreProperties.has(e))if(Ee(t)){let h=t.ref,d=n?t.$refText:void 0;if(h){let m=me(h),g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,t):g=m.uri.toString());let v=this.astNodeLocator.getAstNodePath(h);return{$ref:`${g}#${v}`,$refText:d}}else return{$error:(c=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&c!==void 0?c:"Could not resolve reference",$refText:d}}else if(se(t)){let h;if(s&&(h=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&(h!=null&&h.$textRegion)&&(h.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString())),i&&!e&&(h!=null||(h=Object.assign({},t)),h.$sourceText=(f=t.$cstNode)===null||f===void 0?void 0:f.text),a){h!=null||(h=Object.assign({},t));let d=this.commentProvider.getComment(t);d&&(h.$comment=d.replace(/\r/g,""))}return h!=null?h:t}else return t}addAstNodeRegionWithAssignmentsTo(e){let t=n=>({offset:n.offset,end:n.end,length:n.length,range:n.range});if(e.$cstNode){let n=e.$textRegion=t(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{let a=_o(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,n,i,s,a){for(let[l,c]of Object.entries(e))if(Array.isArray(c))for(let u=0;u<c.length;u++){let f=c[u];Cd(f)?c[u]=this.reviveReference(e,l,t,f,n):se(f)&&this.linkNode(f,t,n,e,l,u)}else Cd(c)?e[l]=this.reviveReference(e,l,t,c,n):se(c)&&this.linkNode(c,t,n,e,l);let o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,n,i,s){let a=i.$refText,o=i.$error;if(i.$ref){let l=this.getRefNode(n,i.$ref,s.uriConverter);if(se(l))return a||(a=this.nameProvider.getName(l)),{$refText:a!=null?a:"",ref:l};o=l}if(o){let l={$refText:a!=null?a:""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,n){try{let i=t.indexOf("#");if(i===0){let l=this.astNodeLocator.getAstNode(e,t.substring(1));return l||"Could not resolve path: "+t}if(i<0){let l=n?n(t):Be.parse(t),c=this.langiumDocuments.getDocument(l);return c?c.parseResult.value:"Could not find document for URI: "+t}let s=n?n(t.substring(0,i)):Be.parse(t.substring(0,i)),a=this.langiumDocuments.getDocument(s);if(!a)return"Could not find document for URI: "+t;if(i===t.length-1)return a.parseResult.value;let o=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1));return o||"Could not resolve URI: "+t}catch(i){return String(i)}}};var ui=class{register(e){if(!this.singleton&&!this.map){this.singleton=e;return}if(!this.map&&(this.map={},this.singleton)){for(let t of this.singleton.LanguageMetaData.fileExtensions)this.map[t]=this.singleton;this.singleton=void 0}for(let t of e.LanguageMetaData.fileExtensions)this.map[t]!==void 0&&this.map[t]!==e&&console.warn(`The file extension ${t} is used by multiple languages. It is now assigned to '${e.LanguageMetaData.languageId}'.`),this.map[t]=e}getServices(e){if(this.singleton!==void 0)return this.singleton;if(this.map===void 0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let t=Ue.extname(e),n=this.map[t];if(!n)throw new Error(`The service registry contains no services for the extension '${t}'.`);return n}get all(){return this.singleton!==void 0?[this.singleton]:this.map!==void 0?Object.values(this.map):[]}};function zs(r){return{code:r}}var sn;(function(r){r.all=["fast","slow","built-in"]})(sn||(sn={}));var fi=class{constructor(e){this.entries=new ft,this.reflection=e.shared.AstReflection}register(e,t=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,s]of Object.entries(e)){let a=s;if(Array.isArray(a))for(let o of a){let l={check:this.wrapValidationException(o,t),category:n};this.addEntry(i,l)}else if(typeof a=="function"){let o={check:this.wrapValidationException(a,t),category:n};this.addEntry(i,o)}}}wrapValidationException(e,t){return async(n,i,s)=>{try{await e.call(t,n,i,s)}catch(a){if(Gt(a))throw a;console.error("An error occurred during validation:",a);let o=a instanceof Error?a.message:String(a);a instanceof Error&&a.stack&&console.error(a.stack),i("error","An error occurred during validation: "+o,{node:n})}}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,t)}getChecks(e,t){let n=V(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(i=>t.includes(i.category))),n.map(i=>i.check)}};var di=class{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=_.CancellationToken.None){let i=e.parseResult,s=[];if(await ye(n),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_t.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_t.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_t.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,n))}catch(a){if(Gt(a))throw a;console.error("An error occurred during validation:",a)}return await ye(n),s}processLexingErrors(e,t,n){for(let i of e.lexerErrors){let s={severity:qs("error"),range:{start:{line:i.line-1,character:i.column-1},end:{line:i.line-1,character:i.column+i.length-1}},message:i.message,data:zs(_t.LexingError),source:this.getSource()};t.push(s)}}processParsingErrors(e,t,n){for(let i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){let a=i.previousToken;if(isNaN(a.startOffset)){let o={line:0,character:0};s={start:o,end:o}}else{let o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=vr(i.token);if(s){let a={severity:qs("error"),range:s,message:i.message,data:zs(_t.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,n){for(let i of e.references){let s=i.error;if(s){let a={node:s.container,property:s.property,index:s.index,data:{code:_t.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,n=_.CancellationToken.None){let i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await Promise.all(Je(e).map(async a=>{await ye(n);let o=this.validationRegistry.getChecks(a.$type,t.categories);for(let l of o)await l(a,s,n)})),i}toDiagnostic(e,t,n){return{message:t,range:_d(n),severity:qs(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function _d(r){if(r.range)return r.range;let e;return typeof r.property=="string"?e=In(r.node.$cstNode,r.property,r.index):typeof r.keyword=="string"&&(e=Lo(r.node.$cstNode,r.keyword,r.index)),e!=null||(e=r.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function qs(r){switch(r){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+r)}}var _t;(function(r){r.LexingError="lexing-error",r.ParsingError="parsing-error",r.LinkingError="linking-error"})(_t||(_t={}));var hi=class{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n=me(e)){t!=null||(t=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${i} has no name.`);let s,a=()=>{var o;return s!=null?s:s=Yt((o=this.nameProvider.getNameNode(e))!==null&&o!==void 0?o:e.$cstNode)};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:Yt(e.$cstNode),type:e.$type,documentUri:n.uri,path:i}}},pi=class{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=_.CancellationToken.None){let n=[],i=e.parseResult.value;for(let s of Je(i))await ye(t),Ir(s).filter(a=>!qt(a)).forEach(a=>{let o=this.createDescription(a);o&&n.push(o)});return n}createDescription(e){let t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;let i=me(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Yt(n),local:Ue.equals(t.documentUri,i)}}};var mi=class{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;let a=s.indexOf(this.indexSeparator);if(a>0){let o=s.substring(0,a),l=parseInt(s.substring(a+1)),c=i[o];return c==null?void 0:c[l]}return i[s]},e)}};var gi=class{constructor(e){this._ready=new Fe,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=(n=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,n[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{this.updateSectionConfiguration(t,e.settings[t])})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}};var xr;(function(r){function e(t){return{dispose:async()=>await t()}}r.create=e})(xr||(xr={}));var yi=class{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new ft,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=X.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=_.CancellationToken.None){var i,s;for(let a of e){let o=a.uri.toString();if(a.state===X.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=X.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){let l=this.buildState.get(o),c=(i=l==null?void 0:l.result)===null||i===void 0?void 0:i.validationChecks;if(c){let f=((s=t.validation.categories)!==null&&s!==void 0?s:sn.all).filter(h=>!c.includes(h));f.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:f})},result:l.result}),a.state=X.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=X.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=_.CancellationToken.None){this.currentState=X.Changed;for(let a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(let a of e){if(!this.langiumDocuments.invalidateDocument(a)){let l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=X.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}let i=V(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,X.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await ye(n);let s=this.langiumDocuments.all.filter(a=>{var o;return a.state<X.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray();await this.buildDocuments(s,this.updateBuildOptions,n)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(n=>n(e,t)))}shouldRelink(e,t){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),xr.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,X.Parsed,n,s=>this.langiumDocumentFactory.update(s,n)),await this.runCancelable(e,X.IndexedContent,n,s=>this.indexManager.updateContent(s,n)),await this.runCancelable(e,X.ComputedScopes,n,async s=>{let a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,n)}),await this.runCancelable(e,X.Linked,n,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,n)),await this.runCancelable(e,X.IndexedReferences,n,s=>this.indexManager.updateReferences(s,n));let i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,X.Validated,n,s=>this.validate(s,n));for(let s of e){let a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(let n of e){let i=n.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s==null?void 0:s.result})}}async runCancelable(e,t,n,i){let s=e.filter(a=>a.state<t);for(let a of s)await ye(n),await i(a),a.state=t;await this.notifyBuildPhase(s,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),xr.create(()=>{this.buildPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let i;if(t&&"path"in t?i=t:n=t,n!=null||(n=_.CancellationToken.None),i){let s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(ut):new Promise((s,a)=>{let o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){let c=this.langiumDocuments.getDocument(i);s(c==null?void 0:c.uri)}else s(void 0)}),l=n.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(ut)})})}async notifyBuildPhase(e,t,n){if(e.length===0)return;let i=this.buildPhaseListeners.get(t);for(let s of i)await ye(n),await s(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var n,i;let s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;let c=this.buildState.get(e.uri.toString());if(c){(n=c.result)!==null&&n!==void 0||(c.result={});let u=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:sn.all;c.result.validationChecks?c.result.validationChecks.push(...u):c.result.validationChecks=[...u]}}getBuildOptions(e){var t,n;return(n=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&n!==void 0?n:{}}};var Ti=class{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Tr,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let n=me(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{Ue.equals(a.targetUri,n)&&a.targetPath===t&&i.push(a)})}),V(i)}allElements(e,t){let n=V(this.symbolIndex.keys());return t&&(n=n.filter(i=>!t||t.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var n;return t?this.symbolByTypeIndex.get(e,t,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(o=>this.astReflection.isSubtype(o.type,t))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=_.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=_.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}};var xi=class{constructor(e){this.initialBuildOptions={},this._ready=new Fe,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],t)})}async initializeWorkspace(e,t=_.CancellationToken.None){let n=await this.performStartup(e);await ye(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){let t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),n=[],i=s=>{n.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return Be.parse(e.uri)}async traverseFolder(e,t,n,i){let s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,n)){if(a.isDirectory)await this.traverseFolder(e,a.uri,n,i);else if(a.isFile){let o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,n){let i=Ue.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){let s=Ue.extname(t.uri);return n.includes(s)}return!1}};var Ri=class{constructor(e){let t=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let n=Xl(t)?Object.values(t):t;this.chevrotainLexer=new oe(n,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var t;let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:(t=n.groups.hidden)!==null&&t!==void 0?t:[]}}toTokenTypeDictionary(e){if(Xl(e))return e;let t=Yl(e)?Object.values(e.modes).flat():e,n={};return t.forEach(i=>n[i.name]=i),n}};function wd(r){return Array.isArray(r)&&(r.length===0||"name"in r[0])}function Yl(r){return r&&"modes"in r&&"defaultMode"in r}function Xl(r){return!wd(r)&&!Yl(r)}function Zl(r,e,t){let n,i;typeof r=="string"?(i=e,n=t):(i=r.range.start,n=e),i||(i=G.create(0,0));let s=$d(r),a=tc(n),o=bm({lines:s,position:i,options:a});return Gm({index:0,tokens:o,position:i})}function ec(r,e){let t=tc(e),n=$d(r);if(n.length===0)return!1;let i=n[0],s=n[n.length-1],a=t.start,o=t.end;return!!(a!=null&&a.exec(i))&&!!(o!=null&&o.exec(s))}function $d(r){let e="";return typeof r=="string"?e=r:e=r.text,e.split(Eo)}var Ld=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Pm=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function bm(r){var e,t,n;let i=[],s=r.position.line,a=r.position.character;for(let o=0;o<r.lines.length;o++){let l=o===0,c=o===r.lines.length-1,u=r.lines[o],f=0;if(l&&r.options.start){let d=(e=r.options.start)===null||e===void 0?void 0:e.exec(u);d&&(f=d.index+d[0].length)}else{let d=(t=r.options.line)===null||t===void 0?void 0:t.exec(u);d&&(f=d.index+d[0].length)}if(c){let d=(n=r.options.end)===null||n===void 0?void 0:n.exec(u);d&&(u=u.substring(0,d.index))}if(u=u.substring(0,Um(u)),Ql(u,f)>=u.length){if(i.length>0){let d=G.create(s,a);i.push({type:"break",content:"",range:F.create(d,d)})}}else{Ld.lastIndex=f;let d=Ld.exec(u);if(d){let m=d[0],g=d[1],v=G.create(s,a+f),x=G.create(s,a+f+m.length);i.push({type:"tag",content:g,range:F.create(v,x)}),f+=m.length,f=Ql(u,f)}if(f<u.length){let m=u.substring(f),g=Array.from(m.matchAll(Pm));i.push(...Mm(g,m,s,a+f))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function Mm(r,e,t,n){let i=[];if(r.length===0){let s=G.create(t,n),a=G.create(t,n+e.length);i.push({type:"text",content:e,range:F.create(s,a)})}else{let s=0;for(let o of r){let l=o.index,c=e.substring(s,l);c.length>0&&i.push({type:"text",content:e.substring(s,l),range:F.create(G.create(t,s+n),G.create(t,l+n))});let u=c.length+1,f=o[1];if(i.push({type:"inline-tag",content:f,range:F.create(G.create(t,s+u+n),G.create(t,s+u+f.length+n))}),u+=f.length,o.length===4){u+=o[2].length;let h=o[3];i.push({type:"text",content:h,range:F.create(G.create(t,s+u+n),G.create(t,s+u+h.length+n))})}else i.push({type:"text",content:"",range:F.create(G.create(t,s+u+n),G.create(t,s+u+n))});s=l+o[0].length}let a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:F.create(G.create(t,s+n),G.create(t,s+n+a.length))})}return i}var Dm=/\S/,Fm=/\s*$/;function Ql(r,e){let t=r.substring(e).match(Dm);return t?e+t.index:r.length}function Um(r){let e=r.match(Fm);if(e&&typeof e.index=="number")return e.index}function Gm(r){var e,t,n,i;let s=G.create(r.position.line,r.position.character);if(r.tokens.length===0)return new Xs([],F.create(s,s));let a=[];for(;r.index<r.tokens.length;){let c=Bm(r,a[a.length-1]);c&&a.push(c)}let o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(i=(n=a[a.length-1])===null||n===void 0?void 0:n.range.end)!==null&&i!==void 0?i:s;return new Xs(a,F.create(o,l))}function Bm(r,e){let t=r.tokens[r.index];if(t.type==="tag")return bd(r,!1);if(t.type==="text"||t.type==="inline-tag")return Pd(r);Wm(t,e),r.index++}function Wm(r,e){if(e){let t=new Ys("",r.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function Pd(r){let e=r.tokens[r.index],t=e,n=e,i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(jm(r)),n=e,e=r.tokens[r.index];return new Ai(i,F.create(t.range.start,n.range.end))}function jm(r){return r.tokens[r.index].type==="inline-tag"?bd(r,!0):Md(r)}function bd(r,e){let t=r.tokens[r.index++],n=t.content.substring(1),i=r.tokens[r.index];if((i==null?void 0:i.type)==="text")if(e){let s=Md(r);return new Ei(n,new Ai([s],s.range),e,F.create(t.range.start,s.range.end))}else{let s=Pd(r);return new Ei(n,s,e,F.create(t.range.start,s.range.end))}else{let s=t.range;return new Ei(n,new Ai([],s),e,s)}}function Md(r){let e=r.tokens[r.index++];return new Ys(e.content,e.range)}function tc(r){if(!r)return tc({start:"/**",end:"*/",line:"*"});let{start:e,end:t,line:n}=r;return{start:Jl(e,!0),end:Jl(t,!1),line:Jl(n,!0)}}function Jl(r,e){if(typeof r=="string"||typeof r=="object"){let t=typeof r=="string"?nr(r):r.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return r}var Xs=class{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(e.length===0)e=t.toString();else{let n=t.toString();e+=Od(e)+n}return e.trim()}toMarkdown(e){let t="";for(let n of this.elements)if(t.length===0)t=n.toMarkdown(e);else{let i=n.toMarkdown(e);t+=Od(t)+i}return t.trim()}},Ei=class{constructor(e,t,n,i){this.name=e,this.content=t,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}
|
|
${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return(n=(t=e==null?void 0:e.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let s=Vm(this.name,t,e!=null?e:{});if(typeof s=="string")return s}let n="";(e==null?void 0:e.tag)==="italic"||(e==null?void 0:e.tag)===void 0?n="*":(e==null?void 0:e.tag)==="bold"?n="**":(e==null?void 0:e.tag)==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${t}`:this.content.inlines.length>1&&(i=`${i}
|
|
${t}`),this.inline?`{${i}}`:i}};function Vm(r,e,t){var n,i;if(r==="linkplain"||r==="linkcode"||r==="link"){let s=e.indexOf(" "),a=e;if(s>0){let l=Ql(e,s);a=e.substring(l),e=e.substring(0,s)}return(r==="linkcode"||r==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(n=t.renderLink)===null||n===void 0?void 0:n.call(t,e,a))!==null&&i!==void 0?i:Km(e,a)}}function Km(r,e){try{return Be.parse(r,!0),`[${e}](${r})`}catch(t){return r}}var Ai=class{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){let n=this.inlines[t],i=this.inlines[t+1];e+=n.toString(),i&&i.range.start.line>n.range.start.line&&(e+=`
|
|
`)}return e}toMarkdown(e){let t="";for(let n=0;n<this.inlines.length;n++){let i=this.inlines[n],s=this.inlines[n+1];t+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(t+=`
|
|
`)}return t}},Ys=class{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};function Od(r){return r.endsWith(`
|
|
`)?`
|
|
`:`
|
|
|
|
`}var vi=class{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&ec(t))return Zl(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,t,n){var i;let s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){let a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${n}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){let i=me(e).precomputedScopes;if(!i)return;let s=e;do{let o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}};var ki=class{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return ql(e)?e.$comment:(t=da(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}};var le={};U(le,hc(Wl(),1));var Ii=class{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}},rc=class{constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length<this.threadCount;){let e=this.createWorker();e.onReady(()=>{if(this.queue.length>0){let t=this.queue.shift();t&&(e.lock(),t.resolve(e))}}),this.workerPool.push(e)}}async parse(e,t){let n=await this.acquireParserWorker(t),i=new Fe,s,a=t.onCancellationRequested(()=>{s=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(o=>{let l=this.hydrator.hydrate(o);i.resolve(l)}).catch(o=>{i.reject(o)}).finally(()=>{a.dispose(),clearTimeout(s)}),i.promise}terminateWorker(e){e.terminate();let t=this.workerPool.indexOf(e);t>=0&&this.workerPool.splice(t,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let t=new Fe;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(t);n>=0&&this.queue.splice(n,1),t.reject(ut)}),this.queue.push(t),t.promise}},nc=class{get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,n,i){this.onReadyEmitter=new le.Emitter,this.deferred=new Fe,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,t(s=>{let a=s;this.deferred.resolve(a),this.unlock()}),n(s=>{this.deferred.reject(s),this.unlock()})}terminate(){this.deferred.reject(ut),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new Fe,this.sendMessage(e),this.deferred.promise}};var Ni=class{constructor(){this.previousTokenSource=new _.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=new _.CancellationTokenSource;return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n){let i=new Fe,s={action:t,deferred:i,cancellationToken:n!=null?n:_.CancellationToken.None};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:n,cancellationToken:i})=>{try{let s=await Promise.resolve().then(()=>t(i));n.resolve(s)}catch(s){Gt(s)?n.resolve(void 0):n.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}};var Si=class{constructor(e){this.grammarElementIdMap=new yr,this.tokenTypeIdMap=new yr,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(t=>Object.assign({},t)),parserErrors:e.parserErrors.map(t=>Object.assign({},t)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let t=new Map,n=new Map;for(let i of Je(e))t.set(i,{});if(e.$cstNode)for(let i of Xt(e.$cstNode))n.set(i,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){let n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(let[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){let a=[];n[i]=a;for(let o of s)se(o)?a.push(this.dehydrateAstNode(o,t)):Ee(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else se(s)?n[i]=this.dehydrateAstNode(s,t):Ee(s)?n[i]=this.dehydrateReference(s,t):s!==void 0&&(n[i]=s);return n}dehydrateReference(e,t){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){let n=t.cstNodes.get(e);return hn(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),Ve(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,t)):Pt(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let t=e.value,n=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,n),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){let t=new Map,n=new Map;for(let s of Je(e))t.set(s,{});let i;if(e.$cstNode)for(let s of Xt(e.$cstNode)){let a;"fullText"in s?(a=new Xr(s.fullText),i=a):"content"in s?a=new hr:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(n.set(s,a),a.root=i)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){let n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=t.cstNodes.get(e.$cstNode));for(let[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){let a=[];n[i]=a;for(let o of s)se(o)?a.push(this.setParent(this.hydrateAstNode(o,t),n)):Ee(o)?a.push(this.hydrateReference(o,n,i,t)):a.push(o)}else se(s)?n[i]=this.setParent(this.hydrateAstNode(s,t),n):Ee(s)?n[i]=this.hydrateReference(s,n,i,t):s!==void 0&&(n[i]=s);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,i){return this.linker.buildReference(t,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){let i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),Ve(i))for(let s of e.content){let a=this.hydrateCstNode(s,t,n++);i.content.push(a)}return i}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),n=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,c=e.hidden;return new dr(n,i,{start:{line:s,character:a},end:{line:o,character:l}},t,c)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();let t=this.grammarElementIdMap.getKey(e);if(t)return t;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let t of Je(this.grammar))yn(t)&&this.grammarElementIdMap.set(t,e++)}};function ic(r){return{documentation:{CommentProvider:e=>new ki(e),DocumentationProvider:e=>new vi(e)},parser:{AsyncParser:e=>new Ii(e),GrammarConfig:e=>Do(e),LangiumParser:e=>Ml(e),CompletionParser:e=>bl(e),ValueConverter:()=>new gr,TokenBuilder:()=>new mr,Lexer:e=>new Ri(e),ParserErrorMessageProvider:()=>new Yr},workspace:{AstNodeLocator:()=>new mi,AstNodeDescriptionProvider:e=>new hi(e),ReferenceDescriptionProvider:e=>new pi(e)},references:{Linker:e=>new ri(e),NameProvider:()=>new ni,ScopeProvider:e=>new li(e),ScopeComputation:e=>new si(e),References:e=>new ii(e)},serializer:{Hydrator:e=>new Si(e),JsonSerializer:e=>new ci(e)},validation:{DocumentValidator:e=>new di(e),ValidationRegistry:e=>new fi(e)},shared:()=>r.shared}}function sc(r){return{ServiceRegistry:()=>new ui,workspace:{LangiumDocuments:e=>new ti(e),LangiumDocumentFactory:e=>new ei(e),DocumentBuilder:e=>new yi(e),IndexManager:e=>new Ti(e),WorkspaceManager:e=>new xi(e),FileSystemProvider:e=>r.fileSystemProvider(e),WorkspaceLock:()=>new Ni,ConfigurationProvider:e=>new gi(e)}}}var ac;(function(r){r.merge=(e,t)=>Js(Js({},e),t)})(ac||(ac={}));function Qs(r,e,t,n,i,s,a,o,l){let c=[r,e,t,n,i,s,a,o,l].reduce(Js,{});return Gd(c)}var oc=Symbol("isProxy");function Ud(r){if(r&&r[oc])for(let e of Object.values(r))Ud(e);return r}function Gd(r,e){let t=new Proxy({},{deleteProperty:()=>!1,get:(n,i)=>Fd(n,i,r,e||t),getOwnPropertyDescriptor:(n,i)=>(Fd(n,i,r,e||t),Object.getOwnPropertyDescriptor(n,i)),has:(n,i)=>i in r,ownKeys:()=>[...Reflect.ownKeys(r),oc]});return t[oc]=!0,t}var Dd=Symbol();function Fd(r,e,t,n){if(e in r){if(r[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:r[e]});if(r[e]===Dd)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return r[e]}else if(e in t){let i=t[e];r[e]=Dd;try{r[e]=typeof i=="function"?i(n):Gd(i,n)}catch(s){throw r[e]=s instanceof Error?s:void 0,s}return r[e]}else return}function Js(r,e){if(e){for(let[t,n]of Object.entries(e))if(n!==void 0){let i=r[t];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?r[t]=Js(i,n):r[t]=n}}return r}var B={};Vt(B,{AstUtils:()=>ji,BiMap:()=>yr,Cancellation:()=>_,ContextCache:()=>Tr,CstUtils:()=>Oi,DONE_RESULT:()=>Pe,Deferred:()=>Fe,Disposable:()=>xr,DisposableCache:()=>rn,DocumentCache:()=>Hs,EMPTY_STREAM:()=>pn,ErrorWithLocation:()=>Jt,GrammarUtils:()=>Xi,MultiMap:()=>ft,OperationCancelled:()=>ut,Reduction:()=>Ar,RegExpUtils:()=>zi,SimpleCache:()=>oi,StreamImpl:()=>Ke,TreeStreamImpl:()=>st,URI:()=>Be,UriUtils:()=>Ue,WorkspaceCache:()=>nn,assertUnreachable:()=>bt,delayNextTick:()=>Hl,interruptAndCheck:()=>ye,isOperationCancelled:()=>Gt,loadGrammarFromJson:()=>Bt,setInterruptionPeriod:()=>Ad,startCancelableOperation:()=>Ed,stream:()=>V});U(B,le);var Zs=class{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},lc={fileSystemProvider:()=>new Zs};var Hm={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},zm={AstReflection:()=>new kr};function qm(){let r=Qs(sc(lc),zm),e=Qs(ic({shared:r}),Hm);return r.ServiceRegistry.register(e),e}function Bt(r){var e;let t=qm(),n=t.serializer.JsonSerializer.deserialize(r);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,Be.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}U(he,B);var Xm=Object.defineProperty,W=(r,e)=>Xm(r,"name",{value:e,configurable:!0}),Ym="Statement",Jm="Architecture";function Qm(r){return nt.isInstance(r,Jm)}W(Qm,"isArchitecture");var Bd="Branch";function Zm(r){return nt.isInstance(r,Bd)}W(Zm,"isBranch");var eg="Checkout",tg="CherryPicking",Wd="Commit";function rg(r){return nt.isInstance(r,Wd)}W(rg,"isCommit");var ng="Common";function ig(r){return nt.isInstance(r,ng)}W(ig,"isCommon");var jd="GitGraph";function sg(r){return nt.isInstance(r,jd)}W(sg,"isGitGraph");var ag="Info";function og(r){return nt.isInstance(r,ag)}W(og,"isInfo");var Vd="Merge";function lg(r){return nt.isInstance(r,Vd)}W(lg,"isMerge");var cg="Packet";function ug(r){return nt.isInstance(r,cg)}W(ug,"isPacket");var fg="PacketBlock";function dg(r){return nt.isInstance(r,fg)}W(dg,"isPacketBlock");var hg="Pie";function pg(r){return nt.isInstance(r,hg)}W(pg,"isPie");var mg="PieSection";function gg(r){return nt.isInstance(r,mg)}W(gg,"isPieSection");var yg="Direction",an,Kd=(an=class extends zt{getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(e,t){switch(e){case Bd:case eg:case tg:case Wd:case Vd:return this.isSubtype(Ym,t);case yg:return this.isSubtype(jd,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},W(an,"MermaidAstReflection"),an),nt=new Kd,ea,Tg=W(()=>ea!=null?ea:ea=Bt('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'),"InfoGrammar"),ta,xg=W(()=>ta!=null?ta:ta=Bt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`),"PacketGrammar"),ra,Rg=W(()=>ra!=null?ra:ra=Bt('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'),"PieGrammar"),na,Eg=W(()=>na!=null?na:na=Bt('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'),"ArchitectureGrammar"),ia,Ag=W(()=>ia!=null?ia:ia=Bt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`),"GitGraphGrammar"),vg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},kg={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Ig={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Ng={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Sg={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},cN={AstReflection:W(()=>new Kd,"AstReflection")},uN={Grammar:W(()=>Tg(),"Grammar"),LanguageMetaData:W(()=>vg,"LanguageMetaData"),parser:{}},fN={Grammar:W(()=>xg(),"Grammar"),LanguageMetaData:W(()=>kg,"LanguageMetaData"),parser:{}},dN={Grammar:W(()=>Rg(),"Grammar"),LanguageMetaData:W(()=>Ig,"LanguageMetaData"),parser:{}},hN={Grammar:W(()=>Eg(),"Grammar"),LanguageMetaData:W(()=>Ng,"LanguageMetaData"),parser:{}},pN={Grammar:W(()=>Ag(),"Grammar"),LanguageMetaData:W(()=>Sg,"LanguageMetaData"),parser:{}},Cg=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,_g=/accTitle[\t ]*:([^\n\r]*)/,wg=/title([\t ][^\n\r]*|)/,Lg={ACC_DESCR:Cg,ACC_TITLE:_g,TITLE:wg},on,Og=(on=class extends gr{runConverter(e,t,n){let i=this.runCommonConverter(e,t,n);return i===void 0&&(i=this.runCustomConverter(e,t,n)),i===void 0?super.runConverter(e,t,n):i}runCommonConverter(e,t,n){let i=Lg[e.name];if(i===void 0)return;let s=i.exec(t);if(s!==null){if(s[1]!==void 0)return s[1].trim().replace(/[\t ]{2,}/gm," ");if(s[2]!==void 0)return s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
|
|
`)}}},W(on,"AbstractMermaidValueConverter"),on),ln,gN=(ln=class extends Og{runCustomConverter(e,t,n){}},W(ln,"CommonValueConverter"),ln),cn,$g=(cn=class extends mr{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,n){let i=super.buildKeywordTokens(e,t,n);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},W(cn,"AbstractMermaidTokenBuilder"),cn),un,TN=(un=class extends $g{},W(un,"CommonTokenBuilder"),un);export{ic as a,sc as b,Qs as c,lc as d,he as e,W as f,cN as g,uN as h,fN as i,dN as j,hN as k,pN as l,Og as m,gN as n,$g as o};
|