Files
mermaid-live-editor/_app/immutable/chunks/gitGraph-F2EDSAW4.DoDanyNy.js
T
2024-08-28 12:37:07 +00:00

128 lines
277 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var Ol=Object.defineProperty;var Pl=(n,e,t)=>e in n?Ol(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Je=(n,e,t)=>Pl(n,typeof e!="symbol"?e+"":e,t);import{_ as yn}from"./preload-helper.D6kgxu3v.js";import{b$ as $l,c0 as Ml,aT as to,bt as Dl,aZ as Fl,aU as Z,aC as Gl,aD as qi,bl as Ul,bx as no,c1 as ro,bz as Yi,bm as Bl,aF as pt,aG as D,aW as Xi,aX as Wl}from"./state.Bw4wwf0I.js";import{k as Pt,j as gi,e as Vt,S as jl,u as Vl,w as Kl,c as io,v as H,x as so,l as Hl,y as zl,z as ql,A as Yl,B as Xl,a as ao,d as x,i as ze,h as C,r as oe,f as Ae,C as q}from"./_baseUniq.P9brck0W.js";import{i as yi,m as S,d as Jl,f as xe,g as $t,h as Ti,l as Mt,e as Ql}from"./_basePickBy.BF4wbNuw.js";import{c as te}from"./clone.Crcj8XFp.js";var Zl=Object.prototype,eu=Zl.hasOwnProperty,ve=$l(function(n,e){if(Ml(e)||to(e)){Dl(e,Pt(e),n);return}for(var t in e)eu.call(e,t)&&Fl(n,t,e[t])});function oo(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function an(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function tu(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function nu(n,e,t,r){return gi(n,function(i,s,a){e(r,i,t(i),a)}),r}function ru(n,e){return function(t,r){var i=Z(t)?tu:nu,s=e?e():{};return i(t,n,Vt(r),s)}}var iu=200;function su(n,e,t,r){var i=-1,s=Vl,a=!0,o=n.length,c=[],l=e.length;if(!o)return c;e.length>=iu&&(s=Kl,a=!1,e=new jl(e));e:for(;++i<o;){var u=n[i],d=u;if(u=u!==0?u:0,a&&d===d){for(var f=l;f--;)if(e[f]===d)continue e;c.push(u)}else s(e,d,r)||c.push(u)}return c}var Qn=Gl(function(n,e){return qi(n)?su(n,io(e,1,qi,!0)):[]});function J(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:yi(e),oo(n,e<0?0:e,r)):[]}function tn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:yi(e),e=r-e,oo(n,0,e<0?0:e)):[]}function au(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function ou(n,e){var t=!0;return gi(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function Le(n,e,t){var r=Z(n)?au:ou;return r(n,Vt(e))}function Oe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return io(S(n,e))}var cu=Object.prototype,lu=cu.hasOwnProperty,uu=ru(function(n,e,t){lu.call(n,t)?n[t].push(e):Ul(n,t,[e])}),du="[object String]";function fe(n){return typeof n=="string"||!Z(n)&&no(n)&&ro(n)==du}var fu=Math.max;function ue(n,e,t,r){n=to(n)?n:H(n),t=t&&!r?yi(t):0;var i=n.length;return t<0&&(t=fu(i+t,0)),fe(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&so(n,e,t)>-1}function Ji(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return so(n,e,i)}var hu="[object RegExp]";function pu(n){return no(n)&&ro(n)==hu}var Qi=Yi&&Yi.isRegExp,qe=Qi?Bl(Qi):pu,mu="Expected a function";function gu(n){if(typeof n!="function")throw new TypeError(mu);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Pe(n,e){if(n==null)return{};var t=Hl(zl(n),function(r){return[r]});return e=Vt(e),Jl(n,t,function(r,i){return e(r,i[0])})}function Zn(n,e){var t=Z(n)?ql:Yl;return t(n,gu(Vt(e)))}function yu(n,e){var t;return gi(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function co(n,e,t){var r=Z(n)?Xl:yu;return r(n,Vt(e))}function Ei(n){return n&&n.length?ao(n):[]}function Tu(n,e){return n&&n.length?ao(n,Vt(e)):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function De(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function Eu(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Rn(n){return typeof n=="object"&&n!==null&&ae(n.container)&&De(n.reference)&&typeof n.message=="string"}class lo{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Dt(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function uo(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function fo(n){return Dt(n)&&typeof n.fullText=="string"}class ie{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const 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(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){const t=e[Symbol.iterator]();return new ie(()=>({first:this.startFn(),firstDone:!1}),r=>{let i;if(!r.firstDone){do if(i=this.nextFn(r.first),!i.done)return i;while(!i.done);r.firstDone=!0}do if(i=t.next(),!i.done)return i;while(!i.done);return Ne})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=vu(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new ie(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?Ne:{done:!1,value:e(i)}})}filter(e){return new ie(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return Ne})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new ie(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Cn(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Ne})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new ie(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Cn(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Ne})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new ie(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new ie(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Ne:this.nextFn(t.state)))}distinct(e){const t=new Set;return this.filter(r=>{const i=e?e(r):r;return t.has(i)?!1:(t.add(i),!0)})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function vu(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Cn(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Au=new ie(()=>{},()=>Ne),Ne=Object.freeze({done:!0,value:void 0});function Q(...n){if(n.length===1){const e=n[0];if(e instanceof ie)return e;if(Cn(e))return new ie(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new ie(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Ne)}return n.length>1?new ie(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const 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<n.length){const t=n[e.collIndex++];Cn(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return Ne}):Au}class vi extends ie{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const 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 Ne})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var br;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(br||(br={}));function Or(n){return new vi(n,e=>Dt(e)?e.content:[],{includeRoot:!0})}function Ru(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function Pr(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function _n(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var Ze;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside"})(Ze||(Ze={}));function ku(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<n.start.character)return Ze.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>e.end.character)return Ze.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?Ze.Inside:t?Ze.OverlapBack:Ze.OverlapFront}function Su(n,e){return ku(n,e)>Ze.After}const Iu=/^[\w\p{L}]$/u;function Nu(n,e){if(n){const t=xu(n,!0);if(t&&Zi(t,e))return t;if(fo(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(Zi(s,e))return s}}}}function Zi(n,e){return uo(n)&&e.includes(n.tokenType.name)}function xu(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class ho extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function er(n){throw new Error("Error! The input value was not handled.")}const Tr="AbstractRule",Er="AbstractType",es="Condition",Cu="TypeDefinition",ts="ValueLiteral",po="AbstractElement";function _u(n){return M.isInstance(n,po)}const wu="ArrayLiteral",Lu="ArrayType",mo="BooleanLiteral";function bu(n){return M.isInstance(n,mo)}const go="Conjunction";function Ou(n){return M.isInstance(n,go)}const yo="Disjunction";function Pu(n){return M.isInstance(n,yo)}const $u="Grammar",To="InferredType";function Eo(n){return M.isInstance(n,To)}const vo="Interface";function Ao(n){return M.isInstance(n,vo)}const Ro="Negation";function Mu(n){return M.isInstance(n,Ro)}const Du="NumberLiteral",Fu="Parameter",ko="ParameterReference";function Gu(n){return M.isInstance(n,ko)}const So="ParserRule";function Ce(n){return M.isInstance(n,So)}const Uu="ReferenceType",Bu="ReturnType";function Wu(n){return M.isInstance(n,Bu)}const Io="SimpleType";function ju(n){return M.isInstance(n,Io)}const Vu="StringLiteral",$r="TerminalRule";function mt(n){return M.isInstance(n,$r)}const No="Type";function xo(n){return M.isInstance(n,No)}const Ku="UnionType",Co="Action";function tr(n){return M.isInstance(n,Co)}const _o="Alternatives";function wo(n){return M.isInstance(n,_o)}const Lo="Assignment";function lt(n){return M.isInstance(n,Lo)}const bo="CharacterRange";function Hu(n){return M.isInstance(n,bo)}const Oo="CrossReference";function Ai(n){return M.isInstance(n,Oo)}const Po="EndOfFile";function zu(n){return M.isInstance(n,Po)}const $o="Group";function Ri(n){return M.isInstance(n,$o)}const Mo="Keyword";function ut(n){return M.isInstance(n,Mo)}const Do="NegatedToken";function qu(n){return M.isInstance(n,Do)}const Fo="RegexToken";function Yu(n){return M.isInstance(n,Fo)}const Go="RuleCall";function dt(n){return M.isInstance(n,Go)}const Uo="TerminalAlternatives";function Xu(n){return M.isInstance(n,Uo)}const Bo="TerminalGroup";function Ju(n){return M.isInstance(n,Bo)}const Wo="TerminalRuleCall";function Qu(n){return M.isInstance(n,Wo)}const jo="UnorderedGroup";function Vo(n){return M.isInstance(n,jo)}const Ko="UntilToken";function Zu(n){return M.isInstance(n,Ko)}const Ho="Wildcard";function ed(n){return M.isInstance(n,Ho)}class zo extends lo{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 Co:case _o:case Lo:case bo:case Oo:case Po:case $o:case Mo:case Do:case Fo:case Go:case Uo:case Bo:case Wo:case jo:case Ko:case Ho:return this.isSubtype(po,t);case wu:case Du:case Vu:return this.isSubtype(ts,t);case Lu:case Uu:case Io:case Ku:return this.isSubtype(Cu,t);case mo:return this.isSubtype(es,t)||this.isSubtype(ts,t);case go:case yo:case Ro:case ko:return this.isSubtype(es,t);case To:case vo:case No:return this.isSubtype(Er,t);case So:return this.isSubtype(Tr,t)||this.isSubtype(Er,t);case $r:return this.isSubtype(Tr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Er;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Tr;case"Grammar:usedGrammars":return $u;case"NamedArgument:parameter":case"ParameterReference:parameter":return Fu;case"TerminalRuleCall:rule":return $r;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:[]}}}}const M=new zo;function td(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ae(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ae(t)&&(t.$container=n,t.$containerProperty=e))}function nr(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Fe(n){const t=nd(n).$document;if(!t)throw new Error("AST node has no document.");return t}function nd(n){for(;n.$container;)n=n.$container;return n}function ki(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new ie(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(ae(s)){if(r.keyIndex++,ns(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(ae(o)&&ns(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return Ne})}function on(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new vi(n,t=>ki(t,e))}function At(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new vi(n,t=>ki(t,e),{includeRoot:!0})}function ns(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Su(r,e):!1}function qo(n){return new ie(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(De(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(De(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Ne})}function rd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Yo(i.defaultValue))}function Yo(n){return Array.isArray(n)?[...n.map(Yo)]:n}function w(n){return n.charCodeAt(0)}function vr(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function Yt(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Tt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function id(){throw Error("Internal Error - Should never get here!")}function rs(n){return n.type==="Character"}const wn=[];for(let n=w("0");n<=w("9");n++)wn.push(n);const Ln=[w("_")].concat(wn);for(let n=w("a");n<=w("z");n++)Ln.push(n);for(let n=w("A");n<=w("Z");n++)Ln.push(n);const is=[w(" "),w("\f"),w(`
`),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(""),w(" "),w(""),w(""),w(""),w(""),w(""),w(""),w(""),w(""),w(""),w(""),w("\u2028"),w("\u2029"),w(""),w(""),w(" "),w("\uFEFF")],sd=/[0-9a-fA-F]/,Tn=/[0-9]/,ad=/[1-9]/;class Xo{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("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Yt(r,"global");break;case"i":Yt(r,"ignoreCase");break;case"m":Yt(r,"multiLine");break;case"u":Yt(r,"unicode");break;case"y":Yt(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const 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(){const 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(){const 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}Tt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return id()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const 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;Tt(t);break}if(!(e===!0&&t===void 0)&&Tt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const 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}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Tt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
`),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=wn;break;case"D":e=wn,t=!0;break;case"s":e=is;break;case"S":e=is,t=!0;break;case"w":e=Ln;break;case"W":e=Ln,t=!0;break}if(Tt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
`);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Tt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:w(e)}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,rs(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,rs(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else vr(r.value,e),e.push(w("-")),vr(i.value,e)}else vr(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:w("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}const t=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(ad.test(e)===!1)throw Error("Expecting a positive integer");for(;Tn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(Tn.test(e)===!1)throw Error("Expecting an integer");for(;Tn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case`
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:w(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return Tn.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(){const e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let i=0;i<e;i++){const s=this.popChar();if(sd.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(){const 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}}}class rr{visitChildren(e){for(const t in e){const r=e[t];e.hasOwnProperty(t)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.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){}}const od=/\r?\n/gm,cd=new Xo;class ld extends rr{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){const t=String.fromCharCode(e.value);if(!this.multiline&&t===`
`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=ir(t);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!`
`.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const 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)}}const Ar=new ld;function ud(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),Ar.reset(n),Ar.visit(cd.pattern(n)),Ar.multiline}catch{return!1}}function ss(n){return(typeof n=="string"?new RegExp(n):n).test(" ")}function ir(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function dd(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ir(e)).join("")}function fd(n,e){const t=hd(n),r=e.match(t);return!!r&&r[0].length>0}function hd(n){typeof n=="string"&&(n=new RegExp(n));const e=n,t=n.source;let r=0;function i(){let s="",a;function o(l){s+=t.substr(r,l),r+=l}function c(l){s+="(?:"+t.substr(r,l)+"|$)",r+=l}for(;r<t.length;)switch(t[r]){case"\\":switch(t[r+1]){case"c":c(3);break;case"x":c(4);break;case"u":e.unicode?t[r+2]==="{"?c(t.indexOf("}",r)-r+1):c(6):c(2);break;case"p":case"P":e.unicode?c(t.indexOf("}",r)-r+1):c(2);break;case"k":c(t.indexOf(">",r)-r+1);break;default:c(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(t)||[],c(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(t),a?o(a[0].length):c(1);break;case"(":if(t[r+1]==="?")switch(t[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":a=r,r+=3,i(),s+=t.substr(a,r-a);break;case"<":switch(t[r+3]){case"=":case"!":a=r,r+=4,i(),s+=t.substr(a,r-a);break;default:o(t.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++r,s;default:c(1);break}return s}return new RegExp(i(),n.flags)}function pd(n){return n.rules.find(e=>Ce(e)&&e.entry)}function md(n){return n.rules.filter(e=>mt(e)&&e.hidden)}function Jo(n,e){const t=new Set,r=pd(n);if(!r)return new Set(n.rules);const i=[r].concat(md(n));for(const a of i)Qo(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||mt(a)&&a.hidden)&&s.add(a);return s}function Qo(n,e,t){e.add(n.name),on(n).forEach(r=>{if(dt(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&Qo(i,e,t)}})}function gd(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=ec(n.type.ref);return e==null?void 0:e.terminal}}function yd(n){return n.hidden&&!Ni(n).test(" ")}function Td(n,e){return!n||!e?[]:Si(n,e,n.astNode,!0)}function Zo(n,e,t){if(!n||!e)return;const r=Si(n,e,n.astNode,!0);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function Si(n,e,t,r){if(!r){const i=nr(n.grammarSource,lt);if(i&&i.feature===e)return[n]}return Dt(n)&&n.astNode===t?n.content.flatMap(i=>Si(i,e,t,!1)):[]}function Ed(n,e,t){if(!n)return;const r=vd(n,e,n==null?void 0:n.astNode);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function vd(n,e,t){if(n.astNode!==t)return[];if(ut(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=Or(n).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===t?ut(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function Ad(n){var e;const t=n.astNode;for(;t===((e=n.container)===null||e===void 0?void 0:e.astNode);){const r=nr(n.grammarSource,lt);if(r)return r;n=n.container}}function ec(n){let e=n;return Eo(e)&&(tr(e.$container)?e=e.$container.$container:Ce(e.$container)?e=e.$container:er(e.$container)),tc(n,e,new Map)}function tc(n,e,t){var r;function i(s,a){let o;return nr(s,lt)||(o=tc(a,a,t)),t.set(n,o),o}if(t.has(n))return t.get(n);t.set(n,void 0);for(const s of on(e)){if(lt(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(dt(s)&&Ce(s.rule.ref))return i(s,s.rule.ref);if(ju(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function Ii(n){return nc(n,new Set)}function nc(n,e){if(e.has(n))return!0;e.add(n);for(const t of on(n))if(dt(t)){if(!t.rule.ref||Ce(t.rule.ref)&&!nc(t.rule.ref,e))return!1}else{if(lt(t))return!1;if(tr(t))return!1}return!!n.definition}function rc(n){if(n.inferredType)return n.inferredType.name;if(n.dataType)return n.dataType;if(n.returnType){const e=n.returnType.ref;if(e){if(Ce(e))return e.name;if(Ao(e)||xo(e))return e.name}}}function sr(n){var e;if(Ce(n))return Ii(n)?n.name:(e=rc(n))!==null&&e!==void 0?e:n.name;if(Ao(n)||xo(n)||Wu(n))return n.name;if(tr(n)){const t=Rd(n);if(t)return t}else if(Eo(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Rd(n){var e;if(n.inferredType)return n.inferredType.name;if(!((e=n.type)===null||e===void 0)&&e.ref)return sr(n.type.ref)}function kd(n){var e,t,r;return mt(n)?(t=(e=n.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":Ii(n)?n.name:(r=rc(n))!==null&&r!==void 0?r:n.name}function Ni(n){const e={s:!1,i:!1,u:!1},t=Kt(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const xi=/[\s\S]/.source;function Kt(n,e){if(Xu(n))return Sd(n);if(Ju(n))return Id(n);if(Hu(n))return Cd(n);if(Qu(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return He(Kt(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(qu(n))return xd(n);if(Zu(n))return Nd(n);if(Yu(n)){const t=n.regex.lastIndexOf("/"),r=n.regex.substring(1,t),i=n.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),He(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(ed(n))return He(xi,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n==null?void 0:n.$type}`)}}}function Sd(n){return He(n.elements.map(e=>Kt(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function Id(n){return He(n.elements.map(e=>Kt(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function Nd(n){return He(`${xi}*?${Kt(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function xd(n){return He(`(?!${Kt(n.terminal)})${xi}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function Cd(n){return n.right?He(`[${Rr(n.left)}-${Rr(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):He(Rr(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function Rr(n){return ir(n.value)}function He(n,e){var t;return(e.wrap!==!1||e.lookahead)&&(n=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${n})`),e.cardinality?`${n}${e.cardinality}`:n}function _d(n){const e=[],t=n.Grammar;for(const r of t.rules)mt(r)&&yd(r)&&ud(Ni(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:Iu}}function Mr(n){console&&console.error&&console.error(`Error: ${n}`)}function ic(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function sc(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function ac(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function wd(n){return Ld(n)?n.LABEL:n.name}function Ld(n){return fe(n.LABEL)&&n.LABEL!==""}class Ue{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),x(this.definition,t=>{t.accept(e)})}}class ce extends Ue{constructor(e){super([]),this.idx=1,ve(this,Pe(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Ht extends Ue{constructor(e){super(e.definition),this.orgText="",ve(this,Pe(e,t=>t!==void 0))}}class he extends Ue{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ve(this,Pe(e,t=>t!==void 0))}}class ee extends Ue{constructor(e){super(e.definition),this.idx=1,ve(this,Pe(e,t=>t!==void 0))}}class Re extends Ue{constructor(e){super(e.definition),this.idx=1,ve(this,Pe(e,t=>t!==void 0))}}class ke extends Ue{constructor(e){super(e.definition),this.idx=1,ve(this,Pe(e,t=>t!==void 0))}}class j extends Ue{constructor(e){super(e.definition),this.idx=1,ve(this,Pe(e,t=>t!==void 0))}}class pe extends Ue{constructor(e){super(e.definition),this.idx=1,ve(this,Pe(e,t=>t!==void 0))}}class me extends Ue{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,ve(this,Pe(e,t=>t!==void 0))}}class G{constructor(e){this.idx=1,ve(this,Pe(e,t=>t!==void 0))}accept(e){e.visit(this)}}function bd(n){return S(n,kn)}function kn(n){function e(t){return S(t,kn)}if(n instanceof ce){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return fe(n.label)&&(t.label=n.label),t}else{if(n instanceof he)return{type:"Alternative",definition:e(n.definition)};if(n instanceof ee)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof Re)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof ke)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:kn(new G({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof pe)return{type:"RepetitionWithSeparator",idx:n.idx,separator:kn(new G({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof j)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof me)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof G){const t={type:"Terminal",name:n.terminalType.name,label:wd(n.terminalType),idx:n.idx};fe(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=qe(r)?r.source:r),t}else{if(n instanceof Ht)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}class zt{visit(e){const t=e;switch(t.constructor){case ce:return this.visitNonTerminal(t);case he:return this.visitAlternative(t);case ee:return this.visitOption(t);case Re:return this.visitRepetitionMandatory(t);case ke:return this.visitRepetitionMandatoryWithSeparator(t);case pe:return this.visitRepetitionWithSeparator(t);case j:return this.visitRepetition(t);case me:return this.visitAlternation(t);case G:return this.visitTerminal(t);case Ht: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 Od(n){return n instanceof he||n instanceof ee||n instanceof j||n instanceof Re||n instanceof ke||n instanceof pe||n instanceof G||n instanceof Ht}function bn(n,e=[]){return n instanceof ee||n instanceof j||n instanceof pe?!0:n instanceof me?co(n.definition,r=>bn(r,e)):n instanceof ce&&ue(e,n)?!1:n instanceof Ue?(n instanceof ce&&e.push(n),Le(n.definition,r=>bn(r,e))):!1}function Pd(n){return n instanceof me}function Me(n){if(n instanceof ce)return"SUBRULE";if(n instanceof ee)return"OPTION";if(n instanceof me)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ke)return"AT_LEAST_ONE_SEP";if(n instanceof pe)return"MANY_SEP";if(n instanceof j)return"MANY";if(n instanceof G)return"CONSUME";throw Error("non exhaustive match")}class ar{walk(e,t=[]){x(e.definition,(r,i)=>{const s=J(e.definition,i+1);if(r instanceof ce)this.walkProdRef(r,s,t);else if(r instanceof G)this.walkTerminal(r,s,t);else if(r instanceof he)this.walkFlat(r,s,t);else if(r instanceof ee)this.walkOption(r,s,t);else if(r instanceof Re)this.walkAtLeastOne(r,s,t);else if(r instanceof ke)this.walkAtLeastOneSep(r,s,t);else if(r instanceof pe)this.walkManySep(r,s,t);else if(r instanceof j)this.walkMany(r,s,t);else if(r instanceof me)this.walkOr(r,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){const i=t.concat(r);this.walk(e,i)}walkOption(e,t,r){const i=t.concat(r);this.walk(e,i)}walkAtLeastOne(e,t,r){const i=[new ee({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=as(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new ee({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=as(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);x(e.definition,s=>{const a=new he({definition:[s]});this.walk(a,i)})}}function as(n,e,t){return[new ee({definition:[new G({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function cn(n){if(n instanceof ce)return cn(n.referencedRule);if(n instanceof G)return Dd(n);if(Od(n))return $d(n);if(Pd(n))return Md(n);throw Error("non exhaustive match")}function $d(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=bn(s),e=e.concat(cn(s)),r=r+1,i=t.length>r;return Ei(e)}function Md(n){const e=S(n.definition,t=>cn(t));return Ei(xe(e))}function Dd(n){return[n.terminalType]}const oc="_~IN~_";class Fd extends ar{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){const i=Ud(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new he({definition:s}),o=cn(a);this.follows[i]=o}}function Gd(n){const e={};return x(n,t=>{const r=new Fd(t).startWalking();ve(e,r)}),e}function Ud(n,e){return n.name+e+oc}let Sn={};const Bd=new Xo;function or(n){const e=n.toString();if(Sn.hasOwnProperty(e))return Sn[e];{const t=Bd.pattern(e);return Sn[e]=t,t}}function Wd(){Sn={}}const cc="Complement Sets are not supported for first char optimization",On=`Unable to use "first char" lexer optimizations:
`;function jd(n,e=!1){try{const t=or(n);return Dr(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===cc)e&&ic(`${On} Unable to optimize: < ${n.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 r="";e&&(r=`
This will disable the lexer's first char optimizations.
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Mr(`${On}
Failed parsing: < ${n.toString()} >
Using the @chevrotain/regexp-to-ast library
Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function Dr(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)Dr(n.value[i],e,t);break;case"Alternative":const r=n.value;for(let i=0;i<r.length;i++){const s=r[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":En(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(cc);x(a.value,c=>{if(typeof c=="number")En(c,e,t);else{const l=c;if(t===!0)for(let u=l.from;u<=l.to;u++)En(u,e,t);else{for(let u=l.from;u<=l.to&&u<Zt;u++)En(u,e,t);if(l.to>=Zt){const u=l.from>=Zt?l.from:Zt,d=l.to,f=et(u),h=et(d);for(let m=f;m<=h;m++)e[m]=m}}}});break;case"Group":Dr(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&Fr(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return H(e)}function En(n,e,t){const r=et(n);e[r]=r,t===!0&&Vd(n,e)}function Vd(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=et(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=et(i.charCodeAt(0));e[s]=s}}}function os(n,e){return $t(n.value,t=>{if(typeof t=="number")return ue(e,t);{const r=t;return $t(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function Fr(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?Z(n.value)?Le(n.value,Fr):Fr(n.value):!1}class Kd extends rr{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){ue(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?os(e,this.targetCharCodes)===void 0&&(this.found=!0):os(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function Ci(n,e){if(e instanceof RegExp){const t=or(e),r=new Kd(n);return r.visit(t),r.found}else return $t(e,t=>ue(n,t.charCodeAt(0)))!==void 0}const ft="PATTERN",Qt="defaultMode",vn="modes";let lc=typeof new RegExp("(?:)").sticky=="boolean";function Hd(n,e){e=Ti(e,{useSticky:lc,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
`],tracer:(A,E)=>E()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{gf()});let r;t("Reject Lexer.NA",()=>{r=Zn(n,A=>A[ft]===de.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=S(r,A=>{const E=A[ft];if(qe(E)){const N=E.source;return N.length===1&&N!=="^"&&N!=="$"&&N!=="."&&!E.ignoreCase?N:N.length===2&&N[0]==="\\"&&!ue(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],N[1])?N[1]:e.useSticky?ls(E):cs(E)}else{if(pt(E))return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{const N=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),F=new RegExp(N);return e.useSticky?ls(F):cs(F)}}else throw Error("non exhaustive match")}})});let a,o,c,l,u;t("misc mapping",()=>{a=S(r,A=>A.tokenTypeIdx),o=S(r,A=>{const E=A.GROUP;if(E!==de.SKIPPED){if(fe(E))return E;if(ze(E))return!1;throw Error("non exhaustive match")}}),c=S(r,A=>{const E=A.LONGER_ALT;if(E)return Z(E)?S(E,F=>Ji(r,F)):[Ji(r,E)]}),l=S(r,A=>A.PUSH_MODE),u=S(r,A=>C(A,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const A=fc(e.lineTerminatorCharacters);d=S(r,E=>!1),e.positionTracking!=="onlyOffset"&&(d=S(r,E=>C(E,"LINE_BREAKS")?!!E.LINE_BREAKS:dc(E,A)===!1&&Ci(A,E.PATTERN)))});let f,h,m,g;t("Misc Mapping #2",()=>{f=S(r,uc),h=S(s,hf),m=oe(r,(A,E)=>{const N=E.GROUP;return fe(N)&&N!==de.SKIPPED&&(A[N]=[]),A},{}),g=S(s,(A,E)=>({pattern:s[E],longerAlt:c[E],canLineTerminator:d[E],isCustom:f[E],short:h[E],group:o[E],push:l[E],pop:u[E],tokenTypeIdx:a[E],tokenType:r[E]}))});let v=!0,y=[];return e.safeMode||t("First Char Optimization",()=>{y=oe(r,(A,E,N)=>{if(typeof E.PATTERN=="string"){const F=E.PATTERN.charCodeAt(0),ne=et(F);kr(A,ne,g[N])}else if(Z(E.START_CHARS_HINT)){let F;x(E.START_CHARS_HINT,ne=>{const _e=typeof ne=="string"?ne.charCodeAt(0):ne,ge=et(_e);F!==ge&&(F=ge,kr(A,ge,g[N]))})}else if(qe(E.PATTERN))if(E.PATTERN.unicode)v=!1,e.ensureOptimizations&&Mr(`${On} Unable to analyze < ${E.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{const F=jd(E.PATTERN,e.ensureOptimizations);D(F)&&(v=!1),x(F,ne=>{kr(A,ne,g[N])})}else e.ensureOptimizations&&Mr(`${On} TokenType: <${E.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 A},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:y,hasCustom:i,canBeOptimized:v}}function zd(n,e){let t=[];const r=Yd(n);t=t.concat(r.errors);const i=Xd(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(qd(s)),t=t.concat(sf(s)),t=t.concat(af(s,e)),t=t.concat(of(s)),t}function qd(n){let e=[];const t=Ae(n,r=>qe(r[ft]));return e=e.concat(Qd(t)),e=e.concat(tf(t)),e=e.concat(nf(t)),e=e.concat(rf(t)),e=e.concat(Zd(t)),e}function Yd(n){const e=Ae(n,i=>!C(i,ft)),t=S(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:V.MISSING_PATTERN,tokenTypes:[i]})),r=Qn(n,e);return{errors:t,valid:r}}function Xd(n){const e=Ae(n,i=>{const s=i[ft];return!qe(s)&&!pt(s)&&!C(s,"exec")&&!fe(s)}),t=S(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:V.INVALID_PATTERN,tokenTypes:[i]})),r=Qn(n,e);return{errors:t,valid:r}}const Jd=/[^\\][$]/;function Qd(n){class e extends rr{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=Ae(n,i=>{const s=i.PATTERN;try{const a=or(s),o=new e;return o.visit(a),o.found}catch{return Jd.test(s.source)}});return S(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:V.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Zd(n){const e=Ae(n,r=>r.PATTERN.test(""));return S(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:V.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const ef=/[^\\[][\^]|^\^/;function tf(n){class e extends rr{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=Ae(n,i=>{const s=i.PATTERN;try{const a=or(s),o=new e;return o.visit(a),o.found}catch{return ef.test(s.source)}});return S(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:V.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function nf(n){const e=Ae(n,r=>{const i=r[ft];return i instanceof RegExp&&(i.multiline||i.global)});return S(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:V.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function rf(n){const e=[];let t=S(n,s=>oe(n,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!ue(e,o)&&o.PATTERN!==de.NA&&(e.push(o),a.push(o)),a),[]));t=an(t);const r=Ae(t,s=>s.length>1);return S(r,s=>{const a=S(s,c=>c.name);return{message:`The same RegExp pattern ->${Oe(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:V.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function sf(n){const e=Ae(n,r=>{if(!C(r,"GROUP"))return!1;const i=r.GROUP;return i!==de.SKIPPED&&i!==de.NA&&!fe(i)});return S(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:V.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function af(n,e){const t=Ae(n,i=>i.PUSH_MODE!==void 0&&!ue(e,i.PUSH_MODE));return S(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:V.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function of(n){const e=[],t=oe(n,(r,i,s)=>{const a=i.PATTERN;return a===de.NA||(fe(a)?r.push({str:a,idx:s,tokenType:i}):qe(a)&&lf(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return x(n,(r,i)=>{x(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&cf(s,r.PATTERN)){const c=`Token: ->${o.name}<- can never be matched.
Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:V.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function cf(n,e){if(qe(e)){const t=e.exec(n);return t!==null&&t.index===0}else{if(pt(e))return e(n,0,[],{});if(C(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function lf(n){return $t([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>n.source.indexOf(t)!==-1)===void 0}function cs(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function ls(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function uf(n,e,t){const r=[];return C(n,Qt)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Qt+`> property in its definition
`,type:V.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),C(n,vn)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+vn+`> property in its definition
`,type:V.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),C(n,vn)&&C(n,Qt)&&!C(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Qt}: <${n.defaultMode}>which does not exist
`,type:V.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),C(n,vn)&&x(n.modes,(i,s)=>{x(i,(a,o)=>{if(ze(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}>
`,type:V.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(C(a,"LONGER_ALT")){const c=Z(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];x(c,l=>{!ze(l)&&!ue(i,l)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${l.name}> on token <${a.name}> outside of mode <${s}>
`,type:V.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function df(n,e,t){const r=[];let i=!1;const s=an(xe(H(n.modes))),a=Zn(s,c=>c[ft]===de.NA),o=fc(t);return e&&x(a,c=>{const l=dc(c,o);if(l!==!1){const d={message:mf(c,l),type:l.issue,tokenType:c};r.push(d)}else C(c,"LINE_BREAKS")?c.LINE_BREAKS===!0&&(i=!0):Ci(o,c.PATTERN)&&(i=!0)}),e&&!i&&r.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:V.NO_LINE_BREAKS_FLAGS}),r}function ff(n){const e={},t=Pt(n);return x(t,r=>{const i=n[r];if(Z(i))e[r]=[];else throw Error("non exhaustive match")}),e}function uc(n){const e=n.PATTERN;if(qe(e))return!1;if(pt(e))return!0;if(C(e,"exec"))return!0;if(fe(e))return!1;throw Error("non exhaustive match")}function hf(n){return fe(n)&&n.length===1?n.charCodeAt(0):!1}const pf={test:function(n){const e=n.length;for(let t=this.lastIndex;t<e;t++){const r=n.charCodeAt(t);if(r===10)return this.lastIndex=t+1,!0;if(r===13)return n.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function dc(n,e){if(C(n,"LINE_BREAKS"))return!1;if(qe(n.PATTERN)){try{Ci(e,n.PATTERN)}catch(t){return{issue:V.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(fe(n.PATTERN))return!1;if(uc(n))return{issue:V.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function mf(n,e){if(e.issue===V.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
The problem is in the <${n.name}> Token Type
Root cause: ${e.errMsg}.
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===V.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
The problem is in the <${n.name}> Token Type
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function fc(n){return S(n,t=>fe(t)?t.charCodeAt(0):t)}function kr(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const Zt=256;let In=[];function et(n){return n<Zt?n:In[n]}function gf(){if(D(In)){In=new Array(65536);for(let n=0;n<65536;n++)In[n]=n>255?255+~~(n/255):n}}function ln(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function Pn(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let us=1;const hc={};function un(n){const e=yf(n);Tf(e),vf(e),Ef(e),x(e,t=>{t.isParent=t.categoryMatches.length>0})}function yf(n){let e=te(n),t=n,r=!0;for(;r;){t=an(xe(S(t,s=>s.CATEGORIES)));const i=Qn(t,e);e=e.concat(i),D(i)?r=!1:t=i}return e}function Tf(n){x(n,e=>{mc(e)||(hc[us]=e,e.tokenTypeIdx=us++),ds(e)&&!Z(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),ds(e)||(e.CATEGORIES=[]),Af(e)||(e.categoryMatches=[]),Rf(e)||(e.categoryMatchesMap={})})}function Ef(n){x(n,e=>{e.categoryMatches=[],x(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(hc[r].tokenTypeIdx)})})}function vf(n){x(n,e=>{pc([],e)})}function pc(n,e){x(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),x(e.CATEGORIES,t=>{const r=n.concat(e);ue(r,t)||pc(r,t)})}function mc(n){return C(n,"tokenTypeIdx")}function ds(n){return C(n,"CATEGORIES")}function Af(n){return C(n,"categoryMatches")}function Rf(n){return C(n,"categoryMatchesMap")}function kf(n){return C(n,"tokenTypeIdx")}const Sf={buildUnableToPopLexerModeMessage(n){return`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(n,e,t,r,i){return`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var V;(function(n){n[n.MISSING_PATTERN=0]="MISSING_PATTERN",n[n.INVALID_PATTERN=1]="INVALID_PATTERN",n[n.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",n[n.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",n[n.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",n[n.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",n[n.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",n[n.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",n[n.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",n[n.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",n[n.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",n[n.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",n[n.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",n[n.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",n[n.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",n[n.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",n[n.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",n[n.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(V||(V={}));const en={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Sf,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(en);class de{constructor(e,t=en){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++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${a}--> <${i}>`);const{time:o,value:c}=sc(s),l=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&l(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,c}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=ve({},en,t);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,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===en.lineTerminatorsPattern)this.config.lineTerminatorsPattern=pf;else if(this.config.lineTerminatorCharacters===en.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),Z(e)?i={modes:{defaultMode:te(e)},defaultMode:Qt}:(s=!1,i=te(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(uf(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(df(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},x(i.modes,(o,c)=>{i.modes[c]=Zn(o,l=>ze(l))});const a=Pt(i.modes);if(x(i.modes,(o,c)=>{this.TRACE_INIT(`Mode: <${c}> processing`,()=>{if(this.modes.push(c),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(zd(o,a))}),D(this.lexerDefinitionErrors)){un(o);let l;this.TRACE_INIT("analyzeTokenTypes",()=>{l=Hd(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[c]=l.patternIdxToConfig,this.charCodeToPatternIdxToConfig[c]=l.charCodeToPatternIdxToConfig,this.emptyGroups=ve({},this.emptyGroups,l.emptyGroups),this.hasCustom=l.hasCustom||this.hasCustom,this.canModeBeOptimized[c]=l.canBeOptimized}})}),this.defaultMode=i.defaultMode,!D(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const c=S(this.lexerDefinitionErrors,l=>l.message).join(`-----------------------
`);throw new Error(`Errors detected in definition of Lexer:
`+c)}x(this.lexerDefinitionWarning,o=>{ic(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(lc?(this.chopInput=Xi,this.match=this.matchWithTest):(this.updateLastIndex=q,this.match=this.matchWithExec),s&&(this.handleModes=q),this.trackStartLines===!1&&(this.computeNewColumn=Xi),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=q),/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",()=>{const o=oe(this.canModeBeOptimized,(c,l,u)=>(l===!1&&c.push(u),c),[]);if(t.ensureOptimizations&&!D(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",()=>{Wd()}),this.TRACE_INIT("toFastProperties",()=>{ac(this)})})}tokenize(e,t=this.defaultMode){if(!D(this.lexerDefinitionErrors)){const i=S(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 r,i,s,a,o,c,l,u,d,f,h,m,g,v,y;const A=e,E=A.length;let N=0,F=0;const ne=this.hasCustom?0:Math.floor(e.length/10),_e=new Array(ne),ge=[];let $e=this.trackStartLines?1:void 0,Se=this.trackStartLines?1:void 0;const k=ff(this.emptyGroups),T=this.trackStartLines,R=this.config.lineTerminatorsPattern;let I=0,O=[],b=[];const L=[],ye=[];Object.freeze(ye);let z;function W(){return O}function at(re){const Ie=et(re),yt=b[Ie];return yt===void 0?ye:yt}const bl=re=>{if(L.length===1&&re.tokenType.PUSH_MODE===void 0){const Ie=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(re);ge.push({offset:re.startOffset,line:re.startLine,column:re.startColumn,length:re.image.length,message:Ie})}else{L.pop();const Ie=Mt(L);O=this.patternIdxToConfig[Ie],b=this.charCodeToPatternIdxToConfig[Ie],I=O.length;const yt=this.canModeBeOptimized[Ie]&&this.config.safeMode===!1;b&&yt?z=at:z=W}};function Ki(re){L.push(re),b=this.charCodeToPatternIdxToConfig[re],O=this.patternIdxToConfig[re],I=O.length,I=O.length;const Ie=this.canModeBeOptimized[re]&&this.config.safeMode===!1;b&&Ie?z=at:z=W}Ki.call(this,t);let we;const Hi=this.config.recoveryEnabled;for(;N<E;){c=null;const re=A.charCodeAt(N),Ie=z(re),yt=Ie.length;for(r=0;r<yt;r++){we=Ie[r];const Te=we.pattern;l=null;const We=we.short;if(We!==!1?re===We&&(c=Te):we.isCustom===!0?(y=Te.exec(A,N,_e,k),y!==null?(c=y[0],y.payload!==void 0&&(l=y.payload)):c=null):(this.updateLastIndex(Te,N),c=this.match(Te,e,N)),c!==null){if(o=we.longerAlt,o!==void 0){const Xe=o.length;for(s=0;s<Xe;s++){const je=O[o[s]],ot=je.pattern;if(u=null,je.isCustom===!0?(y=ot.exec(A,N,_e,k),y!==null?(a=y[0],y.payload!==void 0&&(u=y.payload)):a=null):(this.updateLastIndex(ot,N),a=this.match(ot,e,N)),a&&a.length>c.length){c=a,l=u,we=je;break}}}break}}if(c!==null){if(d=c.length,f=we.group,f!==void 0&&(h=we.tokenTypeIdx,m=this.createTokenInstance(c,N,h,we.tokenType,$e,Se,d),this.handlePayload(m,l),f===!1?F=this.addToken(_e,F,m):k[f].push(m)),e=this.chopInput(e,d),N=N+d,Se=this.computeNewColumn(Se,d),T===!0&&we.canLineTerminator===!0){let Te=0,We,Xe;R.lastIndex=0;do We=R.test(c),We===!0&&(Xe=R.lastIndex-1,Te++);while(We===!0);Te!==0&&($e=$e+Te,Se=d-Xe,this.updateTokenEndLineColumnLocation(m,f,Xe,Te,$e,Se,d))}this.handleModes(we,bl,Ki,m)}else{const Te=N,We=$e,Xe=Se;let je=Hi===!1;for(;je===!1&&N<E;)for(e=this.chopInput(e,1),N++,i=0;i<I;i++){const ot=O[i],yr=ot.pattern,zi=ot.short;if(zi!==!1?A.charCodeAt(N)===zi&&(je=!0):ot.isCustom===!0?je=yr.exec(A,N,_e,k)!==null:(this.updateLastIndex(yr,N),je=yr.exec(e)!==null),je===!0)break}if(g=N-Te,Se=this.computeNewColumn(Se,g),v=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(A,Te,g,We,Xe),ge.push({offset:Te,line:We,column:Xe,length:g,message:v}),Hi===!1)break}}return this.hasCustom||(_e.length=F),{tokens:_e,groups:k,errors:ge}}handleModes(e,t,r,i){if(e.pop===!0){const s=e.push;t(i),s!==void 0&&r.call(this,s)}else e.push!==void 0&&r.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,r,i,s,a,o){let c,l;t!==void 0&&(c=r===o-1,l=c?-1:0,i===1&&c===!0||(e.endLine=s+l,e.endColumn=a-1+-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,i){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(e,t,r,i,s,a){return{image:e,startOffset:t,startLine:s,startColumn:a,tokenTypeIdx:r,tokenType:i}}createFullToken(e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:t+o-1,startLine:s,endLine:s,startColumn:a,endColumn:a+o-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,t++,t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){t!==null&&(e.payload=t)}matchWithTest(e,t,r){return e.test(t)===!0?t.substring(r,e.lastIndex):null}matchWithExec(e,t){const r=e.exec(t);return r!==null?r[0]:null}}de.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.";de.NA=/NOT_APPLICABLE/;function Rt(n){return gc(n)?n.LABEL:n.name}function gc(n){return fe(n.LABEL)&&n.LABEL!==""}const If="parent",fs="categories",hs="label",ps="group",ms="push_mode",gs="pop_mode",ys="longer_alt",Ts="line_breaks",Es="start_chars_hint";function yc(n){return Nf(n)}function Nf(n){const e=n.pattern,t={};if(t.name=n.name,ze(e)||(t.PATTERN=e),C(n,If))throw`The parent property is no longer supported.
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return C(n,fs)&&(t.CATEGORIES=n[fs]),un([t]),C(n,hs)&&(t.LABEL=n[hs]),C(n,ps)&&(t.GROUP=n[ps]),C(n,gs)&&(t.POP_MODE=n[gs]),C(n,ms)&&(t.PUSH_MODE=n[ms]),C(n,ys)&&(t.LONGER_ALT=n[ys]),C(n,Ts)&&(t.LINE_BREAKS=n[Ts]),C(n,Es)&&(t.START_CHARS_HINT=n[Es]),t}const tt=yc({name:"EOF",pattern:de.NA});un([tt]);function _i(n,e,t,r,i,s,a,o){return{image:e,startOffset:t,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:n.tokenTypeIdx,tokenType:n}}function Tc(n,e){return ln(n,e)}const Et={buildMismatchTokenMessage({expected:n,actual:e,previous:t,ruleName:r}){return`Expecting ${gc(n)?`--> ${Rt(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:n,ruleName:e}){return"Redundant input, expecting EOF but found: "+n.image},buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=`
but found: '`+Oe(e).image+"'";if(r)return s+r+o;{const c=oe(n,(f,h)=>f.concat(h),[]),l=S(c,f=>`[${S(f,h=>Rt(h)).join(", ")}]`),d=`one of these possible Token sequences:
${S(l,(f,h)=>` ${h+1}. ${f}`).join(`
`)}`;return s+d+o}},buildEarlyExitMessage({expectedIterationPaths:n,actual:e,customUserDescription:t,ruleName:r}){const i="Expecting: ",a=`
but found: '`+Oe(e).image+"'";if(t)return i+t+a;{const c=`expecting at least one iteration which starts with one of these possible Token sequences::
<${S(n,l=>`[${S(l,u=>Rt(u)).join(",")}]`).join(" ,")}>`;return i+c+a}}};Object.freeze(Et);const xf={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
inside top level rule: ->`+n.name+"<-"}},ct={buildDuplicateFoundError(n,e){function t(u){return u instanceof G?u.terminalType.name:u instanceof ce?u.nonTerminalName:""}const r=n.name,i=Oe(e),s=i.idx,a=Me(i),o=t(i),c=s>0;let l=`->${a}${c?s:""}<- ${o?`with argument: ->${o}<-`:""}
appears more than once (${e.length} times) in the top level rule: ->${r}<-.
For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
`;return l=l.replace(/[ \t]+/g," "),l=l.replace(/\s\s+/g,`
`),l},buildNamespaceConflictError(n){return`Namespace conflict found in grammar.
The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${n.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(n){const e=S(n.prefixPath,i=>Rt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;return`Ambiguous alternatives: <${n.ambiguityIndices.join(" ,")}> due to common lookahead prefix
in <OR${t}> inside <${n.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(n){const e=S(n.prefixPath,i=>Rt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(" ,")}> in <OR${t}> inside <${n.topLevelRule.name}> Rule,
<${e}> may appears as a prefix path in all these alternatives.
`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
For Further details.`,r},buildEmptyRepetitionError(n){let e=Me(n.repetition);return n.repetition.idx!==0&&(e+=n.repetition.idx),`The repetition <${e}> within Rule <${n.topLevelRule.name}> can never consume any tokens.
This could lead to an infinite loop.`},buildTokenNameError(n){return"deprecated"},buildEmptyAlternationError(n){return`Ambiguous empty alternative: <${n.emptyChoiceIdx+1}> in <OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(n){return`An Alternation cannot have more than 256 alternatives:
<OR${n.alternation.idx}> inside <${n.topLevelRule.name}> Rule.
has ${n.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(n){const e=n.topLevelRule.name,t=S(n.leftRecursionPath,s=>s.name),r=`${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:
${r}
To fix this refactor your grammar to remove the left recursion.
see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(n){return"deprecated"},buildDuplicateRuleNameError(n){let e;return n.topLevelRule instanceof Ht?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function Cf(n,e){const t=new _f(n,e);return t.resolveRefs(),t.errors}class _f extends zt{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){x(H(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:le.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class wf extends ar{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=te(this.path.ruleStack).reverse(),this.occurrenceStack=te(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){D(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Lf extends wf{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(r),s=new he({definition:i});this.possibleTokTypes=cn(s),this.found=!0}}}class cr extends ar{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}}class bf extends cr{walkMany(e,t,r){if(e.idx===this.occurrence){const i=Oe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class vs extends cr{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=Oe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class Of extends cr{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=Oe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class As extends cr{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=Oe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function Gr(n,e,t=[]){t=te(t);let r=[],i=0;function s(o){return o.concat(J(n,i+1))}function a(o){const c=Gr(s(o),e,t);return r.concat(c)}for(;t.length<e&&i<n.length;){const o=n[i];if(o instanceof he)return a(o.definition);if(o instanceof ce)return a(o.definition);if(o instanceof ee)r=a(o.definition);else if(o instanceof Re){const c=o.definition.concat([new j({definition:o.definition})]);return a(c)}else if(o instanceof ke){const c=[new he({definition:o.definition}),new j({definition:[new G({terminalType:o.separator})].concat(o.definition)})];return a(c)}else if(o instanceof pe){const c=o.definition.concat([new j({definition:[new G({terminalType:o.separator})].concat(o.definition)})]);r=a(c)}else if(o instanceof j){const c=o.definition.concat([new j({definition:o.definition})]);r=a(c)}else{if(o instanceof me)return x(o.definition,c=>{D(c.definition)===!1&&(r=a(c.definition))}),r;if(o instanceof G)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:J(n,i)}),r}function Ec(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const c=e.length,l=c-r-1,u=[],d=[];for(d.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!D(d);){const f=d.pop();if(f===a){o&&Mt(d).idx<=l&&d.pop();continue}const h=f.def,m=f.idx,g=f.ruleStack,v=f.occurrenceStack;if(D(h))continue;const y=h[0];if(y===i){const A={idx:m,def:J(h),ruleStack:tn(g),occurrenceStack:tn(v)};d.push(A)}else if(y instanceof G)if(m<c-1){const A=m+1,E=e[A];if(t(E,y.terminalType)){const N={idx:A,def:J(h),ruleStack:g,occurrenceStack:v};d.push(N)}}else if(m===c-1)u.push({nextTokenType:y.terminalType,nextTokenOccurrence:y.idx,ruleStack:g,occurrenceStack:v}),o=!0;else throw Error("non exhaustive match");else if(y instanceof ce){const A=te(g);A.push(y.nonTerminalName);const E=te(v);E.push(y.idx);const N={idx:m,def:y.definition.concat(s,J(h)),ruleStack:A,occurrenceStack:E};d.push(N)}else if(y instanceof ee){const A={idx:m,def:J(h),ruleStack:g,occurrenceStack:v};d.push(A),d.push(a);const E={idx:m,def:y.definition.concat(J(h)),ruleStack:g,occurrenceStack:v};d.push(E)}else if(y instanceof Re){const A=new j({definition:y.definition,idx:y.idx}),E=y.definition.concat([A],J(h)),N={idx:m,def:E,ruleStack:g,occurrenceStack:v};d.push(N)}else if(y instanceof ke){const A=new G({terminalType:y.separator}),E=new j({definition:[A].concat(y.definition),idx:y.idx}),N=y.definition.concat([E],J(h)),F={idx:m,def:N,ruleStack:g,occurrenceStack:v};d.push(F)}else if(y instanceof pe){const A={idx:m,def:J(h),ruleStack:g,occurrenceStack:v};d.push(A),d.push(a);const E=new G({terminalType:y.separator}),N=new j({definition:[E].concat(y.definition),idx:y.idx}),F=y.definition.concat([N],J(h)),ne={idx:m,def:F,ruleStack:g,occurrenceStack:v};d.push(ne)}else if(y instanceof j){const A={idx:m,def:J(h),ruleStack:g,occurrenceStack:v};d.push(A),d.push(a);const E=new j({definition:y.definition,idx:y.idx}),N=y.definition.concat([E],J(h)),F={idx:m,def:N,ruleStack:g,occurrenceStack:v};d.push(F)}else if(y instanceof me)for(let A=y.definition.length-1;A>=0;A--){const E=y.definition[A],N={idx:m,def:E.definition.concat(J(h)),ruleStack:g,occurrenceStack:v};d.push(N),d.push(a)}else if(y instanceof he)d.push({idx:m,def:y.definition.concat(J(h)),ruleStack:g,occurrenceStack:v});else if(y instanceof Ht)d.push(Pf(y,m,g,v));else throw Error("non exhaustive match")}return u}function Pf(n,e,t,r){const i=te(t);i.push(n.name);const s=te(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var B;(function(n){n[n.OPTION=0]="OPTION",n[n.REPETITION=1]="REPETITION",n[n.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",n[n.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",n[n.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",n[n.ALTERNATION=5]="ALTERNATION"})(B||(B={}));function wi(n){if(n instanceof ee||n==="Option")return B.OPTION;if(n instanceof j||n==="Repetition")return B.REPETITION;if(n instanceof Re||n==="RepetitionMandatory")return B.REPETITION_MANDATORY;if(n instanceof ke||n==="RepetitionMandatoryWithSeparator")return B.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof pe||n==="RepetitionWithSeparator")return B.REPETITION_WITH_SEPARATOR;if(n instanceof me||n==="Alternation")return B.ALTERNATION;throw Error("non exhaustive match")}function Rs(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=wi(r);return s===B.ALTERNATION?lr(e,t,i):ur(e,t,s,i)}function $f(n,e,t,r,i,s){const a=lr(n,e,t),o=Rc(a)?Pn:ln;return s(a,r,o,i)}function Mf(n,e,t,r,i,s){const a=ur(n,e,i,t),o=Rc(a)?Pn:ln;return s(a[0],o,r)}function Df(n,e,t,r){const i=n.length,s=Le(n,a=>Le(a,o=>o.length===1));if(e)return function(a){const o=S(a,c=>c.GATE);for(let c=0;c<i;c++){const l=n[c],u=l.length,d=o[c];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<u;f++){const h=l[f],m=h.length;for(let g=0;g<m;g++){const v=this.LA(g+1);if(t(v,h[g])===!1)continue e}return c}}};if(s&&!r){const a=S(n,c=>xe(c)),o=oe(a,(c,l,u)=>(x(l,d=>{C(c,d.tokenTypeIdx)||(c[d.tokenTypeIdx]=u),x(d.categoryMatches,f=>{C(c,f)||(c[f]=u)})}),c),{});return function(){const c=this.LA(1);return o[c.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=n[a],c=o.length;e:for(let l=0;l<c;l++){const u=o[l],d=u.length;for(let f=0;f<d;f++){const h=this.LA(f+1);if(t(h,u[f])===!1)continue e}return a}}}}function Ff(n,e,t){const r=Le(n,s=>s.length===1),i=n.length;if(r&&!t){const s=xe(n);if(s.length===1&&D(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=oe(s,(o,c,l)=>(o[c.tokenTypeIdx]=!0,x(c.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;s<i;s++){const a=n[s],o=a.length;for(let c=0;c<o;c++){const l=this.LA(c+1);if(e(l,a[c])===!1)continue e}return!0}return!1}}class Gf extends ar{constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=r.concat(i),!0):!1}walkOption(e,t,r){this.checkIsTarget(e,B.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,B.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,B.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,B.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,B.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class vc extends zt{constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,B.OPTION)}visitRepetition(e){this.checkIsTarget(e,B.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,B.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,B.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,B.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,B.ALTERNATION)}}function ks(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function Sr(n){let e=[""];for(let t=0;t<n.length;t++){const r=n[t],i=[];for(let s=0;s<e.length;s++){const a=e[s];i.push(a+"_"+r.tokenTypeIdx);for(let o=0;o<r.categoryMatches.length;o++){const c="_"+r.categoryMatches[o];i.push(a+c)}}e=i}return e}function Uf(n,e,t){for(let r=0;r<n.length;r++){if(r===t)continue;const i=n[r];for(let s=0;s<e.length;s++){const a=e[s];if(i[a]===!0)return!1}}return!0}function Ac(n,e){const t=S(n,a=>Gr([a],1)),r=ks(t.length),i=S(t,a=>{const o={};return x(a,c=>{const l=Sr(c.partialPath);x(l,u=>{o[u]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=ks(o.length);for(let c=0;c<o.length;c++){const l=o[c];for(let u=0;u<l.length;u++){const d=l[u].partialPath,f=l[u].suffixDef,h=Sr(d);if(Uf(i,h,c)||D(f)||d.length===e){const g=r[c];if(Ur(g,d)===!1){g.push(d);for(let v=0;v<h.length;v++){const y=h[v];i[c][y]=!0}}}else{const g=Gr(f,a+1,d);s[c]=s[c].concat(g),x(g,v=>{const y=Sr(v.partialPath);x(y,A=>{i[c][A]=!0})})}}}}return r}function lr(n,e,t,r){const i=new vc(n,B.ALTERNATION,r);return e.accept(i),Ac(i.result,t)}function ur(n,e,t,r){const i=new vc(n,t);e.accept(i);const s=i.result,o=new Gf(e,n,t).startWalking(),c=new he({definition:s}),l=new he({definition:o});return Ac([c,l],r)}function Ur(n,e){e:for(let t=0;t<n.length;t++){const r=n[t];if(r.length===e.length){for(let i=0;i<r.length;i++){const s=e[i],a=r[i];if((s===a||a.categoryMatchesMap[s.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Bf(n,e){return n.length<e.length&&Le(n,(t,r)=>{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Rc(n){return Le(n,e=>Le(e,t=>Le(t,r=>D(r.categoryMatches))))}function Wf(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return S(e,t=>Object.assign({type:le.CUSTOM_LOOKAHEAD_VALIDATION},t))}function jf(n,e,t,r){const i=Ee(n,c=>Vf(c,t)),s=nh(n,e,t),a=Ee(n,c=>Qf(c,t)),o=Ee(n,c=>zf(c,n,r,t));return i.concat(s,a,o)}function Vf(n,e){const t=new Hf;n.accept(t);const r=t.allProductions,i=uu(r,Kf),s=Pe(i,o=>o.length>1);return S(H(s),o=>{const c=Oe(o),l=e.buildDuplicateFoundError(n,o),u=Me(c),d={message:l,type:le.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:u,occurrence:c.idx},f=kc(c);return f&&(d.parameter=f),d})}function Kf(n){return`${Me(n)}_#_${n.idx}_#_${kc(n)}`}function kc(n){return n instanceof G?n.terminalType.name:n instanceof ce?n.nonTerminalName:""}class Hf extends zt{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 zf(n,e,t,r){const i=[];if(oe(e,(a,o)=>o.name===n.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:n,grammarName:t});i.push({message:a,type:le.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function qf(n,e,t){const r=[];let i;return ue(e,n)||(i=`Invalid rule override, rule: ->${n}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,r.push({message:i,type:le.INVALID_RULE_OVERRIDE,ruleName:n})),r}function Sc(n,e,t,r=[]){const i=[],s=Nn(e.definition);if(D(s))return[];{const a=n.name;ue(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:le.LEFT_RECURSION,ruleName:a});const c=Qn(s,r.concat([n])),l=Ee(c,u=>{const d=te(r);return d.push(u),Sc(n,u,t,d)});return i.concat(l)}}function Nn(n){let e=[];if(D(n))return e;const t=Oe(n);if(t instanceof ce)e.push(t.referencedRule);else if(t instanceof he||t instanceof ee||t instanceof Re||t instanceof ke||t instanceof pe||t instanceof j)e=e.concat(Nn(t.definition));else if(t instanceof me)e=xe(S(t.definition,s=>Nn(s.definition)));else if(!(t instanceof G))throw Error("non exhaustive match");const r=bn(t),i=n.length>1;if(r&&i){const s=J(n);return e.concat(Nn(s))}else return e}class Li extends zt{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Yf(n,e){const t=new Li;n.accept(t);const r=t.alternations;return Ee(r,s=>{const a=tn(s.definition);return Ee(a,(o,c)=>{const l=Ec([o],[],ln,1);return D(l)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:c}),type:le.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:c+1}]:[]})})}function Xf(n,e,t){const r=new Li;n.accept(r);let i=r.alternations;return i=Zn(i,a=>a.ignoreAmbiguities===!0),Ee(i,a=>{const o=a.idx,c=a.maxLookahead||e,l=lr(o,n,c,a),u=eh(l,a,n,t),d=th(l,a,n,t);return u.concat(d)})}class Jf extends zt{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 Qf(n,e){const t=new Li;n.accept(t);const r=t.alternations;return Ee(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:le.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function Zf(n,e,t){const r=[];return x(n,i=>{const s=new Jf;i.accept(s);const a=s.allProductions;x(a,o=>{const c=wi(o),l=o.maxLookahead||e,u=o.idx,f=ur(u,i,c,l)[0];if(D(xe(f))){const h=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:h,type:le.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function eh(n,e,t,r){const i=[],s=oe(n,(o,c,l)=>(e.definition[l].ignoreAmbiguities===!0||x(c,u=>{const d=[l];x(n,(f,h)=>{l!==h&&Ur(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&d.push(h)}),d.length>1&&!Ur(i,u)&&(i.push(u),o.push({alts:d,path:u}))}),o),[]);return S(s,o=>{const c=S(o.alts,u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:c,prefixPath:o.path}),type:le.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function th(n,e,t,r){const i=oe(n,(a,o,c)=>{const l=S(o,u=>({idx:c,path:u}));return a.concat(l)},[]);return an(Ee(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const c=a.idx,l=a.path,u=Ae(i,f=>e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<c&&Bf(f.path,l));return S(u,f=>{const h=[f.idx+1,c+1],m=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:h,prefixPath:f.path}),type:le.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:m,alternatives:h}})}))}function nh(n,e,t){const r=[],i=S(e,s=>s.name);return x(n,s=>{const a=s.name;if(ue(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:le.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function rh(n){const e=Ti(n,{errMsgProvider:xf}),t={};return x(n.rules,r=>{t[r.name]=r}),Cf(t,e.errMsgProvider)}function ih(n){return n=Ti(n,{errMsgProvider:ct}),jf(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const Ic="MismatchedTokenException",Nc="NoViableAltException",xc="EarlyExitException",Cc="NotAllInputParsedException",_c=[Ic,Nc,xc,Cc];Object.freeze(_c);function $n(n){return ue(_c,n.name)}class dr 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)}}class wc extends dr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Ic}}class sh extends dr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Nc}}class ah extends dr{constructor(e,t){super(e,t),this.name=Cc}}class oh extends dr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=xc}}const Ir={},Lc="InRuleRecoveryException";class ch extends Error{constructor(e){super(e),this.name=Lc}}class lh{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=C(e,"recoveryEnabled")?e.recoveryEnabled:Ye.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=uh)}getTokenToInsert(e){const t=_i(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let c=!1;const l=this.LA(1);let u=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:l,previous:f,ruleName:this.getCurrRuleFullName()}),m=new wc(h,l,this.LA(0));m.resyncedTokens=tn(o),this.SAVE_ERROR(m)};for(;!c;)if(this.tokenMatcher(u,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(u,s)?c=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new ch("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||D(t))return!1;const r=this.LA(1);return $t(t,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return ue(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const i=$t(e,s=>Tc(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ir;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return S(e,(r,i)=>i===0?Ir:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=S(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return xe(e)}getFollowSetFromFollowKey(e){if(e===Ir)return[tt];const t=e.ruleName+e.idxInCallingRule+oc+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,tt)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return tn(t)}attemptInRepetitionRecovery(e,t,r,i,s,a,o){}getCurrentGrammarPath(e,t){const r=this.getHumanReadableRuleStack(),i=te(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return S(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function uh(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let c=this.firstAfterRepMap[o];if(c===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];c=new s(h,i).startWalking(),this.firstAfterRepMap[o]=c}let l=c.token,u=c.occurrence;const d=c.isEndOfRule;this.RULE_STACK.length===1&&d&&l===void 0&&(l=tt,u=1),!(l===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(l,u,a)&&this.tryInRepetitionRecovery(n,e,t,l)}const dh=4,it=8,bc=1<<it,Oc=2<<it,Br=3<<it,Wr=4<<it,jr=5<<it,xn=6<<it;function Nr(n,e,t){return t|e|n}class bi{constructor(e){var t;this.maxLookahead=(t=e==null?void 0:e.maxLookahead)!==null&&t!==void 0?t:Ye.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(D(t)){const r=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...r,...i,...s]}return t}validateNoLeftRecursion(e){return Ee(e,t=>Sc(t,t,ct))}validateEmptyOrAlternatives(e){return Ee(e,t=>Yf(t,ct))}validateAmbiguousAlternationAlternatives(e,t){return Ee(e,r=>Xf(r,t,ct))}validateSomeNonEmptyLookaheadPath(e,t){return Zf(e,t,ct)}buildLookaheadForAlternation(e){return $f(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Df)}buildLookaheadForOptional(e){return Mf(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,wi(e.prodType),Ff)}}class fh{initLooksAhead(e){this.dynamicTokensEnabled=C(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Ye.dynamicTokensEnabled,this.maxLookahead=C(e,"maxLookahead")?e.maxLookahead:Ye.maxLookahead,this.lookaheadStrategy=C(e,"lookaheadStrategy")?e.lookaheadStrategy:new bi({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){x(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:c}=ph(t);x(r,l=>{const u=l.idx===0?"":l.idx;this.TRACE_INIT(`${Me(l)}${u}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:l.idx,rule:t,maxLookahead:l.maxLookahead||this.maxLookahead,hasPredicates:l.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=Nr(this.fullRuleNameToShort[t.name],bc,l.idx);this.setLaFuncCache(f,d)})}),x(i,l=>{this.computeLookaheadFunc(t,l.idx,Br,"Repetition",l.maxLookahead,Me(l))}),x(s,l=>{this.computeLookaheadFunc(t,l.idx,Oc,"Option",l.maxLookahead,Me(l))}),x(a,l=>{this.computeLookaheadFunc(t,l.idx,Wr,"RepetitionMandatory",l.maxLookahead,Me(l))}),x(o,l=>{this.computeLookaheadFunc(t,l.idx,xn,"RepetitionMandatoryWithSeparator",l.maxLookahead,Me(l))}),x(c,l=>{this.computeLookaheadFunc(t,l.idx,jr,"RepetitionWithSeparator",l.maxLookahead,Me(l))})})})}computeLookaheadFunc(e,t,r,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),c=Nr(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(c,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return Nr(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class hh extends zt{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const An=new hh;function ph(n){An.reset(),n.accept(An);const e=An.dslMethods;return An.reset(),e}function Ss(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function Is(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.startColumn=e.startColumn,n.startLine=e.startLine,n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset,n.endColumn=e.endColumn,n.endLine=e.endLine)}function mh(n,e,t){n.children[t]===void 0?n.children[t]=[e]:n.children[t].push(e)}function gh(n,e,t){n.children[e]===void 0?n.children[e]=[t]:n.children[e].push(t)}const yh="name";function Pc(n,e){Object.defineProperty(n,yh,{enumerable:!1,configurable:!0,writable:!1,value:e})}function Th(n,e){const t=Pt(n),r=t.length;for(let i=0;i<r;i++){const s=t[i],a=n[s],o=a.length;for(let c=0;c<o;c++){const l=a[c];l.tokenTypeIdx===void 0&&this[l.name](l.children,e)}}}function Eh(n,e){const t=function(){};Pc(t,n+"BaseSemantics");const r={visit:function(i,s){if(Z(i)&&(i=i[0]),!ze(i))return this[i.name](i.children,s)},validateVisitor:function(){const i=Ah(this,e);if(!D(i)){const s=S(i,a=>a.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
${s.join(`
`).replace(/\n/g,`
`)}`)}}};return t.prototype=r,t.prototype.constructor=t,t._RULE_NAMES=e,t}function vh(n,e,t){const r=function(){};Pc(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return x(e,s=>{i[s]=Th}),r.prototype=i,r.prototype.constructor=r,r}var Vr;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(Vr||(Vr={}));function Ah(n,e){return Rh(n,e)}function Rh(n,e){const t=Ae(e,i=>pt(n[i])===!1),r=S(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:Vr.MISSING_METHOD,methodName:i}));return an(r)}class kh{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=C(e,"nodeLocationTracking")?e.nodeLocationTracking:Ye.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=q,this.cstFinallyStateUpdate=q,this.cstPostTerminal=q,this.cstPostNonTerminal=q,this.cstPostRule=q;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Is,this.setNodeLocationFromNode=Is,this.cstPostRule=q,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=q,this.setNodeLocationFromNode=q,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Ss,this.setNodeLocationFromNode=Ss,this.cstPostRule=q,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=q,this.setNodeLocationFromNode=q,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=q,this.setNodeLocationFromNode=q,this.cstPostRule=q,this.setInitialNodeLocation=q;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){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];mh(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];gh(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(ze(this.baseCstVisitorConstructor)){const e=Eh(this.className,Pt(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(ze(this.baseCstVisitorWithDefaultsConstructor)){const e=vh(this.className,Pt(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class Sh{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)):Dn}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Dn: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()}}class Ih{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=Fn){if(ue(this.definedRulesNames,e)){const a={message:ct.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:le.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=Fn){const i=qf(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,t,r);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if($n(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return bd(H(this.gastProductionsCache))}}class Nh{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Pn,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},C(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(Z(e)){if(D(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(Z(e))this.tokensMap=oe(e,(s,a)=>(s[a.name]=a,s),{});else if(C(e,"modes")&&Le(xe(H(e.modes)),kf)){const s=xe(H(e.modes)),a=Ei(s);this.tokensMap=oe(a,(o,c)=>(o[c.name]=c,o),{})}else if(Wl(e))this.tokensMap=te(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=tt;const r=C(e,"modes")?xe(H(e.modes)):H(e),i=Le(r,s=>D(s.categoryMatches));this.tokenMatcher=i?Pn:ln,un(H(this.tokensMap))}defineRule(e,t,r){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.`);const i=C(r,"resyncEnabled")?r.resyncEnabled:Fn.resyncEnabled,s=C(r,"recoveryValueFunc")?r.recoveryValueFunc:Fn.recoveryValueFunc,a=this.ruleShortNameIdx<<dh+it;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);const d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...u){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u)}catch(d){return this.invokeRuleCatch(d,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){const i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if($n(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const c=this.CST_STACK[this.CST_STACK.length-1];return c.recoveredNode=!0,c}else return r(e);else{if(this.outputCst){const c=this.CST_STACK[this.CST_STACK.length-1];c.recoveredNode=!0,a.partialCstResult=c}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(Oc,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof e!="function"){s=e.DEF;const a=e.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(Wr,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const 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,B.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Wr,e,Of)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(xn,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const 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,As],o,xn,e,As)}else throw this.raiseEarlyExitException(e,B.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead(Br,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const c=i;i=()=>o.call(this)&&c.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,Br,e,bf,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(jr,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const 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,vs],o,jr,e,vs)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,xn,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(bc,t),i=Z(e)?e:e.DEF,a=this.getLaFuncFromCache(r).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){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ah(t,e))}}subruleInternal(e,t,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,t,r){throw $n(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new wc(i,t,s))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===Lc?r:s}}else throw r}saveRecogState(){const e=this.errors,t=te(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),tt)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class xh{initErrorHandler(e){this._errors=[],this.errorMessageProvider=C(e,"errorMessageProvider")?e.errorMessageProvider:Ye.errorMessageProvider}SAVE_ERROR(e){if($n(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:te(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return te(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=ur(e,s,t,this.maxLookahead)[0],c=[];for(let u=1;u<=this.maxLookahead;u++)c.push(this.LA(u));const l=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:c,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new oh(l,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=lr(e,i,this.maxLookahead),a=[];for(let l=1;l<=this.maxLookahead;l++)a.push(this.LA(l));const o=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new sh(c,this.LA(1),o))}}class Ch{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(ze(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Ec([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Oe(e.ruleStack),i=this.getGAstProductions()[t];return new Lf(i,e).startWalking()}}const fr={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(fr);const Ns=!0,xs=Math.pow(2,it)-1,$c=yc({name:"RECORDING_PHASE_TOKEN",pattern:de.NA});un([$c]);const Mc=_i($c,`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(Mc);const _h={name:`This CSTNode indicates the Parser is in Recording Phase
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class wh{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++){const t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Dn}topLevelRuleRecord(e,t){try{const r=new Ht({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
This error was thrown during the "grammar recording phase" For more info see:
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return Xt.call(this,ee,e,t)}atLeastOneInternalRecord(e,t){Xt.call(this,Re,t,e)}atLeastOneSepFirstInternalRecord(e,t){Xt.call(this,ke,t,e,Ns)}manyInternalRecord(e,t){Xt.call(this,j,t,e)}manySepFirstInternalRecord(e,t){Xt.call(this,pe,t,e,Ns)}orInternalRecord(e,t){return Lh.call(this,e,t)}subruleInternalRecord(e,t,r){if(Mn(t),!e||C(e,"ruleName")===!1){const o=new Error(`<SUBRULE${Cs(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}const i=Mt(this.recordingProdStack),s=e.ruleName,a=new ce({idx:t,nonTerminalName:s,label:r==null?void 0:r.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?_h:fr}consumeInternalRecord(e,t,r){if(Mn(t),!mc(e)){const a=new Error(`<CONSUME${Cs(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}const i=Mt(this.recordingProdStack),s=new G({idx:t,terminalType:e,label:r==null?void 0:r.LABEL});return i.definition.push(s),Mc}}function Xt(n,e,t,r=!1){Mn(t);const i=Mt(this.recordingProdStack),s=pt(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),C(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),fr}function Lh(n,e){Mn(e);const t=Mt(this.recordingProdStack),r=Z(n)===!1,i=r===!1?n:n.DEF,s=new me({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});C(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=co(i,o=>pt(o.GATE));return s.hasPredicates=a,t.definition.push(s),x(i,o=>{const c=new he({definition:[]});s.definition.push(c),C(o,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:C(o,"GATE")&&(c.ignoreAmbiguities=!0),this.recordingProdStack.push(c),o.ALT.call(this),this.recordingProdStack.pop()}),fr}function Cs(n){return n===0?"":`${n}`}function Mn(n){if(n<0||n>xs){const e=new Error(`Invalid DSL Method idx value: <${n}>
Idx value must be a none negative value smaller than ${xs+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class bh{initPerformanceTracer(e){if(C(e,"traceInitPerf")){const t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Ye.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);const{time:i,value:s}=sc(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function Oh(n,e){e.forEach(t=>{const r=t.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(n.prototype,i,s):n.prototype[i]=t.prototype[i]})})}const Dn=_i(tt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Dn);const Ye=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Et,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Fn=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var le;(function(n){n[n.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",n[n.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",n[n.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",n[n.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",n[n.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",n[n.LEFT_RECURSION=5]="LEFT_RECURSION",n[n.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",n[n.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",n[n.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",n[n.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",n[n.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",n[n.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",n[n.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",n[n.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(le||(le={}));function _s(n=void 0){return function(){return n}}class dn{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;const t=this.className;this.TRACE_INIT("toFastProps",()=>{ac(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),x(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=rh({rules:H(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(D(r)&&this.skipValidations===!1){const i=ih({rules:H(this.gastProductionsCache),tokenTypes:H(this.tokensMap),errMsgProvider:ct,grammarName:t}),s=Wf({lookaheadStrategy:this.lookaheadStrategy,rules:H(this.gastProductionsCache),tokenTypes:H(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),D(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Gd(H(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:H(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(H(this.gastProductionsCache))})),!dn.DEFER_DEFINITION_ERRORS_HANDLING&&!D(this.definitionErrors))throw e=S(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
${e.join(`
-------------------------------
`)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),C(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=C(t,"skipValidations")?t.skipValidations:Ye.skipValidations}}dn.DEFER_DEFINITION_ERRORS_HANDLING=!1;Oh(dn,[lh,fh,kh,Sh,Nh,Ih,xh,Ch,wh,bh]);class Ph extends dn{constructor(e,t=Ye){const r=te(t);r.outputCst=!1,super(e,r)}}function Ft(n,e,t){return`${n.name}_${e}_${t}`}const nt=1,$h=2,Dc=4,Fc=5,fn=7,Mh=8,Dh=9,Fh=10,Gh=11,Gc=12;class Oi{constructor(e){this.target=e}isEpsilon(){return!1}}class Pi extends Oi{constructor(e,t){super(e),this.tokenType=t}}class Uc extends Oi{constructor(e){super(e)}isEpsilon(){return!0}}class $i extends Oi{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function Uh(n){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Bh(e,n);const t=n.length;for(let r=0;r<t;r++){const i=n[r],s=gt(e,i,i);s!==void 0&&Qh(e,i,s)}return e}function Bh(n,e){const t=e.length;for(let r=0;r<t;r++){const i=e[r],s=Y(n,i,void 0,{type:$h}),a=Y(n,i,void 0,{type:fn});s.stop=a,n.ruleToStartState.set(i,s),n.ruleToStopState.set(i,a)}}function Bc(n,e,t){return t instanceof G?Mi(n,e,t.terminalType,t):t instanceof ce?Jh(n,e,t):t instanceof me?Hh(n,e,t):t instanceof ee?zh(n,e,t):t instanceof j?Wh(n,e,t):t instanceof pe?jh(n,e,t):t instanceof Re?Vh(n,e,t):t instanceof ke?Kh(n,e,t):gt(n,e,t)}function Wh(n,e,t){const r=Y(n,e,t,{type:Fc});st(n,r);const i=qt(n,e,r,t,gt(n,e,t));return jc(n,e,t,i)}function jh(n,e,t){const r=Y(n,e,t,{type:Fc});st(n,r);const i=qt(n,e,r,t,gt(n,e,t)),s=Mi(n,e,t.separator,t);return jc(n,e,t,i,s)}function Vh(n,e,t){const r=Y(n,e,t,{type:Dc});st(n,r);const i=qt(n,e,r,t,gt(n,e,t));return Wc(n,e,t,i)}function Kh(n,e,t){const r=Y(n,e,t,{type:Dc});st(n,r);const i=qt(n,e,r,t,gt(n,e,t)),s=Mi(n,e,t.separator,t);return Wc(n,e,t,i,s)}function Hh(n,e,t){const r=Y(n,e,t,{type:nt});st(n,r);const i=S(t.definition,a=>Bc(n,e,a));return qt(n,e,r,t,...i)}function zh(n,e,t){const r=Y(n,e,t,{type:nt});st(n,r);const i=qt(n,e,r,t,gt(n,e,t));return qh(n,e,t,i)}function gt(n,e,t){const r=Ae(S(t.definition,i=>Bc(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:Xh(n,r)}function Wc(n,e,t,r,i){const s=r.left,a=r.right,o=Y(n,e,t,{type:Gh});st(n,o);const c=Y(n,e,t,{type:Gc});return s.loopback=o,c.loopback=o,n.decisionMap[Ft(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,K(a,o),i===void 0?(K(o,s),K(o,c)):(K(o,c),K(o,i.left),K(i.right,s)),{left:s,right:c}}function jc(n,e,t,r,i){const s=r.left,a=r.right,o=Y(n,e,t,{type:Fh});st(n,o);const c=Y(n,e,t,{type:Gc}),l=Y(n,e,t,{type:Dh});return o.loopback=l,c.loopback=l,K(o,s),K(o,c),K(a,l),i!==void 0?(K(l,c),K(l,i.left),K(i.right,s)):K(l,o),n.decisionMap[Ft(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:c}}function qh(n,e,t,r){const i=r.left,s=r.right;return K(i,s),n.decisionMap[Ft(e,"Option",t.idx)]=i,r}function st(n,e){return n.decisionStates.push(e),e.decision=n.decisionStates.length-1,e.decision}function qt(n,e,t,r,...i){const s=Y(n,e,r,{type:Mh,start:t});t.end=s;for(const o of i)o!==void 0?(K(t,o.left),K(o.right,s)):K(t,s);const a={left:t,right:s};return n.decisionMap[Ft(e,Yh(r),r.idx)]=t,a}function Yh(n){if(n instanceof me)return"Alternation";if(n instanceof ee)return"Option";if(n instanceof j)return"Repetition";if(n instanceof pe)return"RepetitionWithSeparator";if(n instanceof Re)return"RepetitionMandatory";if(n instanceof ke)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Xh(n,e){const t=e.length;for(let s=0;s<t-1;s++){const a=e[s];let o;a.left.transitions.length===1&&(o=a.left.transitions[0]);const c=o instanceof $i,l=o,u=e[s+1].left;a.left.type===nt&&a.right.type===nt&&o!==void 0&&(c&&l.followState===a.right||o.target===a.right)?(c?l.followState=u:o.target=u,Zh(n,a.right)):K(a.right,u)}const r=e[0],i=e[t-1];return{left:r.left,right:i.right}}function Mi(n,e,t,r){const i=Y(n,e,r,{type:nt}),s=Y(n,e,r,{type:nt});return Di(i,new Pi(s,t)),{left:i,right:s}}function Jh(n,e,t){const r=t.referencedRule,i=n.ruleToStartState.get(r),s=Y(n,e,t,{type:nt}),a=Y(n,e,t,{type:nt}),o=new $i(i,r,a);return Di(s,o),{left:s,right:a}}function Qh(n,e,t){const r=n.ruleToStartState.get(e);K(r,t.left);const i=n.ruleToStopState.get(e);return K(t.right,i),{left:r,right:i}}function K(n,e){const t=new Uc(e);Di(n,t)}function Y(n,e,t,r){const i=Object.assign({atn:n,production:t,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:n.states.length},r);return n.states.push(i),i}function Di(n,e){n.transitions.length===0&&(n.epsilonOnlyTransitions=e.isEpsilon()),n.transitions.push(e)}function Zh(n,e){n.states.splice(n.states.indexOf(e),1)}const Gn={};class Kr{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Vc(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return S(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Vc(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function ep(n,e){const t={};return r=>{const i=r.toString();let s=t[i];return s!==void 0||(s={atnStartState:n,decision:e,states:{}},t[i]=s),s}}class Kc{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let r=0;r<t;r++)e+=this.predicates[r]===!0?"1":"0";return e}}const ws=new Kc;class tp extends bi{constructor(e){var t;super(),this.logging=(t=e==null?void 0:e.logging)!==null&&t!==void 0?t:r=>console.log(r)}initialize(e){this.atn=Uh(e.rules),this.dfas=np(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,c=Ft(r,"Alternation",t),u=this.atn.decisionMap[c].decision,d=S(Rs({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),f=>S(f,h=>h[0]));if(Ls(d,!1)&&!s){const f=oe(d,(h,m,g)=>(x(m,v=>{v&&(h[v.tokenTypeIdx]=g,x(v.categoryMatches,y=>{h[y]=g}))}),h),{});return i?function(h){var m;const g=this.LA(1),v=f[g.tokenTypeIdx];if(h!==void 0&&v!==void 0){const y=(m=h[v])===null||m===void 0?void 0:m.GATE;if(y!==void 0&&y.call(this)===!1)return}return v}:function(){const h=this.LA(1);return f[h.tokenTypeIdx]}}else return i?function(f){const h=new Kc,m=f===void 0?0:f.length;for(let v=0;v<m;v++){const y=f==null?void 0:f[v].GATE;h.set(v,y===void 0||y.call(this))}const g=xr.call(this,a,u,h,o);return typeof g=="number"?g:void 0}:function(){const f=xr.call(this,a,u,ws,o);return typeof f=="number"?f:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:r,prodType:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,c=Ft(r,i,t),u=this.atn.decisionMap[c].decision,d=S(Rs({maxLookahead:1,occurrence:t,prodType:i,rule:r}),f=>S(f,h=>h[0]));if(Ls(d)&&d[0][0]&&!s){const f=d[0],h=xe(f);if(h.length===1&&D(h[0].categoryMatches)){const g=h[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===g}}else{const m=oe(h,(g,v)=>(v!==void 0&&(g[v.tokenTypeIdx]=!0,x(v.categoryMatches,y=>{g[y]=!0})),g),{});return function(){const g=this.LA(1);return m[g.tokenTypeIdx]===!0}}}return function(){const f=xr.call(this,a,u,ws,o);return typeof f=="object"?!1:f===0}}}function Ls(n,e=!0){const t=new Set;for(const r of n){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function np(n){const e=n.decisionStates.length,t=Array(e);for(let r=0;r<e;r++)t[r]=ep(n.decisionStates[r],r);return t}function xr(n,e,t,r){const i=n[e](t);let s=i.start;if(s===void 0){const o=hp(i.atnStartState);s=zc(i,Hc(o)),i.start=s}return rp.apply(this,[i,s,t,r])}function rp(n,e,t,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let c=lp(i,o);if(c===void 0&&(c=ip.apply(this,[n,i,o,s,t,r])),c===Gn)return cp(a,i,o);if(c.isAcceptState===!0)return c.prediction;i=c,a.push(o),o=this.LA(s++)}}function ip(n,e,t,r,i,s){const a=up(e.configs,t,i);if(a.size===0)return bs(n,e,t,Gn),Gn;let o=Hc(a);const c=fp(a,i);if(c!==void 0)o.isAcceptState=!0,o.prediction=c,o.configs.uniqueAlt=c;else if(yp(a)){const l=Ql(a.alts);o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l,sp.apply(this,[n,r,a.alts,s])}return o=bs(n,e,t,o),o}function sp(n,e,t,r){const i=[];for(let l=1;l<=e;l++)i.push(this.LA(l).tokenType);const s=n.atnStartState,a=s.rule,o=s.production,c=ap({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});r(c)}function ap(n){const e=S(n.prefixPath,i=>Rt(i)).join(", "),t=n.production.idx===0?"":n.production.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(", ")}> in <${op(n.production)}${t}> inside <${n.topLevelRule.name}> Rule,
<${e}> may appears as a prefix path in all these alternatives.
`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
For Further details.`,r}function op(n){if(n instanceof ce)return"SUBRULE";if(n instanceof ee)return"OPTION";if(n instanceof me)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ke)return"AT_LEAST_ONE_SEP";if(n instanceof pe)return"MANY_SEP";if(n instanceof j)return"MANY";if(n instanceof G)return"CONSUME";throw Error("non exhaustive match")}function cp(n,e,t){const r=Ee(e.configs.elements,s=>s.state.transitions),i=Tu(r.filter(s=>s instanceof Pi).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:n}}function lp(n,e){return n.edges[e.tokenTypeIdx]}function up(n,e,t){const r=new Kr,i=[];for(const a of n.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===fn){i.push(a);continue}const o=a.state.transitions.length;for(let c=0;c<o;c++){const l=a.state.transitions[c],u=dp(l,e);u!==void 0&&r.add({state:u,alt:a.alt,stack:a.stack})}}let s;if(i.length===0&&r.size===1&&(s=r),s===void 0){s=new Kr;for(const a of r.elements)Un(a,s)}if(i.length>0&&!mp(s))for(const a of i)s.add(a);return s}function dp(n,e){if(n instanceof Pi&&Tc(e,n.tokenType))return n.target}function fp(n,e){let t;for(const r of n.elements)if(e.is(r.alt)===!0){if(t===void 0)t=r.alt;else if(t!==r.alt)return}return t}function Hc(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function bs(n,e,t,r){return r=zc(n,r),e.edges[t.tokenTypeIdx]=r,r}function zc(n,e){if(e===Gn)return e;const t=e.configs.key,r=n.states[t];return r!==void 0?r:(e.configs.finalize(),n.states[t]=e,e)}function hp(n){const e=new Kr,t=n.transitions.length;for(let r=0;r<t;r++){const s={state:n.transitions[r].target,alt:r,stack:[]};Un(s,e)}return e}function Un(n,e){const t=n.state;if(t.type===fn){if(n.stack.length>0){const i=[...n.stack],a={state:i.pop(),alt:n.alt,stack:i};Un(a,e)}else e.add(n);return}t.epsilonOnlyTransitions||e.add(n);const r=t.transitions.length;for(let i=0;i<r;i++){const s=t.transitions[i],a=pp(n,s);a!==void 0&&Un(a,e)}}function pp(n,e){if(e instanceof Uc)return{state:e.target,alt:n.alt,stack:n.stack};if(e instanceof $i){const t=[...n.stack,e.followState];return{state:e.target,alt:n.alt,stack:t}}}function mp(n){for(const e of n.elements)if(e.state.type===fn)return!0;return!1}function gp(n){for(const e of n.elements)if(e.state.type!==fn)return!1;return!0}function yp(n){if(gp(n))return!0;const e=Tp(n.elements);return Ep(e)&&!vp(e)}function Tp(n){const e=new Map;for(const t of n){const r=Vc(t,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[t.alt]=!0}return e}function Ep(n){for(const e of Array.from(n.values()))if(Object.keys(e).length>1)return!0;return!1}function vp(n){for(const e of Array.from(n.values()))if(Object.keys(e).length===1)return!0;return!1}var Os;(function(n){function e(t){return typeof t=="string"}n.is=e})(Os||(Os={}));var Hr;(function(n){function e(t){return typeof t=="string"}n.is=e})(Hr||(Hr={}));var Ps;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Ps||(Ps={}));var Bn;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Bn||(Bn={}));var $;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Bn.MAX_VALUE),i===Number.MAX_VALUE&&(i=Bn.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}n.is=t})($||($={}));var P;(function(n){function e(r,i,s,a){if(p.uinteger(r)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:$.create(r,i),end:$.create(s,a)};if($.is(r)&&$.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&$.is(i.start)&&$.is(i.end)}n.is=t})(P||(P={}));var Wn;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&P.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}n.is=t})(Wn||(Wn={}));var $s;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&P.is(i.targetRange)&&p.string(i.targetUri)&&P.is(i.targetSelectionRange)&&(P.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}n.is=t})($s||($s={}));var zr;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){const i=r;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)}n.is=t})(zr||(zr={}));var Ms;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&P.is(i.range)&&zr.is(i.color)}n.is=t})(Ms||(Ms={}));var Ds;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||Ut.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Ut.is))}n.is=t})(Ds||(Ds={}));var Fs;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Fs||(Fs={}));var Gs;(function(n){function e(r,i,s,a,o,c){const l={startLine:r,endLine:i};return p.defined(s)&&(l.startCharacter=s),p.defined(a)&&(l.endCharacter=a),p.defined(o)&&(l.kind=o),p.defined(c)&&(l.collapsedText=c),l}n.create=e;function t(r){const i=r;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))}n.is=t})(Gs||(Gs={}));var qr;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&Wn.is(i.location)&&p.string(i.message)}n.is=t})(qr||(qr={}));var Us;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(Us||(Us={}));var Bs;(function(n){n.Unnecessary=1,n.Deprecated=2})(Bs||(Bs={}));var Ws;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&p.string(r.href)}n.is=e})(Ws||(Ws={}));var jn;(function(n){function e(r,i,s,a,o,c){let l={range:r,message:i};return p.defined(s)&&(l.severity=s),p.defined(a)&&(l.code=a),p.defined(o)&&(l.source=o),p.defined(c)&&(l.relatedInformation=c),l}n.create=e;function t(r){var i;let s=r;return p.defined(s)&&P.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,qr.is))}n.is=t})(jn||(jn={}));var Gt;(function(n){function e(r,i,...s){let a={title:r,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}n.is=t})(Gt||(Gt={}));var Ut;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&P.is(a.range)}n.is=i})(Ut||(Ut={}));var Yr;(function(n){function e(r,i,s){const a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}n.is=t})(Yr||(Yr={}));var Bt;(function(n){function e(t){const r=t;return p.string(r)}n.is=e})(Bt||(Bt={}));var js;(function(n){function e(s,a,o){return{range:s,newText:a,annotationId:o}}n.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){const a=s;return Ut.is(a)&&(Yr.is(a.annotationId)||Bt.is(a.annotationId))}n.is=i})(js||(js={}));var Xr;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&ti.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(Xr||(Xr={}));var Jr;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;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||Bt.is(i.annotationId))}n.is=t})(Jr||(Jr={}));var Qr;(function(n){function e(r,i,s,a){let o={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}n.create=e;function t(r){let i=r;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||Bt.is(i.annotationId))}n.is=t})(Qr||(Qr={}));var Zr;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;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||Bt.is(i.annotationId))}n.is=t})(Zr||(Zr={}));var ei;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>p.string(i.kind)?Jr.is(i)||Qr.is(i)||Zr.is(i):Xr.is(i)))}n.is=e})(ei||(ei={}));var Vs;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)}n.is=t})(Vs||(Vs={}));var Ks;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}n.is=t})(Ks||(Ks={}));var ti;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}n.is=t})(ti||(ti={}));var Hs;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}n.is=t})(Hs||(Hs={}));var ni;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){const r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(ni||(ni={}));var nn;(function(n){function e(t){const r=t;return p.objectLiteral(t)&&ni.is(r.kind)&&p.string(r.value)}n.is=e})(nn||(nn={}));var zs;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(zs||(zs={}));var qs;(function(n){n.PlainText=1,n.Snippet=2})(qs||(qs={}));var Ys;(function(n){n.Deprecated=1})(Ys||(Ys={}));var Xs;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){const i=r;return i&&p.string(i.newText)&&P.is(i.insert)&&P.is(i.replace)}n.is=t})(Xs||(Xs={}));var Js;(function(n){n.asIs=1,n.adjustIndentation=2})(Js||(Js={}));var Qs;(function(n){function e(t){const r=t;return r&&(p.string(r.detail)||r.detail===void 0)&&(p.string(r.description)||r.description===void 0)}n.is=e})(Qs||(Qs={}));var Zs;(function(n){function e(t){return{label:t}}n.create=e})(Zs||(Zs={}));var ea;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(ea||(ea={}));var Vn;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){const i=r;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}n.is=t})(Vn||(Vn={}));var ta;(function(n){function e(t){let r=t;return!!r&&p.objectLiteral(r)&&(nn.is(r.contents)||Vn.is(r.contents)||p.typedArray(r.contents,Vn.is))&&(t.range===void 0||P.is(t.range))}n.is=e})(ta||(ta={}));var na;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(na||(na={}));var ra;(function(n){function e(t,r,...i){let s={label:t};return p.defined(r)&&(s.documentation=r),p.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(ra||(ra={}));var ia;(function(n){n.Text=1,n.Read=2,n.Write=3})(ia||(ia={}));var sa;(function(n){function e(t,r){let i={range:t};return p.number(r)&&(i.kind=r),i}n.create=e})(sa||(sa={}));var aa;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(aa||(aa={}));var oa;(function(n){n.Deprecated=1})(oa||(oa={}));var ca;(function(n){function e(t,r,i,s,a){let o={name:t,kind:r,location:{uri:s,range:i}};return a&&(o.containerName=a),o}n.create=e})(ca||(ca={}));var la;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(la||(la={}));var ua;(function(n){function e(r,i,s,a,o,c){let l={name:r,detail:i,kind:s,range:a,selectionRange:o};return c!==void 0&&(l.children=c),l}n.create=e;function t(r){let i=r;return i&&p.string(i.name)&&p.number(i.kind)&&P.is(i.range)&&P.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))}n.is=t})(ua||(ua={}));var da;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(da||(da={}));var Kn;(function(n){n.Invoked=1,n.Automatic=2})(Kn||(Kn={}));var fa;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.typedArray(i.diagnostics,jn.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Kn.Invoked||i.triggerKind===Kn.Automatic)}n.is=t})(fa||(fa={}));var ha;(function(n){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Gt.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,jn.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Gt.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||ei.is(i.edit))}n.is=t})(ha||(ha={}));var pa;(function(n){function e(r,i){let s={range:r};return p.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return p.defined(i)&&P.is(i.range)&&(p.undefined(i.command)||Gt.is(i.command))}n.is=t})(pa||(pa={}));var ma;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}n.is=t})(ma||(ma={}));var ga;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return p.defined(i)&&P.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}n.is=t})(ga||(ga={}));var ya;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&P.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(ya||(ya={}));var Ta;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(Ta||(Ta={}));var Ea;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(Ea||(Ea={}));var va;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(va||(va={}));var Aa;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){const i=r;return i!=null&&P.is(i.range)&&p.string(i.text)}n.is=t})(Aa||(Aa={}));var Ra;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){const i=r;return i!=null&&P.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}n.is=t})(Ra||(Ra={}));var ka;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){const i=r;return i!=null&&P.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}n.is=t})(ka||(ka={}));var Sa;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){const i=r;return p.defined(i)&&P.is(r.stoppedLocation)}n.is=t})(Sa||(Sa={}));var ri;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(ri||(ri={}));var ii;(function(n){function e(r){return{value:r}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||nn.is(i.tooltip))&&(i.location===void 0||Wn.is(i.location))&&(i.command===void 0||Gt.is(i.command))}n.is=t})(ii||(ii={}));var Ia;(function(n){function e(r,i,s){const a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&$.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,ii.is))&&(i.kind===void 0||ri.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Ut.is)&&(i.tooltip===void 0||p.string(i.tooltip)||nn.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}n.is=t})(Ia||(Ia={}));var Na;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(Na||(Na={}));var xa;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(xa||(xa={}));var Ca;(function(n){function e(t){return{items:t}}n.create=e})(Ca||(Ca={}));var _a;(function(n){n.Invoked=0,n.Automatic=1})(_a||(_a={}));var wa;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(wa||(wa={}));var La;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(La||(La={}));var ba;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&Hr.is(r.uri)&&p.string(r.name)}n.is=e})(ba||(ba={}));var Oa;(function(n){function e(s,a,o,c){return new Ap(s,a,o,c)}n.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))}n.is=t;function r(s,a){let o=s.getText(),c=i(a,(u,d)=>{let f=u.range.start.line-d.range.start.line;return f===0?u.range.start.character-d.range.start.character:f}),l=o.length;for(let u=c.length-1;u>=0;u--){let d=c[u],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=l)o=o.substring(0,f)+d.newText+o.substring(h,o.length);else throw new Error("Overlapping edit");l=f}return o}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,c=s.slice(0,o),l=s.slice(o);i(c,a),i(l,a);let u=0,d=0,f=0;for(;u<c.length&&d<l.length;)a(c[u],l[d])<=0?s[f++]=c[u++]:s[f++]=l[d++];for(;u<c.length;)s[f++]=c[u++];for(;d<l.length;)s[f++]=l[d++];return s}})(Oa||(Oa={}));let Ap=class{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,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),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,r=!0;for(let i=0;i<t.length;i++){r&&(e.push(i),r=!1);let s=t.charAt(i);r=s==="\r"||s===`
`,s==="\r"&&i+1<t.length&&t.charAt(i+1)===`
`&&i++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return $.create(0,e);for(;r<i;){let a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}let s=r-1;return $.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 r=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}};var p;(function(n){const e=Object.prototype.toString;function t(h){return typeof h<"u"}n.defined=t;function r(h){return typeof h>"u"}n.undefined=r;function i(h){return h===!0||h===!1}n.boolean=i;function s(h){return e.call(h)==="[object String]"}n.string=s;function a(h){return e.call(h)==="[object Number]"}n.number=a;function o(h,m,g){return e.call(h)==="[object Number]"&&m<=h&&h<=g}n.numberRange=o;function c(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}n.integer=c;function l(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}n.uinteger=l;function u(h){return e.call(h)==="[object Function]"}n.func=u;function d(h){return h!==null&&typeof h=="object"}n.objectLiteral=d;function f(h,m){return Array.isArray(h)&&h.every(m)}n.typedArray=f})(p||(p={}));class Rp{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new Yc(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new Fi;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new si(e.startOffset,e.image.length,Pr(e),e.tokenType,!1);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const t=e.container;if(t){const r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}construct(e){const t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;const r=this.nodeStack.pop();(r==null?void 0:r.content.length)===0&&this.removeNode(r)}addHiddenTokens(e){for(const t of e){const r=new si(t.startOffset,t.image.length,Pr(t),t.tokenType,!0);r.root=this.rootNode,this.addHiddenToken(this.rootNode,r)}}addHiddenToken(e,t){const{offset:r,end:i}=t;for(let s=0;s<e.content.length;s++){const a=e.content[s],{offset:o,end:c}=a;if(Dt(a)&&r>o&&i<c){this.addHiddenToken(a,t);return}else if(i<=o){e.content.splice(s,0,t);return}}e.content.push(t)}}class qc{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const r=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(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class si extends qc{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=r}}class Fi extends qc{constructor(){super(...arguments),this.content=new Gi(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(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=t;this._rangeCache={start:r.start,end:i.end.line<r.start.line?r.start:i.end}}return this._rangeCache}else return{start:$.create(0,0),end:$.create(0,0)}}get firstNonHiddenNode(){for(const 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--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class Gi extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Gi.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(const t of e)t.container=this.parent}}class Yc extends Fi{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const ai=Symbol("Datatype");function Cr(n){return n.$type===ai}const Pa="",Xc=n=>n.endsWith(Pa)?n:n+Pa;class Jc{constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition;this.wrapper=new xp(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()}}class kp extends Jc{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Rp,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const r=e.fragment?void 0:Ii(e)?ai:sr(e),i=this.wrapper.DEFINE_RULE(Xc(e.name),this.startImplementation(r,t).bind(this));return e.entry&&(this.mainRule=i),i}parse(e){this.nodeBuilder.buildRootNode(e);const t=this.lexer.tokenize(e);this.wrapper.input=t.tokens;const r=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(t.hidden),this.unorderedGroups.clear(),{value:r,lexerErrors:t.errors,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{if(!this.isRecording()){const s={$type:e};this.stack.push(s),e===ai&&(s.value="")}let i;try{i=t(r)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,t,r){const i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){const s=this.nodeBuilder.buildLeafNode(i,r),{assignment:a,isCrossRef:o}=this.getAssignment(r),c=this.current;if(a){const l=ut(r)?i.image:this.converter.convert(i.image,s);this.assign(a.operator,a.feature,l,s,o)}else if(Cr(c)){let l=i.image;ut(r)||(l=this.converter.convert(l,s).toString()),c.value+=l}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,r,i){let s;this.isRecording()||(s=this.nodeBuilder.buildCompositeNode(r));const a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,r,s)}performSubruleAssignment(e,t,r){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const a=this.current;if(Cr(a))a.value+=e.toString();else if(typeof e=="object"&&e){const o=e.$type,c=this.assignWithoutOverride(e,a);o&&(c.$type=o);const l=c;this.stack.pop(),this.stack.push(l)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(!r.$cstNode&&t.feature&&t.operator){r=this.construct(!1);const s=r.$cstNode.feature;this.nodeBuilder.buildCompositeNode(s)}const i={$type:e};this.stack.pop(),this.stack.push(i),t.feature&&t.operator&&this.assign(t.operator,t.feature,r,r.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;const t=this.current;return td(t),this.nodeBuilder.construct(t),e&&this.stack.pop(),Cr(t)?this.converter.convert(t.value,t.$cstNode):(rd(this.astReflection,t),t)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=nr(e,lt);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Ai(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,r,i,s){const a=this.current;let o;switch(s&&typeof r=="string"?o=this.linker.buildReference(a,t,i,r):o=r,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(const[r,i]of Object.entries(t)){const s=e[r];s===void 0?e[r]=i:Array.isArray(s)&&Array.isArray(i)&&(i.push(...s),e[r]=i)}return e}get definitionErrors(){return this.wrapper.definitionErrors}}class Sp{buildMismatchTokenMessage(e){return Et.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Et.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Et.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Et.buildEarlyExitMessage(e)}}class Qc extends Sp{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}\`.`}}class Ip extends Jc{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const 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){const r=this.wrapper.DEFINE_RULE(Xc(e.name),this.startImplementation(t).bind(this));return e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,i){this.before(r),this.wrapper.wrapSubrule(e,t,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const Np={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Qc};class xp extends Ph{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Np),{lookaheadStrategy:r?new bi({maxLookahead:t.maxLookahead}):new tp}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function Zc(n,e,t){return Cp({parser:e,tokens:t,rules:new Map,ruleNames:new Map},n),e}function Cp(n,e){const t=Jo(e,!1),r=Q(e.rules).filter(Ce).filter(i=>t.has(i));for(const i of r){const s=Object.assign(Object.assign({},n),{consume:1,optional:1,subrule:1,many:1,or:1});s.rules.set(i.name,n.parser.rule(i,ht(s,i.definition)))}}function ht(n,e,t=!1){let r;if(ut(e))r=$p(n,e);else if(tr(e))r=_p(n,e);else if(lt(e))r=ht(n,e.terminal);else if(Ai(e))r=el(n,e);else if(dt(e))r=wp(n,e);else if(wo(e))r=bp(n,e);else if(Vo(e))r=Op(n,e);else if(Ri(e))r=Pp(n,e);else if(zu(e)){const i=n.consume++;r=()=>n.parser.consume(i,tt,e)}else throw new ho(e.$cstNode,`Unexpected element type: ${e.$type}`);return tl(n,t?void 0:Hn(e),r,e.cardinality)}function _p(n,e){const t=sr(e);return()=>n.parser.action(t,e)}function wp(n,e){const t=e.rule.ref;if(Ce(t)){const r=n.subrule++,i=e.arguments.length>0?Lp(t,e.arguments):()=>({});return s=>n.parser.subrule(r,nl(n,t),e,i(s))}else if(mt(t)){const r=n.consume++,i=oi(n,t.name);return()=>n.parser.consume(r,i,e)}else if(t)er();else throw new ho(e.$cstNode,`Undefined rule type: ${e.$type}`)}function Lp(n,e){const t=e.map(r=>Ke(r.value));return r=>{const i={};for(let s=0;s<t.length;s++){const a=n.parameters[s],o=t[s];i[a.name]=o(r)}return i}}function Ke(n){if(Pu(n)){const e=Ke(n.left),t=Ke(n.right);return r=>e(r)||t(r)}else if(Ou(n)){const e=Ke(n.left),t=Ke(n.right);return r=>e(r)&&t(r)}else if(Mu(n)){const e=Ke(n.value);return t=>!e(t)}else if(Gu(n)){const e=n.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(bu(n)){const e=!!n.true;return()=>e}er()}function bp(n,e){if(e.elements.length===1)return ht(n,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:ht(n,i,!0)},a=Hn(i);a&&(s.GATE=Ke(a)),t.push(s)}const r=n.or++;return i=>n.parser.alternatives(r,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function Op(n,e){if(e.elements.length===1)return ht(n,e.elements[0]);const t=[];for(const o of e.elements){const c={ALT:ht(n,o,!0)},l=Hn(o);l&&(c.GATE=Ke(l)),t.push(c)}const r=n.or++,i=(o,c)=>{const l=c.getRuleStack().join("-");return`uGroup_${o}_${l}`},s=o=>n.parser.alternatives(r,t.map((c,l)=>{const u={ALT:()=>!0},d=n.parser;u.ALT=()=>{if(c.ALT(o),!d.isRecording()){const h=i(r,d);d.unorderedGroups.get(h)||d.unorderedGroups.set(h,[]);const m=d.unorderedGroups.get(h);typeof(m==null?void 0:m[l])>"u"&&(m[l]=!0)}};const f=c.GATE;return f?u.GATE=()=>f(o):u.GATE=()=>{const h=d.unorderedGroups.get(i(r,d));return!(h!=null&&h[l])},u})),a=tl(n,Hn(e),s,"*");return o=>{a(o),n.parser.isRecording()||n.parser.unorderedGroups.delete(i(r,n.parser))}}function Pp(n,e){const t=e.elements.map(r=>ht(n,r));return r=>t.forEach(i=>i(r))}function Hn(n){if(Ri(n))return n.guardCondition}function el(n,e,t=e.terminal){if(t)if(dt(t)&&Ce(t.rule.ref)){const r=n.subrule++;return i=>n.parser.subrule(r,nl(n,t.rule.ref),e,i)}else if(dt(t)&&mt(t.rule.ref)){const r=n.consume++,i=oi(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}else if(ut(t)){const r=n.consume++,i=oi(n,t.value);return()=>n.parser.consume(r,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);const r=ec(e.type.ref),i=r==null?void 0:r.terminal;if(!i)throw new Error("Could not find name assignment for type: "+sr(e.type.ref));return el(n,e,i)}}function $p(n,e){const t=n.consume++,r=n.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>n.parser.consume(t,r,e)}function tl(n,e,t,r){const i=e&&Ke(e);if(!r)if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:_s(),GATE:()=>!i(a)}])}else return t;if(r==="*"){const s=n.many++;return a=>n.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(r==="+"){const s=n.many++;if(i){const a=n.or++;return o=>n.parser.alternatives(a,[{ALT:()=>n.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:_s(),GATE:()=>!i(o)}])}else return a=>n.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(r==="?"){const s=n.optional++;return a=>n.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else er()}function nl(n,e){const t=Mp(n,e),r=n.rules.get(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function Mp(n,e){if(Ce(e))return e.name;if(n.ruleNames.has(e))return n.ruleNames.get(e);{let t=e,r=t.$container,i=e.$type;for(;!Ce(r);)(Ri(r)||wo(r)||Vo(r))&&(i=r.elements.indexOf(t).toString()+":"+i),t=r,r=r.$container;return i=r.name+":"+i,n.ruleNames.set(e,i),i}}function oi(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function Dp(n){const e=n.Grammar,t=n.parser.Lexer,r=new Ip(n);return Zc(e,r,t.definition),r.finalize(),r}function Fp(n){const e=Gp(n);return e.finalize(),e}function Gp(n){const e=n.Grammar,t=n.parser.Lexer,r=new kp(n);return Zc(e,r,t.definition)}class rl{buildTokens(e,t){const r=Q(Jo(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&ss(o)?s.unshift(a):s.push(a)}),s}buildTerminalTokens(e){return e.filter(mt).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Ni(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=ss(t)?de.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(r,i)=>(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(Ce).flatMap(i=>on(i).filter(ut)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!(r!=null&&r.caseInsensitive)))}buildKeywordToken(e,t,r){return{name:e.value,PATTERN:this.buildKeywordPattern(e,r),LONGER_ALT:this.findLongerAlt(e,t)}}buildKeywordPattern(e,t){return t?new RegExp(dd(e.value)):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{const s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&fd("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class il{convert(e,t){let r=t.grammarSource;if(Ai(r)&&(r=gd(r)),dt(r)){const i=r.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,r){var i;switch(e.name.toUpperCase()){case"INT":return Ve.convertInt(t);case"STRING":return Ve.convertString(t);case"ID":return Ve.convertID(t)}switch((i=kd(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Ve.convertNumber(t);case"boolean":return Ve.convertBoolean(t);case"bigint":return Ve.convertBigint(t);case"date":return Ve.convertDate(t);default:return t}}}var Ve;(function(n){function e(l){let u="";for(let d=1;d<l.length-1;d++){const f=l.charAt(d);if(f==="\\"){const h=l.charAt(++d);u+=t(h)}else u+=f}return u}n.convertString=e;function t(l){switch(l){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 l}}function r(l){return l.charAt(0)==="^"?l.substring(1):l}n.convertID=r;function i(l){return parseInt(l)}n.convertInt=i;function s(l){return BigInt(l)}n.convertBigint=s;function a(l){return new Date(l)}n.convertDate=a;function o(l){return Number(l)}n.convertNumber=o;function c(l){return l.toLowerCase()==="true"}n.convertBoolean=c})(Ve||(Ve={}));var rn={},hr={};Object.defineProperty(hr,"__esModule",{value:!0});let ci;function li(){if(ci===void 0)throw new Error("No runtime abstraction layer installed");return ci}(function(n){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");ci=t}n.install=e})(li||(li={}));hr.default=li;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.stringArray=se.array=se.func=se.error=se.number=se.string=se.boolean=void 0;function Up(n){return n===!0||n===!1}se.boolean=Up;function sl(n){return typeof n=="string"||n instanceof String}se.string=sl;function Bp(n){return typeof n=="number"||n instanceof Number}se.number=Bp;function Wp(n){return n instanceof Error}se.error=Wp;function jp(n){return typeof n=="function"}se.func=jp;function al(n){return Array.isArray(n)}se.array=al;function Vp(n){return al(n)&&n.every(e=>sl(e))}se.stringArray=Vp;var Wt={};Object.defineProperty(Wt,"__esModule",{value:!0});Wt.Emitter=Wt.Event=void 0;const Kp=hr;var $a;(function(n){const e={dispose(){}};n.None=function(){return e}})($a||(Wt.Event=$a={}));class Hp{add(e,t=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(r)&&r.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let r=!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 r=!0;if(r)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];const t=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let s=0,a=r.length;s<a;s++)try{t.push(r[s].apply(i[s],e))}catch(o){(0,Kp.default)().console.error(o)}return t}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class pr{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,r)=>{this._callbacks||(this._callbacks=new Hp),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);const i={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),i.dispose=pr._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(r)&&r.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)}}Wt.Emitter=pr;pr._noop=function(){};var X;Object.defineProperty(rn,"__esModule",{value:!0});var ui=rn.CancellationTokenSource=X=rn.CancellationToken=void 0;const zp=hr,qp=se,di=Wt;var zn;(function(n){n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:di.Event.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:di.Event.None});function e(t){const r=t;return r&&(r===n.None||r===n.Cancelled||qp.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}n.is=e})(zn||(X=rn.CancellationToken=zn={}));const Yp=Object.freeze(function(n,e){const t=(0,zp.default)().timer.setTimeout(n.bind(e),0);return{dispose(){t.dispose()}}});class Ma{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?Yp:(this._emitter||(this._emitter=new di.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class Xp{get token(){return this._token||(this._token=new Ma),this._token}cancel(){this._token?this._token.cancel():this._token=zn.Cancelled}dispose(){this._token?this._token instanceof Ma&&this._token.dispose():this._token=zn.None}}ui=rn.CancellationTokenSource=Xp;function Jp(){return new Promise(n=>{typeof setImmediate>"u"?setTimeout(n,0):setImmediate(n)})}let Da=0,Qp=10;const qn=Symbol("OperationCancelled");function Ui(n){return n===qn}async function be(n){if(n===X.None)return;const e=Date.now();if(e-Da>=Qp&&(Da=e,await Jp()),n.isCancellationRequested)throw qn}class Bi{constructor(){this.promise=new Promise((e,t)=>{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}}class sn{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,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){const t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(const r of e)if(sn.isIncremental(r)){const i=cl(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),c=Math.max(i.end.line,0);let l=this._lineOffsets;const u=Fa(r.text,!1,s);if(c-o===u.length)for(let f=0,h=u.length;f<h;f++)l[f+o+1]=u[f];else u.length<1e4?l.splice(o+1,c-o,...u):this._lineOffsets=l=l.slice(0,o+1).concat(u,l.slice(c+1));const d=r.text.length-(a-s);if(d!==0)for(let f=o+1+u.length,h=l.length;f<h;f++)l[f]=l[f]+d}else if(sn.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Fa(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let r=0,i=t.length;if(i===0)return{line:0,character:e};for(;r<i;){const a=Math.floor((r+i)/2);t[a]>e?i=a:r=a+1}const s=r-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const r=t[e.line];if(e.character<=0)return r;const i=e.line+1<t.length?t[e.line+1]:this._content.length,s=Math.min(r+e.character,i);return this.ensureBeforeEOL(s,r)}ensureBeforeEOL(e,t){for(;e>t&&ol(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}}var fi;(function(n){function e(i,s,a,o){return new sn(i,s,a,o)}n.create=e;function t(i,s,a){if(i instanceof sn)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}n.update=t;function r(i,s){const a=i.getText(),o=hi(s.map(Zp),(u,d)=>{const f=u.range.start.line-d.range.start.line;return f===0?u.range.start.character-d.range.start.character:f});let c=0;const l=[];for(const u of o){const d=i.offsetAt(u.range.start);if(d<c)throw new Error("Overlapping edit");d>c&&l.push(a.substring(c,d)),u.newText.length&&l.push(u.newText),c=i.offsetAt(u.range.end)}return l.push(a.substr(c)),l.join("")}n.applyEdits=r})(fi||(fi={}));function hi(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);hi(r,e),hi(i,e);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)e(r[s],i[a])<=0?n[o++]=r[s++]:n[o++]=i[a++];for(;s<r.length;)n[o++]=r[s++];for(;a<i.length;)n[o++]=i[a++];return n}function Fa(n,e,t=0){const r=e?[t]:[];for(let i=0;i<n.length;i++){const s=n.charCodeAt(i);ol(s)&&(s===13&&i+1<n.length&&n.charCodeAt(i+1)===10&&i++,r.push(t+i+1))}return r}function ol(n){return n===13||n===10}function cl(n){const e=n.start,t=n.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function Zp(n){const e=cl(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var ll;(()=>{var n={470:i=>{function s(c){if(typeof c!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(c))}function a(c,l){for(var u,d="",f=0,h=-1,m=0,g=0;g<=c.length;++g){if(g<c.length)u=c.charCodeAt(g);else{if(u===47)break;u=47}if(u===47){if(!(h===g-1||m===1))if(h!==g-1&&m===2){if(d.length<2||f!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",f=0):f=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),h=g,m=0;continue}}else if(d.length===2||d.length===1){d="",f=0,h=g,m=0;continue}}l&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+c.slice(h+1,g):d=c.slice(h+1,g),f=g-h-1;h=g,m=0}else u===46&&m!==-1?++m:m=-1}return d}var o={resolve:function(){for(var c,l="",u=!1,d=arguments.length-1;d>=-1&&!u;d--){var f;d>=0?f=arguments[d]:(c===void 0&&(c=process.cwd()),f=c),s(f),f.length!==0&&(l=f+"/"+l,u=f.charCodeAt(0)===47)}return l=a(l,!u),u?l.length>0?"/"+l:"/":l.length>0?l:"."},normalize:function(c){if(s(c),c.length===0)return".";var l=c.charCodeAt(0)===47,u=c.charCodeAt(c.length-1)===47;return(c=a(c,!l)).length!==0||l||(c="."),c.length>0&&u&&(c+="/"),l?"/"+c:c},isAbsolute:function(c){return s(c),c.length>0&&c.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var c,l=0;l<arguments.length;++l){var u=arguments[l];s(u),u.length>0&&(c===void 0?c=u:c+="/"+u)}return c===void 0?".":o.normalize(c)},relative:function(c,l){if(s(c),s(l),c===l||(c=o.resolve(c))===(l=o.resolve(l)))return"";for(var u=1;u<c.length&&c.charCodeAt(u)===47;++u);for(var d=c.length,f=d-u,h=1;h<l.length&&l.charCodeAt(h)===47;++h);for(var m=l.length-h,g=f<m?f:m,v=-1,y=0;y<=g;++y){if(y===g){if(m>g){if(l.charCodeAt(h+y)===47)return l.slice(h+y+1);if(y===0)return l.slice(h+y)}else f>g&&(c.charCodeAt(u+y)===47?v=y:y===0&&(v=0));break}var A=c.charCodeAt(u+y);if(A!==l.charCodeAt(h+y))break;A===47&&(v=y)}var E="";for(y=u+v+1;y<=d;++y)y!==d&&c.charCodeAt(y)!==47||(E.length===0?E+="..":E+="/..");return E.length>0?E+l.slice(h+v):(h+=v,l.charCodeAt(h)===47&&++h,l.slice(h))},_makeLong:function(c){return c},dirname:function(c){if(s(c),c.length===0)return".";for(var l=c.charCodeAt(0),u=l===47,d=-1,f=!0,h=c.length-1;h>=1;--h)if((l=c.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?u?"/":".":u&&d===1?"//":c.slice(0,d)},basename:function(c,l){if(l!==void 0&&typeof l!="string")throw new TypeError('"ext" argument must be a string');s(c);var u,d=0,f=-1,h=!0;if(l!==void 0&&l.length>0&&l.length<=c.length){if(l.length===c.length&&l===c)return"";var m=l.length-1,g=-1;for(u=c.length-1;u>=0;--u){var v=c.charCodeAt(u);if(v===47){if(!h){d=u+1;break}}else g===-1&&(h=!1,g=u+1),m>=0&&(v===l.charCodeAt(m)?--m==-1&&(f=u):(m=-1,f=g))}return d===f?f=g:f===-1&&(f=c.length),c.slice(d,f)}for(u=c.length-1;u>=0;--u)if(c.charCodeAt(u)===47){if(!h){d=u+1;break}}else f===-1&&(h=!1,f=u+1);return f===-1?"":c.slice(d,f)},extname:function(c){s(c);for(var l=-1,u=0,d=-1,f=!0,h=0,m=c.length-1;m>=0;--m){var g=c.charCodeAt(m);if(g!==47)d===-1&&(f=!1,d=m+1),g===46?l===-1?l=m:h!==1&&(h=1):l!==-1&&(h=-1);else if(!f){u=m+1;break}}return l===-1||d===-1||h===0||h===1&&l===d-1&&l===u+1?"":c.slice(l,d)},format:function(c){if(c===null||typeof c!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof c);return function(l,u){var d=u.dir||u.root,f=u.base||(u.name||"")+(u.ext||"");return d?d===u.root?d+f:d+"/"+f:f}(0,c)},parse:function(c){s(c);var l={root:"",dir:"",base:"",ext:"",name:""};if(c.length===0)return l;var u,d=c.charCodeAt(0),f=d===47;f?(l.root="/",u=1):u=0;for(var h=-1,m=0,g=-1,v=!0,y=c.length-1,A=0;y>=u;--y)if((d=c.charCodeAt(y))!==47)g===-1&&(v=!1,g=y+1),d===46?h===-1?h=y:A!==1&&(A=1):h!==-1&&(A=-1);else if(!v){m=y+1;break}return h===-1||g===-1||A===0||A===1&&h===g-1&&h===m+1?g!==-1&&(l.base=l.name=m===0&&f?c.slice(1,g):c.slice(m,g)):(m===0&&f?(l.name=c.slice(1,h),l.base=c.slice(1,g)):(l.name=c.slice(m,h),l.base=c.slice(m,g)),l.ext=c.slice(h,g)),m>0?l.dir=c.slice(0,m-1):f&&(l.dir="/"),l},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 n[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<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>f,Utils:()=>Se}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function c(k,T){if(!k.scheme&&T)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${k.authority}", path: "${k.path}", query: "${k.query}", fragment: "${k.fragment}"}`);if(k.scheme&&!s.test(k.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(k.path){if(k.authority){if(!a.test(k.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(k.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const l="",u="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{constructor(T,R,I,O,b,L=!1){Je(this,"scheme");Je(this,"authority");Je(this,"path");Je(this,"query");Je(this,"fragment");typeof T=="object"?(this.scheme=T.scheme||l,this.authority=T.authority||l,this.path=T.path||l,this.query=T.query||l,this.fragment=T.fragment||l):(this.scheme=function(ye,z){return ye||z?ye:"file"}(T,L),this.authority=R||l,this.path=function(ye,z){switch(ye){case"https":case"http":case"file":z?z[0]!==u&&(z=u+z):z=u}return z}(this.scheme,I||l),this.query=O||l,this.fragment=b||l,c(this,L))}static isUri(T){return T instanceof f||!!T&&typeof T.authority=="string"&&typeof T.fragment=="string"&&typeof T.path=="string"&&typeof T.query=="string"&&typeof T.scheme=="string"&&typeof T.fsPath=="string"&&typeof T.with=="function"&&typeof T.toString=="function"}get fsPath(){return A(this)}with(T){if(!T)return this;let{scheme:R,authority:I,path:O,query:b,fragment:L}=T;return R===void 0?R=this.scheme:R===null&&(R=l),I===void 0?I=this.authority:I===null&&(I=l),O===void 0?O=this.path:O===null&&(O=l),b===void 0?b=this.query:b===null&&(b=l),L===void 0?L=this.fragment:L===null&&(L=l),R===this.scheme&&I===this.authority&&O===this.path&&b===this.query&&L===this.fragment?this:new m(R,I,O,b,L)}static parse(T,R=!1){const I=d.exec(T);return I?new m(I[2]||l,ne(I[4]||l),ne(I[5]||l),ne(I[7]||l),ne(I[9]||l),R):new m(l,l,l,l,l)}static file(T){let R=l;if(i&&(T=T.replace(/\\/g,u)),T[0]===u&&T[1]===u){const I=T.indexOf(u,2);I===-1?(R=T.substring(2),T=u):(R=T.substring(2,I),T=T.substring(I)||u)}return new m("file",R,T,l,l)}static from(T){const R=new m(T.scheme,T.authority,T.path,T.query,T.fragment);return c(R,!0),R}toString(T=!1){return E(this,T)}toJSON(){return this}static revive(T){if(T){if(T instanceof f)return T;{const R=new m(T);return R._formatted=T.external,R._fsPath=T._sep===h?T.fsPath:null,R}}return T}}const h=i?1:void 0;class m extends f{constructor(){super(...arguments);Je(this,"_formatted",null);Je(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=A(this)),this._fsPath}toString(R=!1){return R?E(this,!0):(this._formatted||(this._formatted=E(this,!1)),this._formatted)}toJSON(){const R={$mid:1};return this._fsPath&&(R.fsPath=this._fsPath,R._sep=h),this._formatted&&(R.external=this._formatted),this.path&&(R.path=this.path),this.scheme&&(R.scheme=this.scheme),this.authority&&(R.authority=this.authority),this.query&&(R.query=this.query),this.fragment&&(R.fragment=this.fragment),R}}const 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(k,T,R){let I,O=-1;for(let b=0;b<k.length;b++){const L=k.charCodeAt(b);if(L>=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||T&&L===47||R&&L===91||R&&L===93||R&&L===58)O!==-1&&(I+=encodeURIComponent(k.substring(O,b)),O=-1),I!==void 0&&(I+=k.charAt(b));else{I===void 0&&(I=k.substr(0,b));const ye=g[L];ye!==void 0?(O!==-1&&(I+=encodeURIComponent(k.substring(O,b)),O=-1),I+=ye):O===-1&&(O=b)}}return O!==-1&&(I+=encodeURIComponent(k.substring(O))),I!==void 0?I:k}function y(k){let T;for(let R=0;R<k.length;R++){const I=k.charCodeAt(R);I===35||I===63?(T===void 0&&(T=k.substr(0,R)),T+=g[I]):T!==void 0&&(T+=k[R])}return T!==void 0?T:k}function A(k,T){let R;return R=k.authority&&k.path.length>1&&k.scheme==="file"?`//${k.authority}${k.path}`:k.path.charCodeAt(0)===47&&(k.path.charCodeAt(1)>=65&&k.path.charCodeAt(1)<=90||k.path.charCodeAt(1)>=97&&k.path.charCodeAt(1)<=122)&&k.path.charCodeAt(2)===58?k.path[1].toLowerCase()+k.path.substr(2):k.path,i&&(R=R.replace(/\//g,"\\")),R}function E(k,T){const R=T?y:v;let I="",{scheme:O,authority:b,path:L,query:ye,fragment:z}=k;if(O&&(I+=O,I+=":"),(b||O==="file")&&(I+=u,I+=u),b){let W=b.indexOf("@");if(W!==-1){const at=b.substr(0,W);b=b.substr(W+1),W=at.lastIndexOf(":"),W===-1?I+=R(at,!1,!1):(I+=R(at.substr(0,W),!1,!1),I+=":",I+=R(at.substr(W+1),!1,!0)),I+="@"}b=b.toLowerCase(),W=b.lastIndexOf(":"),W===-1?I+=R(b,!1,!0):(I+=R(b.substr(0,W),!1,!0),I+=b.substr(W))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){const W=L.charCodeAt(1);W>=65&&W<=90&&(L=`/${String.fromCharCode(W+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){const W=L.charCodeAt(0);W>=65&&W<=90&&(L=`${String.fromCharCode(W+32)}:${L.substr(2)}`)}I+=R(L,!0,!1)}return ye&&(I+="?",I+=R(ye,!1,!1)),z&&(I+="#",I+=T?z:v(z,!1,!1)),I}function N(k){try{return decodeURIComponent(k)}catch{return k.length>3?k.substr(0,3)+N(k.substr(3)):k}}const F=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ne(k){return k.match(F)?k.replace(F,T=>N(T)):k}var _e=t(470);const ge=_e.posix||_e,$e="/";var Se;(function(k){k.joinPath=function(T,...R){return T.with({path:ge.join(T.path,...R)})},k.resolvePath=function(T,...R){let I=T.path,O=!1;I[0]!==$e&&(I=$e+I,O=!0);let b=ge.resolve(I,...R);return O&&b[0]===$e&&!T.authority&&(b=b.substring(1)),T.with({path:b})},k.dirname=function(T){if(T.path.length===0||T.path===$e)return T;let R=ge.dirname(T.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),T.with({path:R})},k.basename=function(T){return ge.basename(T.path)},k.extname=function(T){return ge.extname(T.path)}})(Se||(Se={}))})(),ll=r})();const{URI:jt,Utils:Jt}=ll;var rt;(function(n){n.basename=Jt.basename,n.dirname=Jt.dirname,n.extname=Jt.extname,n.joinPath=Jt.joinPath,n.resolvePath=Jt.resolvePath;function e(r,i){return(r==null?void 0:r.toString())===(i==null?void 0:i.toString())}n.equals=e;function t(r,i){const s=typeof r=="string"?r:r.path,a=typeof i=="string"?i:i.path,o=s.split("/").filter(f=>f.length>0),c=a.split("/").filter(f=>f.length>0);let l=0;for(;l<o.length&&o[l]===c[l];l++);const u="../".repeat(o.length-l),d=c.slice(l).join("/");return u+d}n.relative=t})(rt||(rt={}));var U;(function(n){n[n.Changed=0]="Changed",n[n.Parsed=1]="Parsed",n[n.IndexedContent=2]="IndexedContent",n[n.ComputedScopes=3]="ComputedScopes",n[n.Linked=4]="Linked",n[n.IndexedReferences=5]="IndexedReferences",n[n.Validated=6]="Validated"})(U||(U={}));class em{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=X.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??jt.parse(e.uri),r?this.createAsync(t,e,r):this.create(t,e)}fromString(e,t,r){return r?this.createAsync(t,e,r):this.create(t,e)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t){if(typeof t=="string"){const r=this.parse(e,t);return this.createLangiumDocument(r,e,void 0,t)}else if("$model"in t){const r={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(r,e)}else{const r=this.parse(e,t.getText());return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,r){if(typeof t=="string"){const i=await this.parseAsync(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else{const i=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,r,i){let s;if(r)s={parseResult:e,uri:t,state:U.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:U.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=s,s}async update(e,t){var r,i;const s=(r=e.parseResult.value.$cstNode)===null||r===void 0?void 0:r.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{const c=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:c})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=U.Parsed,e}parse(e,t){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){const r=this.serviceRegistry;let i;return()=>i??(i=fi.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class tm{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return Q(this.documentMap.values())}addDocument(e){const 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){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=U.Changed,r.precomputedScopes=void 0,r.references=[],r.diagnostics=void 0),r}deleteDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=U.Changed,this.documentMap.delete(t)),r}}class nm{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=X.None){for(const r of At(e.parseResult.value))await be(t),qo(r).forEach(i=>this.doLink(i,e))}doLink(e,t){const r=e.reference;if(r._ref===void 0)try{const i=this.getCandidate(e);if(Rn(i))r._ref=i;else if(r._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){const s=this.loadAstNode(i);r._ref=s??this.createLinkingError(e,i)}}catch(i){r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${i}`})}t.references.push(r)}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,t,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o;if(ae(this._ref))return this._ref;if(Eu(this._nodeDescription)){const c=s.loadAstNode(this._nodeDescription);this._ref=c??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){const c=s.getLinkedNode({reference:a,container:e,property:t});if(c.error&&Fe(e).state<U.ComputedScopes)return;this._ref=(o=c.node)!==null&&o!==void 0?o:c.error,this._nodeDescription=c.descr}return ae(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return Rn(this._ref)?this._ref:void 0}};return a}getLinkedNode(e){try{const t=this.getCandidate(e);if(Rn(t))return{error:t};const r=this.loadAstNode(t);return r?{node:r,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;const t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const r=Fe(e.container);r.state<U.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);const 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 rm(n){return typeof n.name=="string"}class im{getName(e){if(rm(e))return e.name}getNameNode(e){return Zo(e.$cstNode,"name")}}class sm{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=Ad(e),r=e.astNode;if(t&&r){const i=r[t.feature];if(De(i))return i.ref;if(Array.isArray(i)){for(const s of i)if(De(s)&&s.$refNode&&s.$refNode.offset<=e.offset&&s.$refNode.end>=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||Ru(e,i)))return r}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t!=null&&t.$cstNode){const r=this.nameProvider.getNameNode(t);return r??t.$cstNode}}findReferences(e,t){const r=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>rt.equals(s.sourceUri,t.documentUri))),r.push(...i),Q(r)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const r=Fe(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:_n(t),local:!0}}}}class Wi{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return br.sum(Q(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(t);if(i>=0)return r.length===1?this.map.delete(e):r.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);{const r=this.map.get(e);return r?r.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,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return Q(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return Q(this.map.keys())}values(){return Q(this.map.values()).flat()}entriesGroupedByKey(){return Q(this.map.entries())}}class Ga{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}}class am{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=X.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=ki,i=X.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await be(i),this.exportNode(a,s,t);return s}exportNode(e,t,r){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,t=X.None){const r=e.parseResult.value,i=new Wi;for(const s of on(r))await be(t),this.processNode(s,e,i);return i}processNode(e,t,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,t))}}}class Ua{constructor(e,t,r){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class om{constructor(e,t,r){var i;this.elements=new Map,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=Q(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class ul{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")}}class cm extends ul{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){const r=t();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class lm extends ul{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(r){const s=r();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){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class um extends cm{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class dm{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 um(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=Fe(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(Q(o).filter(c=>this.reflection.isSubtype(c.type,r))),a=a.$container}while(a)}let s=this.getGlobalScope(r,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,r){return new Ua(Q(e),t,r)}createScopeForNodes(e,t,r){const i=Q(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new Ua(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new om(this.indexManager.allElements(e)))}}function fm(n){return typeof n.$comment=="string"}function Ba(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class hm{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={}){const r=t==null?void 0:t.replacer,i=(a,o)=>this.replacer(a,o,t),s=r?(a,o)=>r(a,o,i):i;try{return this.currentDocument=Fe(e),JSON.stringify(e,s,t==null?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t={}){const r=JSON.parse(e);return this.linkNode(r,r,t),r}replacer(e,t,{refText:r,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var c,l,u,d;if(!this.ignoreProperties.has(e))if(De(t)){const f=t.ref,h=r?t.$refText:void 0;if(f){const m=Fe(f);let g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,t):g=m.uri.toString());const v=this.astNodeLocator.getAstNodePath(f);return{$ref:`${g}#${v}`,$refText:h}}else return{$error:(l=(c=t.error)===null||c===void 0?void 0:c.message)!==null&&l!==void 0?l:"Could not resolve reference",$refText:h}}else if(ae(t)){let f;if(s&&(f=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&(f!=null&&f.$textRegion)&&(f.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString())),i&&!e&&(f??(f=Object.assign({},t)),f.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){f??(f=Object.assign({},t));const h=this.commentProvider.getComment(t);h&&(f.$comment=h.replace(/\r/g,""))}return f??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=t(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=Td(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,r,i,s,a){for(const[c,l]of Object.entries(e))if(Array.isArray(l))for(let u=0;u<l.length;u++){const d=l[u];Ba(d)?l[u]=this.reviveReference(e,c,t,d,r):ae(d)&&this.linkNode(d,t,r,e,c,u)}else Ba(l)?e[c]=this.reviveReference(e,c,t,l,r):ae(l)&&this.linkNode(l,t,r,e,c);const o=e;o.$container=i,o.$containerProperty=s,o.$containerIndex=a}reviveReference(e,t,r,i,s){let a=i.$refText,o=i.$error;if(i.$ref){const c=this.getRefNode(r,i.$ref,s.uriConverter);if(ae(c))return a||(a=this.nameProvider.getName(c)),{$refText:a??"",ref:c};o=c}if(o){const c={$refText:a??""};return c.error={container:e,property:t,message:o,reference:c},c}else return}getRefNode(e,t,r){try{const i=t.indexOf("#");if(i===0){const c=this.astNodeLocator.getAstNode(e,t.substring(1));return c||"Could not resolve path: "+t}if(i<0){const c=r?r(t):jt.parse(t),l=this.langiumDocuments.getDocument(c);return l?l.parseResult.value:"Could not find document for URI: "+t}const s=r?r(t.substring(0,i)):jt.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;const o=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(i+1));return o||"Could not resolve URI: "+t}catch(i){return String(i)}}}class pm{register(e){if(!this.singleton&&!this.map){this.singleton=e;return}if(!this.map&&(this.map={},this.singleton)){for(const t of this.singleton.LanguageMetaData.fileExtensions)this.map[t]=this.singleton;this.singleton=void 0}for(const 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.");const t=rt.extname(e),r=this.map[t];if(!r)throw new Error(`The service registry contains no services for the extension '${t}'.`);return r}get all(){return this.singleton!==void 0?[this.singleton]:this.map!==void 0?Object.values(this.map):[]}}function Wa(n){return{code:n}}var Yn;(function(n){n.all=["fast","slow","built-in"]})(Yn||(Yn={}));class mm{constructor(e){this.entries=new Wi,this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[i,s]of Object.entries(e)){const a=s;if(Array.isArray(a))for(const o of a){const c={check:this.wrapValidationException(o,t),category:r};this.addEntry(i,c)}else if(typeof a=="function"){const o={check:this.wrapValidationException(a,t),category:r};this.addEntry(i,o)}}}wrapValidationException(e,t){return async(r,i,s)=>{try{await e.call(t,r,i,s)}catch(a){if(Ui(a))throw a;console.error("An error occurred during validation:",a);const 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:r})}}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=Q(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(i=>t.includes(i.category))),r.map(i=>i.check)}}class gm{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=X.None){const i=e.parseResult,s=[];if(await be(r),(!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)===Qe.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)===Qe.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)===Qe.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,r))}catch(a){if(Ui(a))throw a;console.error("An error occurred during validation:",a)}return await be(r),s}processLexingErrors(e,t,r){for(const i of e.lexerErrors){const s={severity:_r("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:Wa(Qe.LexingError),source:this.getSource()};t.push(s)}}processParsingErrors(e,t,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=Pr(i.token);if(s){const a={severity:_r("error"),range:s,message:i.message,data:Wa(Qe.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,r){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:Qe.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,r=X.None){const i=[],s=(a,o,c)=>{i.push(this.toDiagnostic(a,o,c))};return await Promise.all(At(e).map(async a=>{await be(r);const o=this.validationRegistry.getChecks(a.$type,t.categories);for(const c of o)await c(a,s,r)})),i}toDiagnostic(e,t,r){return{message:t,range:ym(r),severity:_r(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function ym(n){if(n.range)return n.range;let e;return typeof n.property=="string"?e=Zo(n.node.$cstNode,n.property,n.index):typeof n.keyword=="string"&&(e=Ed(n.node.$cstNode,n.keyword,n.index)),e??(e=n.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function _r(n){switch(n){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+n)}}var Qe;(function(n){n.LexingError="lexing-error",n.ParsingError="parsing-error",n.LinkingError="linking-error"})(Qe||(Qe={}));class Tm{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r=Fe(e)){t??(t=this.nameProvider.getName(e));const i=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${i} has no name.`);let s;const a=()=>{var o;return s??(s=_n((o=this.nameProvider.getNameNode(e))!==null&&o!==void 0?o:e.$cstNode))};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:_n(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class Em{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=X.None){const r=[],i=e.parseResult.value;for(const s of At(i))await be(t),qo(s).filter(a=>!Rn(a)).forEach(a=>{const o=this.createDescription(a);o&&r.push(o)});return r}createDescription(e){const t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;const i=Fe(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:_n(r),local:rt.equals(t.documentUri,i)}}}class vm{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return 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;const a=s.indexOf(this.indexSeparator);if(a>0){const o=s.substring(0,a),c=parseInt(s.substring(a+1)),l=i[o];return l==null?void 0:l[c]}return i[s]},e)}}class Am{constructor(e){this._ready=new Bi,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=(r=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[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;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}}var Xn;(function(n){function e(t){return{dispose:async()=>await t()}}n.create=e})(Xn||(Xn={}));class Rm{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Wi,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=U.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=X.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===U.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=U.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const c=this.buildState.get(o),l=(i=c==null?void 0:c.result)===null||i===void 0?void 0:i.validationChecks;if(l){const d=((s=t.validation.categories)!==null&&s!==void 0?s:Yn.all).filter(f=>!l.includes(f));d.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:d})},result:c.result}),a.state=U.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=U.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=X.None){this.currentState=U.Changed;for(const a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const c=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);c.state=U.Changed,this.langiumDocuments.addDocument(c)}this.buildState.delete(a.toString())}const i=Q(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,U.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await be(r);const s=this.langiumDocuments.all.filter(a=>{var o;return a.state<U.Linked||!(!((o=this.buildState.get(a.uri.toString()))===null||o===void 0)&&o.completed)}).toArray();await this.buildDocuments(s,this.updateBuildOptions,r)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}shouldRelink(e,t){return e.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Xn.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,U.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,U.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,U.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,U.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,U.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,U.Validated,r,s=>this.validate(s,r));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const r of e){const i=r.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,r,i){const s=e.filter(a=>a.state<t);for(const a of s)await be(r),await i(a),a.state=t;await this.notifyBuildPhase(s,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Xn.create(()=>{this.buildPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r??(r=X.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(qn):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),c.dispose(),i){const l=this.langiumDocuments.getDocument(i);s(l==null?void 0:l.uri)}else s(void 0)}),c=r.onCancellationRequested(()=>{o.dispose(),c.dispose(),a(qn)})})}async notifyBuildPhase(e,t,r){if(e.length===0)return;const i=this.buildPhaseListeners.get(t);for(const s of i)await be(r),await s(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,c=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...c):e.diagnostics=c;const l=this.buildState.get(e.uri.toString());if(l){(r=l.result)!==null&&r!==void 0||(l.result={});const u=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:Yn.all;l.result.validationChecks?l.result.validationChecks.push(...u):l.result.validationChecks=[...u]}}getBuildOptions(e){var t,r;return(r=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&r!==void 0?r:{}}}class km{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new lm,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=Fe(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{rt.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),Q(i)}allElements(e,t){let r=Q(this.symbolIndex.keys());return t&&(r=r.filter(i=>!t||t.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var r;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))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=X.None){const 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=X.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}}class Sm{constructor(e){this.initialBuildOptions={},this._ready=new Bi,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 r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],t)})}async initializeWorkspace(e,t=X.None){const r=await this.performStartup(e);await be(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.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(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return jt.parse(e.uri)}async traverseFolder(e,t,r,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,r)){if(a.isDirectory)await this.traverseFolder(e,a.uri,r,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,r){const i=rt.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=rt.extname(t.uri);return r.includes(s)}return!1}}class Im{constructor(e){const t=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const r=ja(t)?Object.values(t):t;this.chevrotainLexer=new de(r,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var t;const r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:(t=r.groups.hidden)!==null&&t!==void 0?t:[]}}toTokenTypeDictionary(e){if(ja(e))return e;const t=dl(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function Nm(n){return Array.isArray(n)&&(n.length===0||"name"in n[0])}function dl(n){return n&&"modes"in n&&"defaultMode"in n}function ja(n){return!Nm(n)&&!dl(n)}function xm(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=$.create(0,0));const s=fl(n),a=ji(r),o=wm({lines:s,position:i,options:a});return $m({index:0,tokens:o,position:i})}function Cm(n,e){const t=ji(e),r=fl(n);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],a=t.start,o=t.end;return!!(a!=null&&a.exec(i))&&!!(o!=null&&o.exec(s))}function fl(n){let e="";return typeof n=="string"?e=n:e=n.text,e.split(od)}const Va=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,_m=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function wm(n){var e,t,r;const i=[];let s=n.position.line,a=n.position.character;for(let o=0;o<n.lines.length;o++){const c=o===0,l=o===n.lines.length-1;let u=n.lines[o],d=0;if(c&&n.options.start){const h=(e=n.options.start)===null||e===void 0?void 0:e.exec(u);h&&(d=h.index+h[0].length)}else{const h=(t=n.options.line)===null||t===void 0?void 0:t.exec(u);h&&(d=h.index+h[0].length)}if(l){const h=(r=n.options.end)===null||r===void 0?void 0:r.exec(u);h&&(u=u.substring(0,h.index))}if(u=u.substring(0,Pm(u)),pi(u,d)>=u.length){if(i.length>0){const h=$.create(s,a);i.push({type:"break",content:"",range:P.create(h,h)})}}else{Va.lastIndex=d;const h=Va.exec(u);if(h){const m=h[0],g=h[1],v=$.create(s,a+d),y=$.create(s,a+d+m.length);i.push({type:"tag",content:g,range:P.create(v,y)}),d+=m.length,d=pi(u,d)}if(d<u.length){const m=u.substring(d),g=Array.from(m.matchAll(_m));i.push(...Lm(g,m,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function Lm(n,e,t,r){const i=[];if(n.length===0){const s=$.create(t,r),a=$.create(t,r+e.length);i.push({type:"text",content:e,range:P.create(s,a)})}else{let s=0;for(const o of n){const c=o.index,l=e.substring(s,c);l.length>0&&i.push({type:"text",content:e.substring(s,c),range:P.create($.create(t,s+r),$.create(t,c+r))});let u=l.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:P.create($.create(t,s+u+r),$.create(t,s+u+d.length+r))}),u+=d.length,o.length===4){u+=o[2].length;const f=o[3];i.push({type:"text",content:f,range:P.create($.create(t,s+u+r),$.create(t,s+u+f.length+r))})}else i.push({type:"text",content:"",range:P.create($.create(t,s+u+r),$.create(t,s+u+r))});s=c+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:P.create($.create(t,s+r),$.create(t,s+r+a.length))})}return i}const bm=/\S/,Om=/\s*$/;function pi(n,e){const t=n.substring(e).match(bm);return t?e+t.index:n.length}function Pm(n){const e=n.match(Om);if(e&&typeof e.index=="number")return e.index}function $m(n){var e,t,r,i;const s=$.create(n.position.line,n.position.character);if(n.tokens.length===0)return new Ka([],P.create(s,s));const a=[];for(;n.index<n.tokens.length;){const l=Mm(n,a[a.length-1]);l&&a.push(l)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,c=(i=(r=a[a.length-1])===null||r===void 0?void 0:r.range.end)!==null&&i!==void 0?i:s;return new Ka(a,P.create(o,c))}function Mm(n,e){const t=n.tokens[n.index];if(t.type==="tag")return pl(n,!1);if(t.type==="text"||t.type==="inline-tag")return hl(n);Dm(t,e),n.index++}function Dm(n,e){if(e){const t=new gl("",n.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function hl(n){let e=n.tokens[n.index];const t=e;let r=e;const i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(Fm(n)),r=e,e=n.tokens[n.index];return new mi(i,P.create(t.range.start,r.range.end))}function Fm(n){return n.tokens[n.index].type==="inline-tag"?pl(n,!0):ml(n)}function pl(n,e){const t=n.tokens[n.index++],r=t.content.substring(1),i=n.tokens[n.index];if((i==null?void 0:i.type)==="text")if(e){const s=ml(n);return new Lr(r,new mi([s],s.range),e,P.create(t.range.start,s.range.end))}else{const s=hl(n);return new Lr(r,s,e,P.create(t.range.start,s.range.end))}else{const s=t.range;return new Lr(r,new mi([],s),e,s)}}function ml(n){const e=n.tokens[n.index++];return new gl(e.content,e.range)}function ji(n){if(!n)return ji({start:"/**",end:"*/",line:"*"});const{start:e,end:t,line:r}=n;return{start:wr(e,!0),end:wr(t,!1),line:wr(r,!0)}}function wr(n,e){if(typeof n=="string"||typeof n=="object"){const t=typeof n=="string"?ir(n):n.source;return e?new RegExp(`^\\s*${t}`):new RegExp(`\\s*${t}\\s*$`)}else return n}class Ka{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(const t of this.elements)if(e.length===0)e=t.toString();else{const r=t.toString();e+=Ha(e)+r}return e.trim()}toMarkdown(e){let t="";for(const r of this.elements)if(t.length===0)t=r.toMarkdown(e);else{const i=r.toMarkdown(e);t+=Ha(t)+i}return t.trim()}}class Lr{constructor(e,t,r,i){this.name=e,this.content=t,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const 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,r;return(r=(t=e==null?void 0:e.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const s=Gm(this.name,t,e??{});if(typeof s=="string")return s}let r="";(e==null?void 0:e.tag)==="italic"||(e==null?void 0:e.tag)===void 0?r="*":(e==null?void 0:e.tag)==="bold"?r="**":(e==null?void 0:e.tag)==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i}${t}`:this.content.inlines.length>1&&(i=`${i}
${t}`),this.inline?`{${i}}`:i}}function Gm(n,e,t){var r,i;if(n==="linkplain"||n==="linkcode"||n==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const c=pi(e,s);a=e.substring(c),e=e.substring(0,s)}return(n==="linkcode"||n==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(r=t.renderLink)===null||r===void 0?void 0:r.call(t,e,a))!==null&&i!==void 0?i:Um(e,a)}}function Um(n,e){try{return jt.parse(n,!0),`[${e}](${n})`}catch{return n}}class mi{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const r=this.inlines[t],i=this.inlines[t+1];e+=r.toString(),i&&i.range.start.line>r.range.start.line&&(e+=`
`)}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){const i=this.inlines[r],s=this.inlines[r+1];t+=i.toMarkdown(e),s&&s.range.start.line>i.range.start.line&&(t+=`
`)}return t}}class gl{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function Ha(n){return n.endsWith(`
`)?`
`:`
`}class Bm{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&Cm(t))return xm(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,t,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,c=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${c.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const i=Fe(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(c=>c.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}}class Wm{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return fm(e)?e.$comment:(t=Nu(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class jm{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}}class Vm{constructor(){this.previousTokenSource=new ui,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=new ui;return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r){const i=new Bi,s={action:t,deferred:i,cancellationToken:r??X.None};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const 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:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));r.resolve(s)}catch(s){Ui(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Km{constructor(e){this.grammarElementIdMap=new Ga,this.tokenTypeIdMap=new Ga,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){const t=new Map,r=new Map;for(const i of At(e))t.set(i,{});if(e.$cstNode)for(const i of Or(e.$cstNode))r.set(i,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ae(o)?a.push(this.dehydrateAstNode(o,t)):De(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ae(s)?r[i]=this.dehydrateAstNode(s,t):De(s)?r[i]=this.dehydrateReference(s,t):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,t){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){const r=t.cstNodes.get(e);return fo(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),Dt(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):uo(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){const t=new Map,r=new Map;for(const s of At(e))t.set(s,{});let i;if(e.$cstNode)for(const s of Or(e.$cstNode)){let a;"fullText"in s?(a=new Yc(s.fullText),i=a):"content"in s?a=new Fi:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(r.set(s,a),a.root=i)}return{astNodes:t,cstNodes:r}}hydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ae(o)?a.push(this.setParent(this.hydrateAstNode(o,t),r)):De(o)?a.push(this.hydrateReference(o,r,i,t)):a.push(o)}else ae(s)?r[i]=this.setParent(this.hydrateAstNode(s,t),r):De(s)?r[i]=this.hydrateReference(s,r,i,t):s!==void 0&&(r[i]=s);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,i){return this.linker.buildReference(t,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){const i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),Dt(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,c=e.endColumn,l=e.hidden;return new si(r,i,{start:{line:s,character:a},end:{line:o,character:c}},t,l)}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();const t=this.grammarElementIdMap.getKey(e);if(t)return t;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(const t of At(this.grammar))_u(t)&&this.grammarElementIdMap.set(t,e++)}}function hn(n){return{documentation:{CommentProvider:e=>new Wm(e),DocumentationProvider:e=>new Bm(e)},parser:{AsyncParser:e=>new jm(e),GrammarConfig:e=>_d(e),LangiumParser:e=>Fp(e),CompletionParser:e=>Dp(e),ValueConverter:()=>new il,TokenBuilder:()=>new rl,Lexer:e=>new Im(e),ParserErrorMessageProvider:()=>new Qc},workspace:{AstNodeLocator:()=>new vm,AstNodeDescriptionProvider:e=>new Tm(e),ReferenceDescriptionProvider:e=>new Em(e)},references:{Linker:e=>new nm(e),NameProvider:()=>new im,ScopeProvider:e=>new dm(e),ScopeComputation:e=>new am(e),References:e=>new sm(e)},serializer:{Hydrator:e=>new Km(e),JsonSerializer:e=>new hm(e)},validation:{DocumentValidator:e=>new gm(e),ValidationRegistry:e=>new mm(e)},shared:()=>n.shared}}function pn(n){return{ServiceRegistry:()=>new pm,workspace:{LangiumDocuments:e=>new tm(e),LangiumDocumentFactory:e=>new em(e),DocumentBuilder:e=>new Rm(e),IndexManager:e=>new km(e),WorkspaceManager:e=>new Sm(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new Vm,ConfigurationProvider:e=>new Am(e)}}}var za;(function(n){n.merge=(e,t)=>Jn(Jn({},e),t)})(za||(za={}));function Ge(n,e,t,r,i,s,a,o,c){const l=[n,e,t,r,i,s,a,o,c].reduce(Jn,{});return yl(l)}const qa=Symbol("isProxy");function yl(n,e){const t=new Proxy({},{deleteProperty:()=>!1,get:(r,i)=>Xa(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>(Xa(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Reflect.ownKeys(n),qa]});return t[qa]=!0,t}const Ya=Symbol();function Xa(n,e,t,r){if(e in n){if(n[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:n[e]});if(n[e]===Ya)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return n[e]}else if(e in t){const i=t[e];n[e]=Ya;try{n[e]=typeof i=="function"?i(r):yl(i,r)}catch(s){throw n[e]=s instanceof Error?s:void 0,s}return n[e]}else return}function Jn(n,e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const i=n[t];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?n[t]=Jn(i,r):n[t]=r}}return n}class Hm{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const mn={fileSystemProvider:()=>new Hm},zm={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},qm={AstReflection:()=>new zo};function Ym(){const n=Ge(pn(mn),qm),e=Ge(hn({shared:n}),zm);return n.ServiceRegistry.register(e),e}function mr(n){var e;const t=Ym(),r=t.serializer.JsonSerializer.deserialize(n);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,jt.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Xm=Object.defineProperty,_=(n,e)=>Xm(n,"name",{value:e,configurable:!0}),Jm="Statement",Tl="Branch";function Qm(n){return Be.isInstance(n,Tl)}_(Qm,"isBranch");var Zm="Checkout",eg="CherryPicking",El="Commit";function tg(n){return Be.isInstance(n,El)}_(tg,"isCommit");var ng="Common";function rg(n){return Be.isInstance(n,ng)}_(rg,"isCommon");var vl="GitGraph";function ig(n){return Be.isInstance(n,vl)}_(ig,"isGitGraph");var sg="Info";function ag(n){return Be.isInstance(n,sg)}_(ag,"isInfo");var Al="Merge";function og(n){return Be.isInstance(n,Al)}_(og,"isMerge");var cg="Packet";function lg(n){return Be.isInstance(n,cg)}_(lg,"isPacket");var ug="PacketBlock";function dg(n){return Be.isInstance(n,ug)}_(dg,"isPacketBlock");var fg="Pie";function hg(n){return Be.isInstance(n,fg)}_(hg,"isPie");var pg="PieSection";function mg(n){return Be.isInstance(n,pg)}_(mg,"isPieSection");var gg="Direction",kt,Rl=(kt=class extends lo{getAllTypes(){return["Branch","Checkout","CherryPicking","Commit","Common","Direction","GitGraph","Info","Merge","Packet","PacketBlock","Pie","PieSection","Statement"]}computeIsSubtype(e,t){switch(e){case Tl:case Zm:case eg:case El:case Al:return this.isSubtype(Jm,t);case gg:return this.isSubtype(vl,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){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"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};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"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},_(kt,"MermaidAstReflection"),kt),Be=new Rl,Ja,yg=_(()=>Ja??(Ja=mr('{"$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"),Qa,Tg=_(()=>Qa??(Qa=mr(`{"$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"),Za,Eg=_(()=>Za??(Za=mr('{"$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"),eo,vg=_(()=>eo??(eo=mr(`{"$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"),Ag={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Rg={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},kg={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Sg={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},gr={AstReflection:_(()=>new Rl,"AstReflection")},Ig={Grammar:_(()=>yg(),"Grammar"),LanguageMetaData:_(()=>Ag,"LanguageMetaData"),parser:{}},Ng={Grammar:_(()=>Tg(),"Grammar"),LanguageMetaData:_(()=>Rg,"LanguageMetaData"),parser:{}},xg={Grammar:_(()=>Eg(),"Grammar"),LanguageMetaData:_(()=>kg,"LanguageMetaData"),parser:{}},Cg={Grammar:_(()=>vg(),"Grammar"),LanguageMetaData:_(()=>Sg,"LanguageMetaData"),parser:{}},_g=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,wg=/accTitle[\t ]*:([^\n\r]*)/,Lg=/title([\t ][^\n\r]*|)/,bg={ACC_DESCR:_g,ACC_TITLE:wg,TITLE:Lg},St,kl=(St=class extends il{runConverter(e,t,r){let i=this.runCommonConverter(e,t,r);return i===void 0&&(i=this.runCustomConverter(e,t,r)),i===void 0?super.runConverter(e,t,r):i}runCommonConverter(e,t,r){const i=bg[e.name];if(i===void 0)return;const 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,`
`)}}},_(St,"AbstractMermaidValueConverter"),St),It,Vi=(It=class extends kl{runCustomConverter(e,t,r){}},_(It,"CommonValueConverter"),It),Nt,gn=(Nt=class extends rl{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){const i=super.buildKeywordTokens(e,t,r);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},_(Nt,"AbstractMermaidTokenBuilder"),Nt),xt;xt=class extends gn{},_(xt,"CommonTokenBuilder");var Ct,Og=(Ct=class extends gn{constructor(){super(["gitGraph"])}},_(Ct,"GitGraphTokenBuilder"),Ct),Sl={parser:{TokenBuilder:_(()=>new Og,"TokenBuilder"),ValueConverter:_(()=>new Vi,"ValueConverter")}};function Il(n=mn){const e=Ge(pn(n),gr),t=Ge(hn({shared:e}),Cg,Sl);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}_(Il,"createGitGraphServices");var _t,Pg=(_t=class extends gn{constructor(){super(["info","showInfo"])}},_(_t,"InfoTokenBuilder"),_t),Nl={parser:{TokenBuilder:_(()=>new Pg,"TokenBuilder"),ValueConverter:_(()=>new Vi,"ValueConverter")}};function xl(n=mn){const e=Ge(pn(n),gr),t=Ge(hn({shared:e}),Ig,Nl);return e.ServiceRegistry.register(t),{shared:e,Info:t}}_(xl,"createInfoServices");var wt,$g=(wt=class extends gn{constructor(){super(["packet-beta"])}},_(wt,"PacketTokenBuilder"),wt),Cl={parser:{TokenBuilder:_(()=>new $g,"TokenBuilder"),ValueConverter:_(()=>new Vi,"ValueConverter")}};function _l(n=mn){const e=Ge(pn(n),gr),t=Ge(hn({shared:e}),Ng,Cl);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}_(_l,"createPacketServices");var Lt,Mg=(Lt=class extends gn{constructor(){super(["pie","showData"])}},_(Lt,"PieTokenBuilder"),Lt),bt,Dg=(bt=class extends kl{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},_(bt,"PieValueConverter"),bt),wl={parser:{TokenBuilder:_(()=>new Mg,"TokenBuilder"),ValueConverter:_(()=>new Dg,"ValueConverter")}};function Ll(n=mn){const e=Ge(pn(n),gr),t=Ge(hn({shared:e}),xg,wl);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}_(Ll,"createPieServices");var vt={},Fg={info:_(async()=>{const{createInfoServices:n}=await yn(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>Bg);return{createInfoServices:t}},void 0,import.meta.url),e=n().Info.parser.LangiumParser;vt.info=e},"info"),packet:_(async()=>{const{createPacketServices:n}=await yn(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>Wg);return{createPacketServices:t}},void 0,import.meta.url),e=n().Packet.parser.LangiumParser;vt.packet=e},"packet"),pie:_(async()=>{const{createPieServices:n}=await yn(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>jg);return{createPieServices:t}},void 0,import.meta.url),e=n().Pie.parser.LangiumParser;vt.pie=e},"pie"),gitGraph:_(async()=>{const{createGitGraphServices:n}=await yn(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>Vg);return{createGitGraphServices:t}},void 0,import.meta.url),e=n().GitGraph.parser.LangiumParser;vt.gitGraph=e},"gitGraph")};async function Gg(n,e){const t=Fg[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);vt[n]||await t();const i=vt[n].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new Ug(i);return i.value}_(Gg,"parse");var Ot,Ug=(Ot=class extends Error{constructor(e){const t=e.lexerErrors.map(i=>i.message).join(`
`),r=e.parserErrors.map(i=>i.message).join(`
`);super(`Parsing failed: ${t} ${r}`),this.result=e}},_(Ot,"MermaidParseError"),Ot);const Bg=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:Nl,createInfoServices:xl},Symbol.toStringTag,{value:"Module"})),Wg=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:Cl,createPacketServices:_l},Symbol.toStringTag,{value:"Module"})),jg=Object.freeze(Object.defineProperty({__proto__:null,PieModule:wl,createPieServices:Ll},Symbol.toStringTag,{value:"Module"})),Vg=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:Sl,createGitGraphServices:Il},Symbol.toStringTag,{value:"Module"}));export{Gg as p};