md/assets/gitGraph-F2EDSAW4-CPIvnsTM.js
2024-08-31 02:50:18 +00:00

128 lines
306 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 Lc=Object.defineProperty;var Pc=(n,e,t)=>e in n?Lc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Je=(n,e,t)=>Pc(n,typeof e!="symbol"?e+"":e,t);import{bs as Mc,bt as $c,aQ as no,bu as Dc,aD as Pt,bm as jc,aX as yi,aR as Wt,aV as Z,bv as Uc,bw as Fc,bx as Gc,aM as Bc,by as Xi,bk as Hc,bz as ro,bg as Wc,bA as io,bB as so,bC as ao,bD as Yi,bi as Vc,a_ as Kc,bE as zc,bF as qc,aY as Xc,bG as Yc,bH as oo,aA as b,bn as Ie,aC as pt,az as ze,aF as D,ah as te,aU as Ji,bI as q,bp as Mt,bJ as _e,bK as Jc,bL as yn}from"./index-BYEabZbf.js";import{v as K,b as Qc,a as I,h as S,r as oe,f as Ee}from"./reduce-WYFjpvqP.js";import{c as vi,f as $t,d as _i,m as Zc}from"./min-BolweAfC.js";var eu=Object.prototype,tu=eu.hasOwnProperty,Te=Mc(function(n,e){if($c(e)||no(e)){Dc(e,Pt(e),n);return}for(var t in e)tu.call(e,t)&&jc(n,t,e[t])});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 nu(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 ru(n,e,t,r){return yi(n,function(i,s,a){e(r,i,t(i),a)}),r}function iu(n,e){return function(t,r){var i=Z(t)?nu:ru,s=e?e():{};return i(t,n,Wt(r),s)}}var su=200;function au(n,e,t,r){var i=-1,s=Fc,a=!0,o=n.length,l=[],c=e.length;if(!o)return l;e.length>=su&&(s=Gc,a=!1,e=new Uc(e));e:for(;++i<o;){var u=n[i],d=u;if(u=u!==0?u:0,a&&d===d){for(var f=c;f--;)if(e[f]===d)continue e;l.push(u)}else s(e,d,r)||l.push(u)}return l}var Qn=Bc(function(n,e){return Xi(n)?au(n,Hc(e,1,Xi,!0)):[]});function J(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:vi(e),ro(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:vi(e),e=r-e,ro(n,0,e<0?0:e)):[]}function ou(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 lu(n,e){var t=!0;return yi(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function we(n,e,t){var r=Z(n)?ou:lu;return r(n,Wt(e))}function Le(n){return n&&n.length?n[0]:void 0}var cu=Object.prototype,uu=cu.hasOwnProperty,du=iu(function(n,e,t){uu.call(n,t)?n[t].push(e):Wc(n,t,[e])}),fu="[object String]";function fe(n){return typeof n=="string"||!Z(n)&&io(n)&&so(n)==fu}var hu=Math.max;function ue(n,e,t,r){n=no(n)?n:K(n),t=t&&!r?vi(t):0;var i=n.length;return t<0&&(t=hu(i+t,0)),fe(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&ao(n,e,t)>-1}function Qi(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return ao(n,e,i)}var pu="[object RegExp]";function mu(n){return io(n)&&so(n)==pu}var Zi=Yi&&Yi.isRegExp,qe=Zi?Vc(Zi):mu,gu="Expected a function";function yu(n){if(typeof n!="function")throw new TypeError(gu);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=Kc(zc(n),function(r){return[r]});return e=Wt(e),qc(n,t,function(r,i){return e(r,i[0])})}function Zn(n,e){var t=Z(n)?Xc:Qc;return t(n,yu(Wt(e)))}function vu(n,e){var t;return yi(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function lo(n,e,t){var r=Z(n)?Yc:vu;return r(n,Wt(e))}function Ti(n){return n&&n.length?oo(n):[]}function _u(n,e){return n&&n.length?oo(n,Wt(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 Tu(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 co{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 ke})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Eu(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?ke:{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 ke})}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(Sn(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ke})}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(Sn(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ke})}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?ke: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 Eu(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Sn(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Ru=new ie(()=>{},()=>ke),ke=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(Sn(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++]}:ke)}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++];Sn(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ke}):Ru}class Ei 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 ke})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Lr;(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})(Lr||(Lr={}));function Pr(n){return new Ei(n,e=>Dt(e)?e.content:[],{includeRoot:!0})}function Au(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function Mr(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function xn(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 bu(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 Nu(n,e){return bu(n,e)>Ze.After}const ku=/^[\w\p{L}]$/u;function Iu(n,e){if(n){const t=Su(n,!0);if(t&&es(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(es(s,e))return s}}}}function es(n,e){return uo(n)&&e.includes(n.tokenType.name)}function Su(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 vr="AbstractRule",_r="AbstractType",ts="Condition",xu="TypeDefinition",ns="ValueLiteral",po="AbstractElement";function Cu(n){return $.isInstance(n,po)}const wu="ArrayLiteral",Ou="ArrayType",mo="BooleanLiteral";function Lu(n){return $.isInstance(n,mo)}const go="Conjunction";function Pu(n){return $.isInstance(n,go)}const yo="Disjunction";function Mu(n){return $.isInstance(n,yo)}const $u="Grammar",vo="InferredType";function _o(n){return $.isInstance(n,vo)}const To="Interface";function Eo(n){return $.isInstance(n,To)}const Ro="Negation";function Du(n){return $.isInstance(n,Ro)}const ju="NumberLiteral",Uu="Parameter",Ao="ParameterReference";function Fu(n){return $.isInstance(n,Ao)}const bo="ParserRule";function Se(n){return $.isInstance(n,bo)}const Gu="ReferenceType",Bu="ReturnType";function Hu(n){return $.isInstance(n,Bu)}const No="SimpleType";function Wu(n){return $.isInstance(n,No)}const Vu="StringLiteral",$r="TerminalRule";function mt(n){return $.isInstance(n,$r)}const ko="Type";function Io(n){return $.isInstance(n,ko)}const Ku="UnionType",So="Action";function tr(n){return $.isInstance(n,So)}const xo="Alternatives";function Co(n){return $.isInstance(n,xo)}const wo="Assignment";function ct(n){return $.isInstance(n,wo)}const Oo="CharacterRange";function zu(n){return $.isInstance(n,Oo)}const Lo="CrossReference";function Ri(n){return $.isInstance(n,Lo)}const Po="EndOfFile";function qu(n){return $.isInstance(n,Po)}const Mo="Group";function Ai(n){return $.isInstance(n,Mo)}const $o="Keyword";function ut(n){return $.isInstance(n,$o)}const Do="NegatedToken";function Xu(n){return $.isInstance(n,Do)}const jo="RegexToken";function Yu(n){return $.isInstance(n,jo)}const Uo="RuleCall";function dt(n){return $.isInstance(n,Uo)}const Fo="TerminalAlternatives";function Ju(n){return $.isInstance(n,Fo)}const Go="TerminalGroup";function Qu(n){return $.isInstance(n,Go)}const Bo="TerminalRuleCall";function Zu(n){return $.isInstance(n,Bo)}const Ho="UnorderedGroup";function Wo(n){return $.isInstance(n,Ho)}const Vo="UntilToken";function ed(n){return $.isInstance(n,Vo)}const Ko="Wildcard";function td(n){return $.isInstance(n,Ko)}class zo extends co{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 So:case xo:case wo:case Oo:case Lo:case Po:case Mo:case $o:case Do:case jo:case Uo:case Fo:case Go:case Bo:case Ho:case Vo:case Ko:return this.isSubtype(po,t);case wu:case ju:case Vu:return this.isSubtype(ns,t);case Ou:case Gu:case No:case Ku:return this.isSubtype(xu,t);case mo:return this.isSubtype(ts,t)||this.isSubtype(ns,t);case go:case yo:case Ro:case Ao:return this.isSubtype(ts,t);case vo:case To:case ko:return this.isSubtype(_r,t);case bo:return this.isSubtype(vr,t)||this.isSubtype(_r,t);case $r:return this.isSubtype(vr,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 _r;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return vr;case"Grammar:usedGrammars":return $u;case"NamedArgument:parameter":case"ParameterReference:parameter":return Uu;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 $=new zo;function nd(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 je(n){const t=rd(n).$document;if(!t)throw new Error("AST node has no document.");return t}function rd(n){for(;n.$container;)n=n.$container;return n}function bi(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++,rs(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)&&rs(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ke})}function on(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ei(n,t=>bi(t,e))}function Et(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ei(n,t=>bi(t,e),{includeRoot:!0})}function rs(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Nu(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 ke})}function id(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]=Xo(i.defaultValue))}function Xo(n){return Array.isArray(n)?[...n.map(Xo)]:n}function C(n){return n.charCodeAt(0)}function Tr(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function Xt(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function vt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function sd(){throw Error("Internal Error - Should never get here!")}function is(n){return n.type==="Character"}const Cn=[];for(let n=C("0");n<=C("9");n++)Cn.push(n);const wn=[C("_")].concat(Cn);for(let n=C("a");n<=C("z");n++)wn.push(n);for(let n=C("A");n<=C("Z");n++)wn.push(n);const ss=[C(" "),C("\f"),C(`
`),C("\r"),C(" "),C("\v"),C(" "),C(" "),C(""),C(" "),C(""),C(""),C(""),C(""),C(""),C(""),C(""),C(""),C(""),C(""),C("\u2028"),C("\u2029"),C(""),C(""),C(" "),C("\uFEFF")],ad=/[0-9a-fA-F]/,vn=/[0-9]/,od=/[1-9]/;class Yo{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":Xt(r,"global");break;case"i":Xt(r,"ignoreCase");break;case"m":Xt(r,"multiLine");break;case"u":Xt(r,"unicode");break;case"y":Xt(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}vt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return sd()}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;vt(t);break}if(!(e===!0&&t===void 0)&&vt(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()),vt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[C(`
`),C("\r"),C("\u2028"),C("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=Cn;break;case"D":e=Cn,t=!0;break;case"s":e=ss;break;case"S":e=ss,t=!0;break;case"w":e=wn;break;case"W":e=wn,t=!0;break}if(vt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=C("\f");break;case"n":e=C(`
`);break;case"r":e=C("\r");break;case"t":e=C(" ");break;case"v":e=C("\v");break}if(vt(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:C("\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:C(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:C(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,is(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,is(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Tr(r.value,e),e.push(C("-")),Tr(i.value,e)}else Tr(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:C("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}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(od.test(e)===!1)throw Error("Expecting a positive integer");for(;vn.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(vn.test(e)===!1)throw Error("Expecting an integer");for(;vn.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:C(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return vn.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(ad.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 ld=/\r?\n/gm,cd=new Yo;class ud 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 Er=new ud;function dd(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),Er.reset(n),Er.visit(cd.pattern(n)),Er.multiline}catch{return!1}}function as(n){return(typeof n=="string"?new RegExp(n):n).test(" ")}function ir(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function fd(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ir(e)).join("")}function hd(n,e){const t=pd(n),r=e.match(t);return!!r&&r[0].length>0}function pd(n){typeof n=="string"&&(n=new RegExp(n));const e=n,t=n.source;let r=0;function i(){let s="",a;function o(c){s+=t.substr(r,c),r+=c}function l(c){s+="(?:"+t.substr(r,c)+"|$)",r+=c}for(;r<t.length;)switch(t[r]){case"\\":switch(t[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":e.unicode?t[r+2]==="{"?l(t.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":e.unicode?l(t.indexOf("}",r)-r+1):l(2);break;case"k":l(t.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(t),a?o(a[0].length):l(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:l(1);break}return s}return new RegExp(i(),n.flags)}function md(n){return n.rules.find(e=>Se(e)&&e.entry)}function gd(n){return n.rules.filter(e=>mt(e)&&e.hidden)}function Jo(n,e){const t=new Set,r=md(n);if(!r)return new Set(n.rules);const i=[r].concat(gd(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 yd(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=el(n.type.ref);return e==null?void 0:e.terminal}}function vd(n){return n.hidden&&!Ii(n).test(" ")}function _d(n,e){return!n||!e?[]:Ni(n,e,n.astNode,!0)}function Zo(n,e,t){if(!n||!e)return;const r=Ni(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 Ni(n,e,t,r){if(!r){const i=nr(n.grammarSource,ct);if(i&&i.feature===e)return[n]}return Dt(n)&&n.astNode===t?n.content.flatMap(i=>Ni(i,e,t,!1)):[]}function Td(n,e,t){if(!n)return;const r=Ed(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 Ed(n,e,t){if(n.astNode!==t)return[];if(ut(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=Pr(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 Rd(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,ct);if(r)return r;n=n.container}}function el(n){let e=n;return _o(e)&&(tr(e.$container)?e=e.$container.$container:Se(e.$container)?e=e.$container:er(e.$container)),tl(n,e,new Map)}function tl(n,e,t){var r;function i(s,a){let o;return nr(s,ct)||(o=tl(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(ct(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(dt(s)&&Se(s.rule.ref))return i(s,s.rule.ref);if(Wu(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function ki(n){return nl(n,new Set)}function nl(n,e){if(e.has(n))return!0;e.add(n);for(const t of on(n))if(dt(t)){if(!t.rule.ref||Se(t.rule.ref)&&!nl(t.rule.ref,e))return!1}else{if(ct(t))return!1;if(tr(t))return!1}return!!n.definition}function rl(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(Se(e))return e.name;if(Eo(e)||Io(e))return e.name}}}function sr(n){var e;if(Se(n))return ki(n)?n.name:(e=rl(n))!==null&&e!==void 0?e:n.name;if(Eo(n)||Io(n)||Hu(n))return n.name;if(tr(n)){const t=Ad(n);if(t)return t}else if(_o(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Ad(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 bd(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":ki(n)?n.name:(r=rl(n))!==null&&r!==void 0?r:n.name}function Ii(n){const e={s:!1,i:!1,u:!1},t=Vt(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const Si=/[\s\S]/.source;function Vt(n,e){if(Ju(n))return Nd(n);if(Qu(n))return kd(n);if(zu(n))return xd(n);if(Zu(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return Ke(Vt(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(Xu(n))return Sd(n);if(ed(n))return Id(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")),Ke(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(td(n))return Ke(Si,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n==null?void 0:n.$type}`)}}}function Nd(n){return Ke(n.elements.map(e=>Vt(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function kd(n){return Ke(n.elements.map(e=>Vt(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function Id(n){return Ke(`${Si}*?${Vt(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function Sd(n){return Ke(`(?!${Vt(n.terminal)})${Si}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function xd(n){return n.right?Ke(`[${Rr(n.left)}-${Rr(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):Ke(Rr(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function Rr(n){return ir(n.value)}function Ke(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 Cd(n){const e=[],t=n.Grammar;for(const r of t.rules)mt(r)&&vd(r)&&dd(Ii(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:ku}}function Dr(n){console&&console.error&&console.error(`Error: ${n}`)}function il(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function sl(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function al(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function wd(n){return Od(n)?n.LABEL:n.name}function Od(n){return fe(n.LABEL)&&n.LABEL!==""}class Fe{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),I(this.definition,t=>{t.accept(e)})}}class le extends Fe{constructor(e){super([]),this.idx=1,Te(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 Kt extends Fe{constructor(e){super(e.definition),this.orgText="",Te(this,Pe(e,t=>t!==void 0))}}class he extends Fe{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Te(this,Pe(e,t=>t!==void 0))}}class ee extends Fe{constructor(e){super(e.definition),this.idx=1,Te(this,Pe(e,t=>t!==void 0))}}class Re extends Fe{constructor(e){super(e.definition),this.idx=1,Te(this,Pe(e,t=>t!==void 0))}}class Ae extends Fe{constructor(e){super(e.definition),this.idx=1,Te(this,Pe(e,t=>t!==void 0))}}class H extends Fe{constructor(e){super(e.definition),this.idx=1,Te(this,Pe(e,t=>t!==void 0))}}class pe extends Fe{constructor(e){super(e.definition),this.idx=1,Te(this,Pe(e,t=>t!==void 0))}}class me extends Fe{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,Te(this,Pe(e,t=>t!==void 0))}}class U{constructor(e){this.idx=1,Te(this,Pe(e,t=>t!==void 0))}accept(e){e.visit(this)}}function Ld(n){return b(n,An)}function An(n){function e(t){return b(t,An)}if(n instanceof le){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 Ae)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:An(new U({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof pe)return{type:"RepetitionWithSeparator",idx:n.idx,separator:An(new U({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof H)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 U){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 Kt)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 le:return this.visitNonTerminal(t);case he:return this.visitAlternative(t);case ee:return this.visitOption(t);case Re:return this.visitRepetitionMandatory(t);case Ae:return this.visitRepetitionMandatoryWithSeparator(t);case pe:return this.visitRepetitionWithSeparator(t);case H:return this.visitRepetition(t);case me:return this.visitAlternation(t);case U:return this.visitTerminal(t);case Kt: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 Pd(n){return n instanceof he||n instanceof ee||n instanceof H||n instanceof Re||n instanceof Ae||n instanceof pe||n instanceof U||n instanceof Kt}function On(n,e=[]){return n instanceof ee||n instanceof H||n instanceof pe?!0:n instanceof me?lo(n.definition,r=>On(r,e)):n instanceof le&&ue(e,n)?!1:n instanceof Fe?(n instanceof le&&e.push(n),we(n.definition,r=>On(r,e))):!1}function Md(n){return n instanceof me}function $e(n){if(n instanceof le)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 Ae)return"AT_LEAST_ONE_SEP";if(n instanceof pe)return"MANY_SEP";if(n instanceof H)return"MANY";if(n instanceof U)return"CONSUME";throw Error("non exhaustive match")}class ar{walk(e,t=[]){I(e.definition,(r,i)=>{const s=J(e.definition,i+1);if(r instanceof le)this.walkProdRef(r,s,t);else if(r instanceof U)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 Ae)this.walkAtLeastOneSep(r,s,t);else if(r instanceof pe)this.walkManySep(r,s,t);else if(r instanceof H)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=os(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=os(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);I(e.definition,s=>{const a=new he({definition:[s]});this.walk(a,i)})}}function os(n,e,t){return[new ee({definition:[new U({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function ln(n){if(n instanceof le)return ln(n.referencedRule);if(n instanceof U)return jd(n);if(Pd(n))return $d(n);if(Md(n))return Dd(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=On(s),e=e.concat(ln(s)),r=r+1,i=t.length>r;return Ti(e)}function Dd(n){const e=b(n.definition,t=>ln(t));return Ti(Ie(e))}function jd(n){return[n.terminalType]}const ol="_~IN~_";class Ud 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=Gd(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new he({definition:s}),o=ln(a);this.follows[i]=o}}function Fd(n){const e={};return I(n,t=>{const r=new Ud(t).startWalking();Te(e,r)}),e}function Gd(n,e){return n.name+e+ol}let bn={};const Bd=new Yo;function or(n){const e=n.toString();if(bn.hasOwnProperty(e))return bn[e];{const t=Bd.pattern(e);return bn[e]=t,t}}function Hd(){bn={}}const ll="Complement Sets are not supported for first char optimization",Ln=`Unable to use "first char" lexer optimizations:
`;function Wd(n,e=!1){try{const t=or(n);return jr(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===ll)e&&il(`${Ln} 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.`),Dr(`${Ln}
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 jr(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)jr(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":_n(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(ll);I(a.value,l=>{if(typeof l=="number")_n(l,e,t);else{const c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)_n(u,e,t);else{for(let u=c.from;u<=c.to&&u<Zt;u++)_n(u,e,t);if(c.to>=Zt){const u=c.from>=Zt?c.from:Zt,d=c.to,f=et(u),h=et(d);for(let m=f;m<=h;m++)e[m]=m}}}});break;case"Group":jr(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"&&Ur(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return K(e)}function _n(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 ls(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 Ur(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?Z(n.value)?we(n.value,Ur):Ur(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?ls(e,this.targetCharCodes)===void 0&&(this.found=!0):ls(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function xi(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",Tn="modes";let cl=typeof new RegExp("(?:)").sticky=="boolean";function zd(n,e){e=_i(e,{useSticky:cl,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
`],tracer:(E,_)=>_()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{yf()});let r;t("Reject Lexer.NA",()=>{r=Zn(n,E=>E[ft]===de.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=b(r,E=>{const _=E[ft];if(qe(_)){const k=_.source;return k.length===1&&k!=="^"&&k!=="$"&&k!=="."&&!_.ignoreCase?k:k.length===2&&k[0]==="\\"&&!ue(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],k[1])?k[1]:e.useSticky?us(_):cs(_)}else{if(pt(_))return i=!0,{exec:_};if(typeof _=="object")return i=!0,_;if(typeof _=="string"){if(_.length===1)return _;{const k=_.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(k);return e.useSticky?us(j):cs(j)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=b(r,E=>E.tokenTypeIdx),o=b(r,E=>{const _=E.GROUP;if(_!==de.SKIPPED){if(fe(_))return _;if(ze(_))return!1;throw Error("non exhaustive match")}}),l=b(r,E=>{const _=E.LONGER_ALT;if(_)return Z(_)?b(_,j=>Qi(r,j)):[Qi(r,_)]}),c=b(r,E=>E.PUSH_MODE),u=b(r,E=>S(E,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const E=fl(e.lineTerminatorCharacters);d=b(r,_=>!1),e.positionTracking!=="onlyOffset"&&(d=b(r,_=>S(_,"LINE_BREAKS")?!!_.LINE_BREAKS:dl(_,E)===!1&&xi(E,_.PATTERN)))});let f,h,m,g;t("Misc Mapping #2",()=>{f=b(r,ul),h=b(s,pf),m=oe(r,(E,_)=>{const k=_.GROUP;return fe(k)&&k!==de.SKIPPED&&(E[k]=[]),E},{}),g=b(s,(E,_)=>({pattern:s[_],longerAlt:l[_],canLineTerminator:d[_],isCustom:f[_],short:h[_],group:o[_],push:c[_],pop:u[_],tokenTypeIdx:a[_],tokenType:r[_]}))});let T=!0,y=[];return e.safeMode||t("First Char Optimization",()=>{y=oe(r,(E,_,k)=>{if(typeof _.PATTERN=="string"){const j=_.PATTERN.charCodeAt(0),ne=et(j);Ar(E,ne,g[k])}else if(Z(_.START_CHARS_HINT)){let j;I(_.START_CHARS_HINT,ne=>{const xe=typeof ne=="string"?ne.charCodeAt(0):ne,ge=et(xe);j!==ge&&(j=ge,Ar(E,ge,g[k]))})}else if(qe(_.PATTERN))if(_.PATTERN.unicode)T=!1,e.ensureOptimizations&&Dr(`${Ln} Unable to analyze < ${_.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 j=Wd(_.PATTERN,e.ensureOptimizations);D(j)&&(T=!1),I(j,ne=>{Ar(E,ne,g[k])})}else e.ensureOptimizations&&Dr(`${Ln} TokenType: <${_.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`),T=!1;return E},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:y,hasCustom:i,canBeOptimized:T}}function qd(n,e){let t=[];const r=Yd(n);t=t.concat(r.errors);const i=Jd(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Xd(s)),t=t.concat(af(s)),t=t.concat(of(s,e)),t=t.concat(lf(s)),t}function Xd(n){let e=[];const t=Ee(n,r=>qe(r[ft]));return e=e.concat(Zd(t)),e=e.concat(nf(t)),e=e.concat(rf(t)),e=e.concat(sf(t)),e=e.concat(ef(t)),e}function Yd(n){const e=Ee(n,i=>!S(i,ft)),t=b(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:W.MISSING_PATTERN,tokenTypes:[i]})),r=Qn(n,e);return{errors:t,valid:r}}function Jd(n){const e=Ee(n,i=>{const s=i[ft];return!qe(s)&&!pt(s)&&!S(s,"exec")&&!fe(s)}),t=b(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:W.INVALID_PATTERN,tokenTypes:[i]})),r=Qn(n,e);return{errors:t,valid:r}}const Qd=/[^\\][$]/;function Zd(n){class e extends rr{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=Ee(n,i=>{const s=i.PATTERN;try{const a=or(s),o=new e;return o.visit(a),o.found}catch{return Qd.test(s.source)}});return b(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:W.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function ef(n){const e=Ee(n,r=>r.PATTERN.test(""));return b(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:W.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const tf=/[^\\[][\^]|^\^/;function nf(n){class e extends rr{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=Ee(n,i=>{const s=i.PATTERN;try{const a=or(s),o=new e;return o.visit(a),o.found}catch{return tf.test(s.source)}});return b(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:W.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function rf(n){const e=Ee(n,r=>{const i=r[ft];return i instanceof RegExp&&(i.multiline||i.global)});return b(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:W.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function sf(n){const e=[];let t=b(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=Ee(t,s=>s.length>1);return b(r,s=>{const a=b(s,l=>l.name);return{message:`The same RegExp pattern ->${Le(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:W.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function af(n){const e=Ee(n,r=>{if(!S(r,"GROUP"))return!1;const i=r.GROUP;return i!==de.SKIPPED&&i!==de.NA&&!fe(i)});return b(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:W.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function of(n,e){const t=Ee(n,i=>i.PUSH_MODE!==void 0&&!ue(e,i.PUSH_MODE));return b(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:W.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function lf(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)&&uf(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return I(n,(r,i)=>{I(t,({str:s,idx:a,tokenType:o})=>{if(i<a&&cf(s,r.PATTERN)){const l=`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:l,type:W.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(S(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function uf(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 us(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function df(n,e,t){const r=[];return S(n,Qt)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Qt+`> property in its definition
`,type:W.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),S(n,Tn)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Tn+`> property in its definition
`,type:W.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),S(n,Tn)&&S(n,Qt)&&!S(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Qt}: <${n.defaultMode}>which does not exist
`,type:W.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),S(n,Tn)&&I(n.modes,(i,s)=>{I(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:W.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(S(a,"LONGER_ALT")){const l=Z(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];I(l,c=>{!ze(c)&&!ue(i,c)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${a.name}> outside of mode <${s}>
`,type:W.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function ff(n,e,t){const r=[];let i=!1;const s=an(Ie(K(n.modes))),a=Zn(s,l=>l[ft]===de.NA),o=fl(t);return e&&I(a,l=>{const c=dl(l,o);if(c!==!1){const d={message:gf(l,c),type:c.issue,tokenType:l};r.push(d)}else S(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):xi(o,l.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:W.NO_LINE_BREAKS_FLAGS}),r}function hf(n){const e={},t=Pt(n);return I(t,r=>{const i=n[r];if(Z(i))e[r]=[];else throw Error("non exhaustive match")}),e}function ul(n){const e=n.PATTERN;if(qe(e))return!1;if(pt(e))return!0;if(S(e,"exec"))return!0;if(fe(e))return!1;throw Error("non exhaustive match")}function pf(n){return fe(n)&&n.length===1?n.charCodeAt(0):!1}const mf={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 dl(n,e){if(S(n,"LINE_BREAKS"))return!1;if(qe(n.PATTERN)){try{xi(e,n.PATTERN)}catch(t){return{issue:W.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if(fe(n.PATTERN))return!1;if(ul(n))return{issue:W.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function gf(n,e){if(e.issue===W.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===W.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 fl(n){return b(n,t=>fe(t)?t.charCodeAt(0):t)}function Ar(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const Zt=256;let Nn=[];function et(n){return n<Zt?n:Nn[n]}function yf(){if(D(Nn)){Nn=new Array(65536);for(let n=0;n<65536;n++)Nn[n]=n>255?255+~~(n/255):n}}function cn(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 ds=1;const hl={};function un(n){const e=vf(n);_f(e),Ef(e),Tf(e),I(e,t=>{t.isParent=t.categoryMatches.length>0})}function vf(n){let e=te(n),t=n,r=!0;for(;r;){t=an(Ie(b(t,s=>s.CATEGORIES)));const i=Qn(t,e);e=e.concat(i),D(i)?r=!1:t=i}return e}function _f(n){I(n,e=>{ml(e)||(hl[ds]=e,e.tokenTypeIdx=ds++),fs(e)&&!Z(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),fs(e)||(e.CATEGORIES=[]),Rf(e)||(e.categoryMatches=[]),Af(e)||(e.categoryMatchesMap={})})}function Tf(n){I(n,e=>{e.categoryMatches=[],I(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(hl[r].tokenTypeIdx)})})}function Ef(n){I(n,e=>{pl([],e)})}function pl(n,e){I(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),I(e.CATEGORIES,t=>{const r=n.concat(e);ue(r,t)||pl(r,t)})}function ml(n){return S(n,"tokenTypeIdx")}function fs(n){return S(n,"CATEGORIES")}function Rf(n){return S(n,"categoryMatches")}function Af(n){return S(n,"categoryMatchesMap")}function bf(n){return S(n,"tokenTypeIdx")}const Nf={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 W;(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"})(W||(W={}));const en={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Nf,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:l}=sl(s),c=o>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&c(`${a}<-- <${i}> time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
a boolean 2nd argument is no longer supported`);this.config=Te({},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=mf;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(df(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(ff(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},I(i.modes,(o,l)=>{i.modes[l]=Zn(o,c=>ze(c))});const a=Pt(i.modes);if(I(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(qd(o,a))}),D(this.lexerDefinitionErrors)){un(o);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=zd(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=c.charCodeToPatternIdxToConfig,this.emptyGroups=Te({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,!D(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=b(this.lexerDefinitionErrors,c=>c.message).join(`-----------------------
`);throw new Error(`Errors detected in definition of Lexer:
`+l)}I(this.lexerDefinitionWarning,o=>{il(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(cl?(this.chopInput=Ji,this.match=this.matchWithTest):(this.updateLastIndex=q,this.match=this.matchWithExec),s&&(this.handleModes=q),this.trackStartLines===!1&&(this.computeNewColumn=Ji),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,(l,c,u)=>(c===!1&&l.push(u),l),[]);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",()=>{Hd()}),this.TRACE_INIT("toFastProperties",()=>{al(this)})})}tokenize(e,t=this.defaultMode){if(!D(this.lexerDefinitionErrors)){const i=b(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,l,c,u,d,f,h,m,g,T,y;const E=e,_=E.length;let k=0,j=0;const ne=this.hasCustom?0:Math.floor(e.length/10),xe=new Array(ne),ge=[];let Me=this.trackStartLines?1:void 0,be=this.trackStartLines?1:void 0;const A=hf(this.emptyGroups),v=this.trackStartLines,R=this.config.lineTerminatorsPattern;let N=0,L=[],O=[];const w=[],ye=[];Object.freeze(ye);let z;function B(){return L}function at(re){const Ne=et(re),yt=O[Ne];return yt===void 0?ye:yt}const Oc=re=>{if(w.length===1&&re.tokenType.PUSH_MODE===void 0){const Ne=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(re);ge.push({offset:re.startOffset,line:re.startLine,column:re.startColumn,length:re.image.length,message:Ne})}else{w.pop();const Ne=Mt(w);L=this.patternIdxToConfig[Ne],O=this.charCodeToPatternIdxToConfig[Ne],N=L.length;const yt=this.canModeBeOptimized[Ne]&&this.config.safeMode===!1;O&&yt?z=at:z=B}};function Ki(re){w.push(re),O=this.charCodeToPatternIdxToConfig[re],L=this.patternIdxToConfig[re],N=L.length,N=L.length;const Ne=this.canModeBeOptimized[re]&&this.config.safeMode===!1;O&&Ne?z=at:z=B}Ki.call(this,t);let Ce;const zi=this.config.recoveryEnabled;for(;k<_;){l=null;const re=E.charCodeAt(k),Ne=z(re),yt=Ne.length;for(r=0;r<yt;r++){Ce=Ne[r];const ve=Ce.pattern;c=null;const Be=Ce.short;if(Be!==!1?re===Be&&(l=ve):Ce.isCustom===!0?(y=ve.exec(E,k,xe,A),y!==null?(l=y[0],y.payload!==void 0&&(c=y.payload)):l=null):(this.updateLastIndex(ve,k),l=this.match(ve,e,k)),l!==null){if(o=Ce.longerAlt,o!==void 0){const Ye=o.length;for(s=0;s<Ye;s++){const He=L[o[s]],ot=He.pattern;if(u=null,He.isCustom===!0?(y=ot.exec(E,k,xe,A),y!==null?(a=y[0],y.payload!==void 0&&(u=y.payload)):a=null):(this.updateLastIndex(ot,k),a=this.match(ot,e,k)),a&&a.length>l.length){l=a,c=u,Ce=He;break}}}break}}if(l!==null){if(d=l.length,f=Ce.group,f!==void 0&&(h=Ce.tokenTypeIdx,m=this.createTokenInstance(l,k,h,Ce.tokenType,Me,be,d),this.handlePayload(m,c),f===!1?j=this.addToken(xe,j,m):A[f].push(m)),e=this.chopInput(e,d),k=k+d,be=this.computeNewColumn(be,d),v===!0&&Ce.canLineTerminator===!0){let ve=0,Be,Ye;R.lastIndex=0;do Be=R.test(l),Be===!0&&(Ye=R.lastIndex-1,ve++);while(Be===!0);ve!==0&&(Me=Me+ve,be=d-Ye,this.updateTokenEndLineColumnLocation(m,f,Ye,ve,Me,be,d))}this.handleModes(Ce,Oc,Ki,m)}else{const ve=k,Be=Me,Ye=be;let He=zi===!1;for(;He===!1&&k<_;)for(e=this.chopInput(e,1),k++,i=0;i<N;i++){const ot=L[i],yr=ot.pattern,qi=ot.short;if(qi!==!1?E.charCodeAt(k)===qi&&(He=!0):ot.isCustom===!0?He=yr.exec(E,k,xe,A)!==null:(this.updateLastIndex(yr,k),He=yr.exec(e)!==null),He===!0)break}if(g=k-ve,be=this.computeNewColumn(be,g),T=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(E,ve,g,Be,Ye),ge.push({offset:ve,line:Be,column:Ye,length:g,message:T}),zi===!1)break}}return this.hasCustom||(xe.length=j),{tokens:xe,groups:A,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 l,c;t!==void 0&&(l=r===o-1,c=l?-1:0,i===1&&l===!0||(e.endLine=s+c,e.endColumn=a-1+-c))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,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 gl(n)?n.LABEL:n.name}function gl(n){return fe(n.LABEL)&&n.LABEL!==""}const kf="parent",hs="categories",ps="label",ms="group",gs="push_mode",ys="pop_mode",vs="longer_alt",_s="line_breaks",Ts="start_chars_hint";function yl(n){return If(n)}function If(n){const e=n.pattern,t={};if(t.name=n.name,ze(e)||(t.PATTERN=e),S(n,kf))throw`The parent property is no longer supported.
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return S(n,hs)&&(t.CATEGORIES=n[hs]),un([t]),S(n,ps)&&(t.LABEL=n[ps]),S(n,ms)&&(t.GROUP=n[ms]),S(n,ys)&&(t.POP_MODE=n[ys]),S(n,gs)&&(t.PUSH_MODE=n[gs]),S(n,vs)&&(t.LONGER_ALT=n[vs]),S(n,_s)&&(t.LINE_BREAKS=n[_s]),S(n,Ts)&&(t.START_CHARS_HINT=n[Ts]),t}const tt=yl({name:"EOF",pattern:de.NA});un([tt]);function Ci(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 vl(n,e){return cn(n,e)}const _t={buildMismatchTokenMessage({expected:n,actual:e,previous:t,ruleName:r}){return`Expecting ${gl(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: '`+Le(e).image+"'";if(r)return s+r+o;{const l=oe(n,(f,h)=>f.concat(h),[]),c=b(l,f=>`[${b(f,h=>Rt(h)).join(", ")}]`),d=`one of these possible Token sequences:
${b(c,(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: '`+Le(e).image+"'";if(t)return i+t+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences::
<${b(n,c=>`[${b(c,u=>Rt(u)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(_t);const Sf={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
inside top level rule: ->`+n.name+"<-"}},lt={buildDuplicateFoundError(n,e){function t(u){return u instanceof U?u.terminalType.name:u instanceof le?u.nonTerminalName:""}const r=n.name,i=Le(e),s=i.idx,a=$e(i),o=t(i),l=s>0;let c=`->${a}${l?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 c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,`
`),c},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=b(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=b(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=$e(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=b(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 Kt?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function xf(n,e){const t=new Cf(n,e);return t.resolveRefs(),t.errors}class Cf extends zt{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){I(K(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:ce.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 Of 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=ln(s),this.found=!0}}}class lr 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 Lf extends lr{walkMany(e,t,r){if(e.idx===this.occurrence){const i=Le(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof U&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class Es extends lr{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=Le(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof U&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class Pf extends lr{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=Le(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof U&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class Rs extends lr{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=Le(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof U&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function Fr(n,e,t=[]){t=te(t);let r=[],i=0;function s(o){return o.concat(J(n,i+1))}function a(o){const l=Fr(s(o),e,t);return r.concat(l)}for(;t.length<e&&i<n.length;){const o=n[i];if(o instanceof he)return a(o.definition);if(o instanceof le)return a(o.definition);if(o instanceof ee)r=a(o.definition);else if(o instanceof Re){const l=o.definition.concat([new H({definition:o.definition})]);return a(l)}else if(o instanceof Ae){const l=[new he({definition:o.definition}),new H({definition:[new U({terminalType:o.separator})].concat(o.definition)})];return a(l)}else if(o instanceof pe){const l=o.definition.concat([new H({definition:[new U({terminalType:o.separator})].concat(o.definition)})]);r=a(l)}else if(o instanceof H){const l=o.definition.concat([new H({definition:o.definition})]);r=a(l)}else{if(o instanceof me)return I(o.definition,l=>{D(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof U)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:J(n,i)}),r}function _l(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,c=l-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<=c&&d.pop();continue}const h=f.def,m=f.idx,g=f.ruleStack,T=f.occurrenceStack;if(D(h))continue;const y=h[0];if(y===i){const E={idx:m,def:J(h),ruleStack:tn(g),occurrenceStack:tn(T)};d.push(E)}else if(y instanceof U)if(m<l-1){const E=m+1,_=e[E];if(t(_,y.terminalType)){const k={idx:E,def:J(h),ruleStack:g,occurrenceStack:T};d.push(k)}}else if(m===l-1)u.push({nextTokenType:y.terminalType,nextTokenOccurrence:y.idx,ruleStack:g,occurrenceStack:T}),o=!0;else throw Error("non exhaustive match");else if(y instanceof le){const E=te(g);E.push(y.nonTerminalName);const _=te(T);_.push(y.idx);const k={idx:m,def:y.definition.concat(s,J(h)),ruleStack:E,occurrenceStack:_};d.push(k)}else if(y instanceof ee){const E={idx:m,def:J(h),ruleStack:g,occurrenceStack:T};d.push(E),d.push(a);const _={idx:m,def:y.definition.concat(J(h)),ruleStack:g,occurrenceStack:T};d.push(_)}else if(y instanceof Re){const E=new H({definition:y.definition,idx:y.idx}),_=y.definition.concat([E],J(h)),k={idx:m,def:_,ruleStack:g,occurrenceStack:T};d.push(k)}else if(y instanceof Ae){const E=new U({terminalType:y.separator}),_=new H({definition:[E].concat(y.definition),idx:y.idx}),k=y.definition.concat([_],J(h)),j={idx:m,def:k,ruleStack:g,occurrenceStack:T};d.push(j)}else if(y instanceof pe){const E={idx:m,def:J(h),ruleStack:g,occurrenceStack:T};d.push(E),d.push(a);const _=new U({terminalType:y.separator}),k=new H({definition:[_].concat(y.definition),idx:y.idx}),j=y.definition.concat([k],J(h)),ne={idx:m,def:j,ruleStack:g,occurrenceStack:T};d.push(ne)}else if(y instanceof H){const E={idx:m,def:J(h),ruleStack:g,occurrenceStack:T};d.push(E),d.push(a);const _=new H({definition:y.definition,idx:y.idx}),k=y.definition.concat([_],J(h)),j={idx:m,def:k,ruleStack:g,occurrenceStack:T};d.push(j)}else if(y instanceof me)for(let E=y.definition.length-1;E>=0;E--){const _=y.definition[E],k={idx:m,def:_.definition.concat(J(h)),ruleStack:g,occurrenceStack:T};d.push(k),d.push(a)}else if(y instanceof he)d.push({idx:m,def:y.definition.concat(J(h)),ruleStack:g,occurrenceStack:T});else if(y instanceof Kt)d.push(Mf(y,m,g,T));else throw Error("non exhaustive match")}return u}function Mf(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 G;(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"})(G||(G={}));function wi(n){if(n instanceof ee||n==="Option")return G.OPTION;if(n instanceof H||n==="Repetition")return G.REPETITION;if(n instanceof Re||n==="RepetitionMandatory")return G.REPETITION_MANDATORY;if(n instanceof Ae||n==="RepetitionMandatoryWithSeparator")return G.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof pe||n==="RepetitionWithSeparator")return G.REPETITION_WITH_SEPARATOR;if(n instanceof me||n==="Alternation")return G.ALTERNATION;throw Error("non exhaustive match")}function As(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=wi(r);return s===G.ALTERNATION?cr(e,t,i):ur(e,t,s,i)}function $f(n,e,t,r,i,s){const a=cr(n,e,t),o=Rl(a)?Pn:cn;return s(a,r,o,i)}function Df(n,e,t,r,i,s){const a=ur(n,e,i,t),o=Rl(a)?Pn:cn;return s(a[0],o,r)}function jf(n,e,t,r){const i=n.length,s=we(n,a=>we(a,o=>o.length===1));if(e)return function(a){const o=b(a,l=>l.GATE);for(let l=0;l<i;l++){const c=n[l],u=c.length,d=o[l];if(!(d!==void 0&&d.call(this)===!1))e:for(let f=0;f<u;f++){const h=c[f],m=h.length;for(let g=0;g<m;g++){const T=this.LA(g+1);if(t(T,h[g])===!1)continue e}return l}}};if(s&&!r){const a=b(n,l=>Ie(l)),o=oe(a,(l,c,u)=>(I(c,d=>{S(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=u),I(d.categoryMatches,f=>{S(l,f)||(l[f]=u)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;a<i;a++){const o=n[a],l=o.length;e:for(let c=0;c<l;c++){const u=o[c],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 Uf(n,e,t){const r=we(n,s=>s.length===1),i=n.length;if(r&&!t){const s=Ie(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,l,c)=>(o[l.tokenTypeIdx]=!0,I(l.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 l=0;l<o;l++){const c=this.LA(l+1);if(e(c,a[l])===!1)continue e}return!0}return!1}}class Ff 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,G.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,G.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,G.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,G.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,G.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}}class Tl 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,G.OPTION)}visitRepetition(e){this.checkIsTarget(e,G.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,G.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,G.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,G.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,G.ALTERNATION)}}function bs(n){const e=new Array(n);for(let t=0;t<n;t++)e[t]=[];return e}function br(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 l="_"+r.categoryMatches[o];i.push(a+l)}}e=i}return e}function Gf(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 El(n,e){const t=b(n,a=>Fr([a],1)),r=bs(t.length),i=b(t,a=>{const o={};return I(a,l=>{const c=br(l.partialPath);I(c,u=>{o[u]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=bs(o.length);for(let l=0;l<o.length;l++){const c=o[l];for(let u=0;u<c.length;u++){const d=c[u].partialPath,f=c[u].suffixDef,h=br(d);if(Gf(i,h,l)||D(f)||d.length===e){const g=r[l];if(Gr(g,d)===!1){g.push(d);for(let T=0;T<h.length;T++){const y=h[T];i[l][y]=!0}}}else{const g=Fr(f,a+1,d);s[l]=s[l].concat(g),I(g,T=>{const y=br(T.partialPath);I(y,E=>{i[l][E]=!0})})}}}}return r}function cr(n,e,t,r){const i=new Tl(n,G.ALTERNATION,r);return e.accept(i),El(i.result,t)}function ur(n,e,t,r){const i=new Tl(n,t);e.accept(i);const s=i.result,o=new Ff(e,n,t).startWalking(),l=new he({definition:s}),c=new he({definition:o});return El([l,c],r)}function Gr(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&&we(n,(t,r)=>{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Rl(n){return we(n,e=>we(e,t=>we(t,r=>D(r.categoryMatches))))}function Hf(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return b(e,t=>Object.assign({type:ce.CUSTOM_LOOKAHEAD_VALIDATION},t))}function Wf(n,e,t,r){const i=_e(n,l=>Vf(l,t)),s=rh(n,e,t),a=_e(n,l=>Zf(l,t)),o=_e(n,l=>qf(l,n,r,t));return i.concat(s,a,o)}function Vf(n,e){const t=new zf;n.accept(t);const r=t.allProductions,i=du(r,Kf),s=Pe(i,o=>o.length>1);return b(K(s),o=>{const l=Le(o),c=e.buildDuplicateFoundError(n,o),u=$e(l),d={message:c,type:ce.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:u,occurrence:l.idx},f=Al(l);return f&&(d.parameter=f),d})}function Kf(n){return`${$e(n)}_#_${n.idx}_#_${Al(n)}`}function Al(n){return n instanceof U?n.terminalType.name:n instanceof le?n.nonTerminalName:""}class zf 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 qf(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:ce.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function Xf(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:ce.INVALID_RULE_OVERRIDE,ruleName:n})),r}function bl(n,e,t,r=[]){const i=[],s=kn(e.definition);if(D(s))return[];{const a=n.name;ue(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:ce.LEFT_RECURSION,ruleName:a});const l=Qn(s,r.concat([n])),c=_e(l,u=>{const d=te(r);return d.push(u),bl(n,u,t,d)});return i.concat(c)}}function kn(n){let e=[];if(D(n))return e;const t=Le(n);if(t instanceof le)e.push(t.referencedRule);else if(t instanceof he||t instanceof ee||t instanceof Re||t instanceof Ae||t instanceof pe||t instanceof H)e=e.concat(kn(t.definition));else if(t instanceof me)e=Ie(b(t.definition,s=>kn(s.definition)));else if(!(t instanceof U))throw Error("non exhaustive match");const r=On(t),i=n.length>1;if(r&&i){const s=J(n);return e.concat(kn(s))}else return e}class Oi extends zt{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Yf(n,e){const t=new Oi;n.accept(t);const r=t.alternations;return _e(r,s=>{const a=tn(s.definition);return _e(a,(o,l)=>{const c=_l([o],[],cn,1);return D(c)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:l}),type:ce.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:l+1}]:[]})})}function Jf(n,e,t){const r=new Oi;n.accept(r);let i=r.alternations;return i=Zn(i,a=>a.ignoreAmbiguities===!0),_e(i,a=>{const o=a.idx,l=a.maxLookahead||e,c=cr(o,n,l,a),u=th(c,a,n,t),d=nh(c,a,n,t);return u.concat(d)})}class Qf 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 Zf(n,e){const t=new Oi;n.accept(t);const r=t.alternations;return _e(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:ce.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function eh(n,e,t){const r=[];return I(n,i=>{const s=new Qf;i.accept(s);const a=s.allProductions;I(a,o=>{const l=wi(o),c=o.maxLookahead||e,u=o.idx,f=ur(u,i,l,c)[0];if(D(Ie(f))){const h=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:h,type:ce.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function th(n,e,t,r){const i=[],s=oe(n,(o,l,c)=>(e.definition[c].ignoreAmbiguities===!0||I(l,u=>{const d=[c];I(n,(f,h)=>{c!==h&&Gr(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&d.push(h)}),d.length>1&&!Gr(i,u)&&(i.push(u),o.push({alts:d,path:u}))}),o),[]);return b(s,o=>{const l=b(o.alts,u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:ce.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function nh(n,e,t,r){const i=oe(n,(a,o,l)=>{const c=b(o,u=>({idx:l,path:u}));return a.concat(c)},[]);return an(_e(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,c=a.path,u=Ee(i,f=>e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<l&&Bf(f.path,c));return b(u,f=>{const h=[f.idx+1,l+1],m=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:h,prefixPath:f.path}),type:ce.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:m,alternatives:h}})}))}function rh(n,e,t){const r=[],i=b(e,s=>s.name);return I(n,s=>{const a=s.name;if(ue(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:ce.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function ih(n){const e=_i(n,{errMsgProvider:Sf}),t={};return I(n.rules,r=>{t[r.name]=r}),xf(t,e.errMsgProvider)}function sh(n){return n=_i(n,{errMsgProvider:lt}),Wf(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const Nl="MismatchedTokenException",kl="NoViableAltException",Il="EarlyExitException",Sl="NotAllInputParsedException",xl=[Nl,kl,Il,Sl];Object.freeze(xl);function Mn(n){return ue(xl,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 Cl extends dr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Nl}}class ah extends dr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=kl}}class oh extends dr{constructor(e,t){super(e,t),this.name=Sl}}class lh extends dr{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Il}}const Nr={},wl="InRuleRecoveryException";class ch extends Error{constructor(e){super(e),this.name=wl}}class uh{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=S(e,"recoveryEnabled")?e.recoveryEnabled:Xe.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=dh)}getTokenToInsert(e){const t=Ci(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 l=!1;const c=this.LA(1);let u=this.LA(1);const d=()=>{const f=this.LA(0),h=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:f,ruleName:this.getCurrRuleFullName()}),m=new Cl(h,c,this.LA(0));m.resyncedTokens=tn(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(u,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(u,s)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,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=>vl(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Nr;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 b(e,(r,i)=>i===0?Nr:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=b(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return Ie(e)}getFollowSetFromFollowKey(e){if(e===Nr)return[tt];const t=e.ruleName+e.idxInCallingRule+ol+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 b(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function dh(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const f=this.getCurrRuleFullName(),h=this.getGAstProductions()[f];l=new s(h,i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&c===void 0&&(c=tt,u=1),!(c===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(n,e,t,c)}const fh=4,it=8,Ol=1<<it,Ll=2<<it,Br=3<<it,Hr=4<<it,Wr=5<<it,In=6<<it;function kr(n,e,t){return t|e|n}class Li{constructor(e){var t;this.maxLookahead=(t=e==null?void 0:e.maxLookahead)!==null&&t!==void 0?t:Xe.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 _e(e,t=>bl(t,t,lt))}validateEmptyOrAlternatives(e){return _e(e,t=>Yf(t,lt))}validateAmbiguousAlternationAlternatives(e,t){return _e(e,r=>Jf(r,t,lt))}validateSomeNonEmptyLookaheadPath(e,t){return eh(e,t,lt)}buildLookaheadForAlternation(e){return $f(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,jf)}buildLookaheadForOptional(e){return Df(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,wi(e.prodType),Uf)}}class hh{initLooksAhead(e){this.dynamicTokensEnabled=S(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Xe.dynamicTokensEnabled,this.maxLookahead=S(e,"maxLookahead")?e.maxLookahead:Xe.maxLookahead,this.lookaheadStrategy=S(e,"lookaheadStrategy")?e.lookaheadStrategy:new Li({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){I(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=mh(t);I(r,c=>{const u=c.idx===0?"":c.idx;this.TRACE_INIT(`${$e(c)}${u}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:t,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=kr(this.fullRuleNameToShort[t.name],Ol,c.idx);this.setLaFuncCache(f,d)})}),I(i,c=>{this.computeLookaheadFunc(t,c.idx,Br,"Repetition",c.maxLookahead,$e(c))}),I(s,c=>{this.computeLookaheadFunc(t,c.idx,Ll,"Option",c.maxLookahead,$e(c))}),I(a,c=>{this.computeLookaheadFunc(t,c.idx,Hr,"RepetitionMandatory",c.maxLookahead,$e(c))}),I(o,c=>{this.computeLookaheadFunc(t,c.idx,In,"RepetitionMandatoryWithSeparator",c.maxLookahead,$e(c))}),I(l,c=>{this.computeLookaheadFunc(t,c.idx,Wr,"RepetitionWithSeparator",c.maxLookahead,$e(c))})})})}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}),l=kr(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return kr(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class ph 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 En=new ph;function mh(n){En.reset(),n.accept(En);const e=En.dslMethods;return En.reset(),e}function Ns(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffset<e.endOffset&&(n.endOffset=e.endOffset)}function ks(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 gh(n,e,t){n.children[t]===void 0?n.children[t]=[e]:n.children[t].push(e)}function yh(n,e,t){n.children[e]===void 0?n.children[e]=[t]:n.children[e].push(t)}const vh="name";function Pl(n,e){Object.defineProperty(n,vh,{enumerable:!1,configurable:!0,writable:!1,value:e})}function _h(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 l=0;l<o;l++){const c=a[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}}function Th(n,e){const t=function(){};Pl(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=Rh(this,e);if(!D(i)){const s=b(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 Eh(n,e,t){const r=function(){};Pl(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return I(e,s=>{i[s]=_h}),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 Rh(n,e){return Ah(n,e)}function Ah(n,e){const t=Ee(e,i=>pt(n[i])===!1),r=b(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:Vr.MISSING_METHOD,methodName:i}));return an(r)}class bh{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=S(e,"nodeLocationTracking")?e.nodeLocationTracking:Xe.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=ks,this.setNodeLocationFromNode=ks,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=Ns,this.setNodeLocationFromNode=Ns,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];gh(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];yh(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(ze(this.baseCstVisitorConstructor)){const e=Th(this.className,Pt(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(ze(this.baseCstVisitorWithDefaultsConstructor)){const e=Eh(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 Nh{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 kh{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=jn){if(ue(this.definedRulesNames,e)){const a={message:lt.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:ce.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=jn){const i=Xf(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(Mn(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Ld(K(this.gastProductionsCache))}}class Ih{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={},S(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(S(e,"modes")&&we(Ie(K(e.modes)),bf)){const s=Ie(K(e.modes)),a=Ti(s);this.tokensMap=oe(a,(o,l)=>(o[l.name]=l,o),{})}else if(Jc(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=S(e,"modes")?Ie(K(e.modes)):K(e),i=we(r,s=>D(s.categoryMatches));this.tokenMatcher=i?Pn:cn,un(K(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=S(r,"resyncEnabled")?r.resyncEnabled:jn.resyncEnabled,s=S(r,"recoveryValueFunc")?r.recoveryValueFunc:jn.recoveryValueFunc,a=this.ruleShortNameIdx<<fh+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(Mn(e)){const a=e;if(s){const o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(e);else{if(this.outputCst){const l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),r(e);throw a}}else throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(Ll,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(Hr,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,G.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Hr,e,Pf)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(In,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,Rs],o,In,e,Rs)}else throw this.raiseEarlyExitException(e,G.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 l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,Br,e,Lf,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Wr,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,Es],o,Wr,e,Es)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,In,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(Ol,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 oh(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 Mn(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 Cl(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===wl?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 Sh{initErrorHandler(e){this._errors=[],this.errorMessageProvider=S(e,"errorMessageProvider")?e.errorMessageProvider:Xe.errorMessageProvider}SAVE_ERROR(e){if(Mn(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],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));const c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new lh(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=cr(e,i,this.maxLookahead),a=[];for(let c=1;c<=this.maxLookahead;c++)a.push(this.LA(c));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new ah(l,this.LA(1),o))}}class xh{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(ze(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return _l([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Le(e.ruleStack),i=this.getGAstProductions()[t];return new Of(i,e).startWalking()}}const fr={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(fr);const Is=!0,Ss=Math.pow(2,it)-1,Ml=yl({name:"RECORDING_PHASE_TOKEN",pattern:de.NA});un([Ml]);const $l=Ci(Ml,`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($l);const Ch={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 Kt({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 Yt.call(this,ee,e,t)}atLeastOneInternalRecord(e,t){Yt.call(this,Re,t,e)}atLeastOneSepFirstInternalRecord(e,t){Yt.call(this,Ae,t,e,Is)}manyInternalRecord(e,t){Yt.call(this,H,t,e)}manySepFirstInternalRecord(e,t){Yt.call(this,pe,t,e,Is)}orInternalRecord(e,t){return Oh.call(this,e,t)}subruleInternalRecord(e,t,r){if($n(t),!e||S(e,"ruleName")===!1){const o=new Error(`<SUBRULE${xs(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 le({idx:t,nonTerminalName:s,label:r==null?void 0:r.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?Ch:fr}consumeInternalRecord(e,t,r){if($n(t),!ml(e)){const a=new Error(`<CONSUME${xs(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 U({idx:t,terminalType:e,label:r==null?void 0:r.LABEL});return i.definition.push(s),$l}}function Yt(n,e,t,r=!1){$n(t);const i=Mt(this.recordingProdStack),s=pt(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),S(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),fr}function Oh(n,e){$n(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});S(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=lo(i,o=>pt(o.GATE));return s.hasPredicates=a,t.definition.push(s),I(i,o=>{const l=new he({definition:[]});s.definition.push(l),S(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:S(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),fr}function xs(n){return n===0?"":`${n}`}function $n(n){if(n<0||n>Ss){const e=new Error(`Invalid DSL Method idx value: <${n}>
Idx value must be a none negative value smaller than ${Ss+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class Lh{initPerformanceTracer(e){if(S(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=Xe.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}=sl(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 Ph(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=Ci(tt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Dn);const Xe=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:_t,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),jn=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var ce;(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"})(ce||(ce={}));function Cs(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",()=>{al(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),I(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=ih({rules:K(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(D(r)&&this.skipValidations===!1){const i=sh({rules:K(this.gastProductionsCache),tokenTypes:K(this.tokensMap),errMsgProvider:lt,grammarName:t}),s=Hf({lookaheadStrategy:this.lookaheadStrategy,rules:K(this.gastProductionsCache),tokenTypes:K(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),D(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Fd(K(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:K(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(K(this.gastProductionsCache))})),!dn.DEFER_DEFINITION_ERRORS_HANDLING&&!D(this.definitionErrors))throw e=b(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),S(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=S(t,"skipValidations")?t.skipValidations:Xe.skipValidations}}dn.DEFER_DEFINITION_ERRORS_HANDLING=!1;Ph(dn,[uh,hh,bh,Nh,Ih,kh,Sh,xh,wh,Lh]);class Mh extends dn{constructor(e,t=Xe){const r=te(t);r.outputCst=!1,super(e,r)}}function jt(n,e,t){return`${n.name}_${e}_${t}`}const nt=1,$h=2,Dl=4,jl=5,fn=7,Dh=8,jh=9,Uh=10,Fh=11,Ul=12;class Pi{constructor(e){this.target=e}isEpsilon(){return!1}}class Mi extends Pi{constructor(e,t){super(e),this.tokenType=t}}class Fl extends Pi{constructor(e){super(e)}isEpsilon(){return!0}}class $i extends Pi{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function Gh(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&&Zh(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=X(n,i,void 0,{type:$h}),a=X(n,i,void 0,{type:fn});s.stop=a,n.ruleToStartState.set(i,s),n.ruleToStopState.set(i,a)}}function Gl(n,e,t){return t instanceof U?Di(n,e,t.terminalType,t):t instanceof le?Qh(n,e,t):t instanceof me?zh(n,e,t):t instanceof ee?qh(n,e,t):t instanceof H?Hh(n,e,t):t instanceof pe?Wh(n,e,t):t instanceof Re?Vh(n,e,t):t instanceof Ae?Kh(n,e,t):gt(n,e,t)}function Hh(n,e,t){const r=X(n,e,t,{type:jl});st(n,r);const i=qt(n,e,r,t,gt(n,e,t));return Hl(n,e,t,i)}function Wh(n,e,t){const r=X(n,e,t,{type:jl});st(n,r);const i=qt(n,e,r,t,gt(n,e,t)),s=Di(n,e,t.separator,t);return Hl(n,e,t,i,s)}function Vh(n,e,t){const r=X(n,e,t,{type:Dl});st(n,r);const i=qt(n,e,r,t,gt(n,e,t));return Bl(n,e,t,i)}function Kh(n,e,t){const r=X(n,e,t,{type:Dl});st(n,r);const i=qt(n,e,r,t,gt(n,e,t)),s=Di(n,e,t.separator,t);return Bl(n,e,t,i,s)}function zh(n,e,t){const r=X(n,e,t,{type:nt});st(n,r);const i=b(t.definition,a=>Gl(n,e,a));return qt(n,e,r,t,...i)}function qh(n,e,t){const r=X(n,e,t,{type:nt});st(n,r);const i=qt(n,e,r,t,gt(n,e,t));return Xh(n,e,t,i)}function gt(n,e,t){const r=Ee(b(t.definition,i=>Gl(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:Jh(n,r)}function Bl(n,e,t,r,i){const s=r.left,a=r.right,o=X(n,e,t,{type:Fh});st(n,o);const l=X(n,e,t,{type:Ul});return s.loopback=o,l.loopback=o,n.decisionMap[jt(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,V(a,o),i===void 0?(V(o,s),V(o,l)):(V(o,l),V(o,i.left),V(i.right,s)),{left:s,right:l}}function Hl(n,e,t,r,i){const s=r.left,a=r.right,o=X(n,e,t,{type:Uh});st(n,o);const l=X(n,e,t,{type:Ul}),c=X(n,e,t,{type:jh});return o.loopback=c,l.loopback=c,V(o,s),V(o,l),V(a,c),i!==void 0?(V(c,l),V(c,i.left),V(i.right,s)):V(c,o),n.decisionMap[jt(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Xh(n,e,t,r){const i=r.left,s=r.right;return V(i,s),n.decisionMap[jt(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=X(n,e,r,{type:Dh,start:t});t.end=s;for(const o of i)o!==void 0?(V(t,o.left),V(o.right,s)):V(t,s);const a={left:t,right:s};return n.decisionMap[jt(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 H)return"Repetition";if(n instanceof pe)return"RepetitionWithSeparator";if(n instanceof Re)return"RepetitionMandatory";if(n instanceof Ae)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Jh(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 l=o instanceof $i,c=o,u=e[s+1].left;a.left.type===nt&&a.right.type===nt&&o!==void 0&&(l&&c.followState===a.right||o.target===a.right)?(l?c.followState=u:o.target=u,ep(n,a.right)):V(a.right,u)}const r=e[0],i=e[t-1];return{left:r.left,right:i.right}}function Di(n,e,t,r){const i=X(n,e,r,{type:nt}),s=X(n,e,r,{type:nt});return ji(i,new Mi(s,t)),{left:i,right:s}}function Qh(n,e,t){const r=t.referencedRule,i=n.ruleToStartState.get(r),s=X(n,e,t,{type:nt}),a=X(n,e,t,{type:nt}),o=new $i(i,r,a);return ji(s,o),{left:s,right:a}}function Zh(n,e,t){const r=n.ruleToStartState.get(e);V(r,t.left);const i=n.ruleToStopState.get(e);return V(t.right,i),{left:r,right:i}}function V(n,e){const t=new Fl(e);ji(n,t)}function X(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 ji(n,e){n.transitions.length===0&&(n.epsilonOnlyTransitions=e.isEpsilon()),n.transitions.push(e)}function ep(n,e){n.states.splice(n.states.indexOf(e),1)}const Un={};class Kr{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Wl(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return b(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Wl(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function tp(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 Vl{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 Vl;class np extends Li{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=Gh(e.rules),this.dfas=rp(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=jt(r,"Alternation",t),u=this.atn.decisionMap[l].decision,d=b(As({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),f=>b(f,h=>h[0]));if(Os(d,!1)&&!s){const f=oe(d,(h,m,g)=>(I(m,T=>{T&&(h[T.tokenTypeIdx]=g,I(T.categoryMatches,y=>{h[y]=g}))}),h),{});return i?function(h){var m;const g=this.LA(1),T=f[g.tokenTypeIdx];if(h!==void 0&&T!==void 0){const y=(m=h[T])===null||m===void 0?void 0:m.GATE;if(y!==void 0&&y.call(this)===!1)return}return T}:function(){const h=this.LA(1);return f[h.tokenTypeIdx]}}else return i?function(f){const h=new Vl,m=f===void 0?0:f.length;for(let T=0;T<m;T++){const y=f==null?void 0:f[T].GATE;h.set(T,y===void 0||y.call(this))}const g=Ir.call(this,a,u,h,o);return typeof g=="number"?g:void 0}:function(){const f=Ir.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,l=jt(r,i,t),u=this.atn.decisionMap[l].decision,d=b(As({maxLookahead:1,occurrence:t,prodType:i,rule:r}),f=>b(f,h=>h[0]));if(Os(d)&&d[0][0]&&!s){const f=d[0],h=Ie(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,T)=>(T!==void 0&&(g[T.tokenTypeIdx]=!0,I(T.categoryMatches,y=>{g[y]=!0})),g),{});return function(){const g=this.LA(1);return m[g.tokenTypeIdx]===!0}}}return function(){const f=Ir.call(this,a,u,ws,o);return typeof f=="object"?!1:f===0}}}function Os(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 rp(n){const e=n.decisionStates.length,t=Array(e);for(let r=0;r<e;r++)t[r]=tp(n.decisionStates[r],r);return t}function Ir(n,e,t,r){const i=n[e](t);let s=i.start;if(s===void 0){const o=pp(i.atnStartState);s=zl(i,Kl(o)),i.start=s}return ip.apply(this,[i,s,t,r])}function ip(n,e,t,r){let i=e,s=1;const a=[];let o=this.LA(s++);for(;;){let l=up(i,o);if(l===void 0&&(l=sp.apply(this,[n,i,o,s,t,r])),l===Un)return cp(a,i,o);if(l.isAcceptState===!0)return l.prediction;i=l,a.push(o),o=this.LA(s++)}}function sp(n,e,t,r,i,s){const a=dp(e.configs,t,i);if(a.size===0)return Ls(n,e,t,Un),Un;let o=Kl(a);const l=hp(a,i);if(l!==void 0)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(vp(a)){const c=Zc(a.alts);o.isAcceptState=!0,o.prediction=c,o.configs.uniqueAlt=c,ap.apply(this,[n,r,a.alts,s])}return o=Ls(n,e,t,o),o}function ap(n,e,t,r){const i=[];for(let c=1;c<=e;c++)i.push(this.LA(c).tokenType);const s=n.atnStartState,a=s.rule,o=s.production,l=op({topLevelRule:a,ambiguityIndices:t,production:o,prefixPath:i});r(l)}function op(n){const e=b(n.prefixPath,i=>Rt(i)).join(", "),t=n.production.idx===0?"":n.production.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(", ")}> in <${lp(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 lp(n){if(n instanceof le)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 Ae)return"AT_LEAST_ONE_SEP";if(n instanceof pe)return"MANY_SEP";if(n instanceof H)return"MANY";if(n instanceof U)return"CONSUME";throw Error("non exhaustive match")}function cp(n,e,t){const r=_e(e.configs.elements,s=>s.state.transitions),i=_u(r.filter(s=>s instanceof Mi).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:n}}function up(n,e){return n.edges[e.tokenTypeIdx]}function dp(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 l=0;l<o;l++){const c=a.state.transitions[l],u=fp(c,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)Fn(a,s)}if(i.length>0&&!gp(s))for(const a of i)s.add(a);return s}function fp(n,e){if(n instanceof Mi&&vl(e,n.tokenType))return n.target}function hp(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 Kl(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function Ls(n,e,t,r){return r=zl(n,r),e.edges[t.tokenTypeIdx]=r,r}function zl(n,e){if(e===Un)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 pp(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:[]};Fn(s,e)}return e}function Fn(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};Fn(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=mp(n,s);a!==void 0&&Fn(a,e)}}function mp(n,e){if(e instanceof Fl)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 gp(n){for(const e of n.elements)if(e.state.type===fn)return!0;return!1}function yp(n){for(const e of n.elements)if(e.state.type!==fn)return!1;return!0}function vp(n){if(yp(n))return!0;const e=_p(n.elements);return Tp(e)&&!Ep(e)}function _p(n){const e=new Map;for(const t of n){const r=Wl(t,!1);let i=e.get(r);i===void 0&&(i={},e.set(r,i)),i[t.alt]=!0}return e}function Tp(n){for(const e of Array.from(n.values()))if(Object.keys(e).length>1)return!0;return!1}function Ep(n){for(const e of Array.from(n.values()))if(Object.keys(e).length===1)return!0;return!1}var Ps;(function(n){function e(t){return typeof t=="string"}n.is=e})(Ps||(Ps={}));var zr;(function(n){function e(t){return typeof t=="string"}n.is=e})(zr||(zr={}));var Ms;(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})(Ms||(Ms={}));var Gn;(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})(Gn||(Gn={}));var M;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Gn.MAX_VALUE),i===Number.MAX_VALUE&&(i=Gn.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})(M||(M={}));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:M.create(r,i),end:M.create(s,a)};if(M.is(r)&&M.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)&&M.is(i.start)&&M.is(i.end)}n.is=t})(P||(P={}));var Bn;(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})(Bn||(Bn={}));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 qr;(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})(qr||(qr={}));var Ds;(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)&&qr.is(i.color)}n.is=t})(Ds||(Ds={}));var js;(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)||Ft.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Ft.is))}n.is=t})(js||(js={}));var Us;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Us||(Us={}));var Fs;(function(n){function e(r,i,s,a,o,l){const c={startLine:r,endLine:i};return p.defined(s)&&(c.startCharacter=s),p.defined(a)&&(c.endCharacter=a),p.defined(o)&&(c.kind=o),p.defined(l)&&(c.collapsedText=l),c}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})(Fs||(Fs={}));var Xr;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&Bn.is(i.location)&&p.string(i.message)}n.is=t})(Xr||(Xr={}));var Gs;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(Gs||(Gs={}));var Bs;(function(n){n.Unnecessary=1,n.Deprecated=2})(Bs||(Bs={}));var Hs;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&p.string(r.href)}n.is=e})(Hs||(Hs={}));var Hn;(function(n){function e(r,i,s,a,o,l){let c={range:r,message:i};return p.defined(s)&&(c.severity=s),p.defined(a)&&(c.code=a),p.defined(o)&&(c.source=o),p.defined(l)&&(c.relatedInformation=l),c}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,Xr.is))}n.is=t})(Hn||(Hn={}));var Ut;(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})(Ut||(Ut={}));var Ft;(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})(Ft||(Ft={}));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 Gt;(function(n){function e(t){const r=t;return p.string(r)}n.is=e})(Gt||(Gt={}));var Ws;(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 Ft.is(a)&&(Yr.is(a.annotationId)||Gt.is(a.annotationId))}n.is=i})(Ws||(Ws={}));var Jr;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&ni.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(Jr||(Jr={}));var Qr;(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||Gt.is(i.annotationId))}n.is=t})(Qr||(Qr={}));var Zr;(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||Gt.is(i.annotationId))}n.is=t})(Zr||(Zr={}));var ei;(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||Gt.is(i.annotationId))}n.is=t})(ei||(ei={}));var ti;(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)?Qr.is(i)||Zr.is(i)||ei.is(i):Jr.is(i)))}n.is=e})(ti||(ti={}));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 ni;(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})(ni||(ni={}));var zs;(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})(zs||(zs={}));var ri;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){const r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(ri||(ri={}));var nn;(function(n){function e(t){const r=t;return p.objectLiteral(t)&&ri.is(r.kind)&&p.string(r.value)}n.is=e})(nn||(nn={}));var qs;(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})(qs||(qs={}));var Xs;(function(n){n.PlainText=1,n.Snippet=2})(Xs||(Xs={}));var Ys;(function(n){n.Deprecated=1})(Ys||(Ys={}));var Js;(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})(Js||(Js={}));var Qs;(function(n){n.asIs=1,n.adjustIndentation=2})(Qs||(Qs={}));var Zs;(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})(Zs||(Zs={}));var ea;(function(n){function e(t){return{label:t}}n.create=e})(ea||(ea={}));var ta;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(ta||(ta={}));var Wn;(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})(Wn||(Wn={}));var na;(function(n){function e(t){let r=t;return!!r&&p.objectLiteral(r)&&(nn.is(r.contents)||Wn.is(r.contents)||p.typedArray(r.contents,Wn.is))&&(t.range===void 0||P.is(t.range))}n.is=e})(na||(na={}));var ra;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(ra||(ra={}));var ia;(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})(ia||(ia={}));var sa;(function(n){n.Text=1,n.Read=2,n.Write=3})(sa||(sa={}));var aa;(function(n){function e(t,r){let i={range:t};return p.number(r)&&(i.kind=r),i}n.create=e})(aa||(aa={}));var oa;(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})(oa||(oa={}));var la;(function(n){n.Deprecated=1})(la||(la={}));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 ua;(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})(ua||(ua={}));var da;(function(n){function e(r,i,s,a,o,l){let c={name:r,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(c.children=l),c}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})(da||(da={}));var fa;(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"})(fa||(fa={}));var Vn;(function(n){n.Invoked=1,n.Automatic=2})(Vn||(Vn={}));var ha;(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,Hn.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Vn.Invoked||i.triggerKind===Vn.Automatic)}n.is=t})(ha||(ha={}));var pa;(function(n){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Ut.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,Hn.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Ut.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||ti.is(i.edit))}n.is=t})(pa||(pa={}));var ma;(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)||Ut.is(i.command))}n.is=t})(ma||(ma={}));var ga;(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})(ga||(ga={}));var ya;(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})(ya||(ya={}));var va;(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})(va||(va={}));var _a;(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"})(_a||(_a={}));var Ta;(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"})(Ta||(Ta={}));var Ea;(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})(Ea||(Ea={}));var Ra;(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})(Ra||(Ra={}));var Aa;(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})(Aa||(Aa={}));var ba;(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})(ba||(ba={}));var Na;(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})(Na||(Na={}));var ii;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(ii||(ii={}));var si;(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||Bn.is(i.location))&&(i.command===void 0||Ut.is(i.command))}n.is=t})(si||(si={}));var ka;(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)&&M.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,si.is))&&(i.kind===void 0||ii.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Ft.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})(ka||(ka={}));var Ia;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(Ia||(Ia={}));var Sa;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(Sa||(Sa={}));var xa;(function(n){function e(t){return{items:t}}n.create=e})(xa||(xa={}));var Ca;(function(n){n.Invoked=0,n.Automatic=1})(Ca||(Ca={}));var wa;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(wa||(wa={}));var Oa;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(Oa||(Oa={}));var La;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&zr.is(r.uri)&&p.string(r.name)}n.is=e})(La||(La={}));var Pa;(function(n){function e(s,a,o,l){return new Rp(s,a,o,l)}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(),l=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}),c=o.length;for(let u=l.length-1;u>=0;u--){let d=l[u],f=s.offsetAt(d.range.start),h=s.offsetAt(d.range.end);if(h<=c)o=o.substring(0,f)+d.newText+o.substring(h,o.length);else throw new Error("Overlapping edit");c=f}return o}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),c=s.slice(o);i(l,a),i(c,a);let u=0,d=0,f=0;for(;u<l.length&&d<c.length;)a(l[u],c[d])<=0?s[f++]=l[u++]:s[f++]=c[d++];for(;u<l.length;)s[f++]=l[u++];for(;d<c.length;)s[f++]=c[d++];return s}})(Pa||(Pa={}));let Rp=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 M.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 M.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 l(h){return e.call(h)==="[object Number]"&&-2147483648<=h&&h<=2147483647}n.integer=l;function c(h){return e.call(h)==="[object Number]"&&0<=h&&h<=2147483647}n.uinteger=c;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 Ap{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new Xl(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new Ui;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new ai(e.startOffset,e.image.length,Mr(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 ai(t.startOffset,t.image.length,Mr(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:l}=a;if(Dt(a)&&r>o&&i<l){this.addHiddenToken(a,t);return}else if(i<=o){e.content.splice(s,0,t);return}}e.content.push(t)}}class ql{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 ai extends ql{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 Ui extends ql{constructor(){super(...arguments),this.content=new Fi(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:M.create(0,0),end:M.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 Fi extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Fi.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 Xl extends Ui{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const oi=Symbol("Datatype");function Sr(n){return n.$type===oi}const Ma="",Yl=n=>n.endsWith(Ma)?n:n+Ma;class Jl{constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition;this.wrapper=new Sp(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 bp extends Jl{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Ap,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:ki(e)?oi:sr(e),i=this.wrapper.DEFINE_RULE(Yl(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===oi&&(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),l=this.current;if(a){const c=ut(r)?i.image:this.converter.convert(i.image,s);this.assign(a.operator,a.feature,c,s,o)}else if(Sr(l)){let c=i.image;ut(r)||(c=this.converter.convert(c,s).toString()),l.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,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(Sr(a))a.value+=e.toString();else if(typeof e=="object"&&e){const o=e.$type,l=this.assignWithoutOverride(e,a);o&&(l.$type=o);const c=l;this.stack.pop(),this.stack.push(c)}}}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 nd(t),this.nodeBuilder.construct(t),e&&this.stack.pop(),Sr(t)?this.converter.convert(t.value,t.$cstNode):(id(this.astReflection,t),t)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=nr(e,ct);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Ri(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 Np{buildMismatchTokenMessage(e){return _t.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return _t.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return _t.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return _t.buildEarlyExitMessage(e)}}class Ql extends Np{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 kp extends Jl{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(Yl(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 Ip={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Ql};class Sp extends Mh{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},Ip),{lookaheadStrategy:r?new Li({maxLookahead:t.maxLookahead}):new np}),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 Zl(n,e,t){return xp({parser:e,tokens:t,rules:new Map,ruleNames:new Map},n),e}function xp(n,e){const t=Jo(e,!1),r=Q(e.rules).filter(Se).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=Cp(n,e);else if(ct(e))r=ht(n,e.terminal);else if(Ri(e))r=ec(n,e);else if(dt(e))r=wp(n,e);else if(Co(e))r=Lp(n,e);else if(Wo(e))r=Pp(n,e);else if(Ai(e))r=Mp(n,e);else if(qu(e)){const i=n.consume++;r=()=>n.parser.consume(i,tt,e)}else throw new ho(e.$cstNode,`Unexpected element type: ${e.$type}`);return tc(n,t?void 0:Kn(e),r,e.cardinality)}function Cp(n,e){const t=sr(e);return()=>n.parser.action(t,e)}function wp(n,e){const t=e.rule.ref;if(Se(t)){const r=n.subrule++,i=e.arguments.length>0?Op(t,e.arguments):()=>({});return s=>n.parser.subrule(r,nc(n,t),e,i(s))}else if(mt(t)){const r=n.consume++,i=li(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 Op(n,e){const t=e.map(r=>Ve(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 Ve(n){if(Mu(n)){const e=Ve(n.left),t=Ve(n.right);return r=>e(r)||t(r)}else if(Pu(n)){const e=Ve(n.left),t=Ve(n.right);return r=>e(r)&&t(r)}else if(Du(n)){const e=Ve(n.value);return t=>!e(t)}else if(Fu(n)){const e=n.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Lu(n)){const e=!!n.true;return()=>e}er()}function Lp(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=Kn(i);a&&(s.GATE=Ve(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 Pp(n,e){if(e.elements.length===1)return ht(n,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:ht(n,o,!0)},c=Kn(o);c&&(l.GATE=Ve(c)),t.push(l)}const r=n.or++,i=(o,l)=>{const c=l.getRuleStack().join("-");return`uGroup_${o}_${c}`},s=o=>n.parser.alternatives(r,t.map((l,c)=>{const u={ALT:()=>!0},d=n.parser;u.ALT=()=>{if(l.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[c])>"u"&&(m[c]=!0)}};const f=l.GATE;return f?u.GATE=()=>f(o):u.GATE=()=>{const h=d.unorderedGroups.get(i(r,d));return!(h!=null&&h[c])},u})),a=tc(n,Kn(e),s,"*");return o=>{a(o),n.parser.isRecording()||n.parser.unorderedGroups.delete(i(r,n.parser))}}function Mp(n,e){const t=e.elements.map(r=>ht(n,r));return r=>t.forEach(i=>i(r))}function Kn(n){if(Ai(n))return n.guardCondition}function ec(n,e,t=e.terminal){if(t)if(dt(t)&&Se(t.rule.ref)){const r=n.subrule++;return i=>n.parser.subrule(r,nc(n,t.rule.ref),e,i)}else if(dt(t)&&mt(t.rule.ref)){const r=n.consume++,i=li(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}else if(ut(t)){const r=n.consume++,i=li(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=el(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 ec(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 tc(n,e,t,r){const i=e&&Ve(e);if(!r)if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:Cs(),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:Cs(),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 nc(n,e){const t=Dp(n,e),r=n.rules.get(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function Dp(n,e){if(Se(e))return e.name;if(n.ruleNames.has(e))return n.ruleNames.get(e);{let t=e,r=t.$container,i=e.$type;for(;!Se(r);)(Ai(r)||Co(r)||Wo(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 li(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function jp(n){const e=n.Grammar,t=n.parser.Lexer,r=new kp(n);return Zl(e,r,t.definition),r.finalize(),r}function Up(n){const e=Fp(n);return e.finalize(),e}function Fp(n){const e=n.Grammar,t=n.parser.Lexer,r=new bp(n);return Zl(e,r,t.definition)}class rc{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&&as(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=Ii(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=as(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(Se).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(fd(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&&hd("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class ic{convert(e,t){let r=t.grammarSource;if(Ri(r)&&(r=yd(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 We.convertInt(t);case"STRING":return We.convertString(t);case"ID":return We.convertID(t)}switch((i=bd(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return We.convertNumber(t);case"boolean":return We.convertBoolean(t);case"bigint":return We.convertBigint(t);case"date":return We.convertDate(t);default:return t}}}var We;(function(n){function e(c){let u="";for(let d=1;d<c.length-1;d++){const f=c.charAt(d);if(f==="\\"){const h=c.charAt(++d);u+=t(h)}else u+=f}return u}n.convertString=e;function t(c){switch(c){case"b":return"\b";case"f":return"\f";case"n":return`
`;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return c}}function r(c){return c.charAt(0)==="^"?c.substring(1):c}n.convertID=r;function i(c){return parseInt(c)}n.convertInt=i;function s(c){return BigInt(c)}n.convertBigint=s;function a(c){return new Date(c)}n.convertDate=a;function o(c){return Number(c)}n.convertNumber=o;function l(c){return c.toLowerCase()==="true"}n.convertBoolean=l})(We||(We={}));var rn={},hr={};Object.defineProperty(hr,"__esModule",{value:!0});let ci;function ui(){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})(ui||(ui={}));hr.default=ui;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 Gp(n){return n===!0||n===!1}se.boolean=Gp;function sc(n){return typeof n=="string"||n instanceof String}se.string=sc;function Bp(n){return typeof n=="number"||n instanceof Number}se.number=Bp;function Hp(n){return n instanceof Error}se.error=Hp;function Wp(n){return typeof n=="function"}se.func=Wp;function ac(n){return Array.isArray(n)}se.array=ac;function Vp(n){return ac(n)&&n.every(e=>sc(e))}se.stringArray=Vp;var Bt={};Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Emitter=Bt.Event=void 0;const Kp=hr;var $a;(function(n){const e={dispose(){}};n.None=function(){return e}})($a||(Bt.Event=$a={}));class zp{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 zp),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)}}Bt.Emitter=pr;pr._noop=function(){};var Y;Object.defineProperty(rn,"__esModule",{value:!0});var di=rn.CancellationTokenSource=Y=rn.CancellationToken=void 0;const qp=hr,Xp=se,fi=Bt;var zn;(function(n){n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:fi.Event.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:fi.Event.None});function e(t){const r=t;return r&&(r===n.None||r===n.Cancelled||Xp.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}n.is=e})(zn||(Y=rn.CancellationToken=zn={}));const Yp=Object.freeze(function(n,e){const t=(0,qp.default)().timer.setTimeout(n.bind(e),0);return{dispose(){t.dispose()}}});class Da{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 fi.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class Jp{get token(){return this._token||(this._token=new Da),this._token}cancel(){this._token?this._token.cancel():this._token=zn.Cancelled}dispose(){this._token?this._token instanceof Da&&this._token.dispose():this._token=zn.None}}di=rn.CancellationTokenSource=Jp;function Qp(){return new Promise(n=>{typeof setImmediate>"u"?setTimeout(n,0):setImmediate(n)})}let ja=0,Zp=10;const qn=Symbol("OperationCancelled");function Gi(n){return n===qn}async function Oe(n){if(n===Y.None)return;const e=Date.now();if(e-ja>=Zp&&(ja=e,await Qp()),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=lc(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),l=Math.max(i.end.line,0);let c=this._lineOffsets;const u=Ua(r.text,!1,s);if(l-o===u.length)for(let f=0,h=u.length;f<h;f++)c[f+o+1]=u[f];else u.length<1e4?c.splice(o+1,l-o,...u):this._lineOffsets=c=c.slice(0,o+1).concat(u,c.slice(l+1));const d=r.text.length-(a-s);if(d!==0)for(let f=o+1+u.length,h=c.length;f<h;f++)c[f]=c[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=Ua(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&&oc(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 hi;(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=pi(s.map(em),(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 l=0;const c=[];for(const u of o){const d=i.offsetAt(u.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&c.push(a.substring(l,d)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(a.substr(l)),c.join("")}n.applyEdits=r})(hi||(hi={}));function pi(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);pi(r,e),pi(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 Ua(n,e,t=0){const r=e?[t]:[];for(let i=0;i<n.length;i++){const s=n.charCodeAt(i);oc(s)&&(s===13&&i+1<n.length&&n.charCodeAt(i+1)===10&&i++,r.push(t+i+1))}return r}function oc(n){return n===13||n===10}function lc(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 em(n){const e=lc(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var xr={version:"v20.17.0",versions:{node:"20.17.0",acorn:"8.11.3",ada:"2.9.0",ares:"1.32.3",base64:"0.5.2",brotli:"1.1.0",cjs_module_lexer:"1.2.2",cldr:"45.0",icu:"75.1",llhttp:"8.1.2",modules:"115",napi:"9",nghttp2:"1.61.0",nghttp3:"0.7.0",ngtcp2:"1.1.0",openssl:"3.0.13+quic",simdutf:"5.3.0",tz:"2024a",undici:"6.19.2",unicode:"15.1",uv:"1.46.0",uvwasi:"0.0.21",v8:"11.3.244.8-node.23",zlib:"1.3.0.1-motley-209717d"},arch:"x64",platform:"linux",release:{name:"node",lts:"Iron",sourceUrl:"https://nodejs.org/download/release/v20.17.0/node-v20.17.0.tar.gz",headersUrl:"https://nodejs.org/download/release/v20.17.0/node-v20.17.0-headers.tar.gz"},moduleLoadList:["Internal Binding builtins","Internal Binding module_wrap","Internal Binding errors","NativeModule internal/assert","Internal Binding util","NativeModule internal/errors","Internal Binding config","Internal Binding timers","Internal Binding async_wrap","Internal Binding task_queue","Internal Binding symbols","NativeModule internal/async_hooks","Internal Binding constants","Internal Binding types","Internal Binding options","NativeModule internal/options","Internal Binding string_decoder","NativeModule internal/util","NativeModule internal/util/types","NativeModule internal/validators","NativeModule internal/linkedlist","NativeModule internal/priority_queue","Internal Binding icu","NativeModule internal/util/inspect","NativeModule internal/util/debuglog","NativeModule internal/timers","NativeModule internal/events/abort_listener","NativeModule events","Internal Binding buffer","NativeModule internal/buffer","NativeModule buffer","Internal Binding messaging","NativeModule internal/worker/js_transferable","NativeModule internal/querystring","NativeModule internal/constants","NativeModule path","NativeModule querystring","Internal Binding url","NativeModule internal/url","NativeModule internal/fs/utils","Internal Binding process_methods","NativeModule internal/process/per_thread","Internal Binding credentials","NativeModule internal/process/promises","NativeModule internal/fixed_queue","NativeModule async_hooks","NativeModule internal/process/task_queues","NativeModule timers","Internal Binding trace_events","Internal Binding contextify","NativeModule internal/vm","NativeModule internal/process/execution","NativeModule internal/process/warning","NativeModule internal/source_map/source_map_cache","Internal Binding fs","Internal Binding blob","Internal Binding encoding_binding","NativeModule internal/encoding","NativeModule util","NativeModule internal/webstreams/util","NativeModule internal/webstreams/queuingstrategies","NativeModule internal/blob","Internal Binding permission","NativeModule internal/process/permission","NativeModule fs","NativeModule internal/modules/helpers","NativeModule internal/console/constructor","NativeModule internal/console/global","NativeModule internal/util/inspector","Internal Binding inspector","NativeModule internal/webidl","Internal Binding performance","NativeModule internal/perf/utils","NativeModule internal/event_target","Internal Binding wasm_web_api","Internal Binding mksnapshot","NativeModule internal/v8/startup_snapshot","NativeModule internal/process/signal","NativeModule internal/idna","NativeModule url","NativeModule internal/modules/package_json_reader","NativeModule internal/modules/cjs/loader","NativeModule internal/process/pre_execution","NativeModule internal/modules/esm/utils","NativeModule internal/inspector_async_hook","Internal Binding worker","NativeModule internal/modules/run_main","NativeModule internal/net","NativeModule internal/dns/utils","NativeModule internal/modules/esm/assert","NativeModule internal/modules/esm/loader","NativeModule internal/modules/esm/module_map","NativeModule internal/modules/esm/translators","NativeModule internal/modules/esm/package_config","NativeModule internal/modules/esm/formats","NativeModule internal/modules/esm/get_format","NativeModule internal/modules/esm/resolve","NativeModule internal/modules/esm/module_job","NativeModule internal/modules/esm/load","Internal Binding fs_dir","NativeModule internal/fs/dir","NativeModule string_decoder","Internal Binding fs_event_wrap","Internal Binding uv","NativeModule internal/fs/watchers","NativeModule internal/fs/recursive_watch","NativeModule internal/streams/utils","NativeModule internal/readline/utils","NativeModule internal/readline/callbacks","NativeModule internal/readline/interface","NativeModule internal/fs/promises","NativeModule internal/perf/performance_entry","NativeModule internal/perf/observe","NativeModule internal/perf/resource_timing","NativeModule internal/perf/nodetiming","NativeModule internal/perf/usertiming","NativeModule internal/perf/event_loop_utilization","NativeModule internal/histogram","NativeModule internal/perf/timerify","NativeModule internal/perf/performance","NativeModule internal/perf/event_loop_delay","NativeModule perf_hooks","NativeModule internal/modules/esm/initialize_import_meta","NativeModule internal/streams/destroy","NativeModule internal/abort_controller","NativeModule internal/streams/end-of-stream","NativeModule internal/streams/legacy","NativeModule internal/streams/add-abort-signal","NativeModule internal/streams/state","NativeModule internal/streams/from","NativeModule internal/streams/readable","NativeModule internal/streams/writable","NativeModule internal/streams/duplex","NativeModule internal/streams/pipeline","NativeModule internal/streams/compose","NativeModule internal/streams/operators","NativeModule stream/promises","NativeModule internal/streams/transform","NativeModule internal/streams/passthrough","NativeModule internal/streams/duplexpair","NativeModule stream","NativeModule internal/fs/streams","NativeModule fs/promises","NativeModule internal/util/parse_args/utils","NativeModule internal/util/parse_args/parse_args","NativeModule internal/mime","NativeModule internal/source_map/source_map","NativeModule module","Internal Binding stream_wrap","Internal Binding tcp_wrap","Internal Binding pipe_wrap","NativeModule internal/stream_base_commons","NativeModule diagnostics_channel","NativeModule net","Internal Binding tty_wrap","NativeModule internal/tty","NativeModule tty","NativeModule internal/deps/cjs-module-lexer/dist/lexer","Internal Binding udp_wrap","NativeModule internal/dgram","NativeModule dgram","Internal Binding process_wrap","NativeModule internal/socket_list","Internal Binding spawn_sync","NativeModule internal/child_process","NativeModule child_process","NativeModule _http_agent","Internal Binding http_parser","NativeModule internal/freelist","NativeModule _http_incoming","NativeModule _http_common","NativeModule internal/http","NativeModule _http_outgoing","NativeModule _http_client","NativeModule _http_server","NativeModule http","Internal Binding crypto","Internal Binding cares_wrap","NativeModule internal/crypto/hashnames","NativeModule internal/crypto/util","NativeModule internal/tls/secure-context","NativeModule _tls_common","NativeModule internal/crypto/random","NativeModule internal/crypto/pbkdf2","NativeModule internal/crypto/scrypt","NativeModule internal/crypto/keys","NativeModule internal/crypto/hkdf","NativeModule internal/crypto/keygen","NativeModule internal/crypto/diffiehellman","NativeModule internal/streams/lazy_transform","NativeModule internal/crypto/cipher","NativeModule internal/crypto/sig","NativeModule internal/crypto/hash","NativeModule internal/crypto/x509","NativeModule internal/crypto/certificate","NativeModule crypto","Internal Binding js_stream","NativeModule internal/js_stream_socket","Internal Binding tls_wrap","NativeModule _tls_wrap","NativeModule internal/tls/secure-pair","NativeModule tls","NativeModule https","Internal Binding block_list","NativeModule internal/socketaddress","NativeModule internal/blocklist","Internal Binding os","NativeModule os","NativeModule internal/crypto/webcrypto","NativeModule internal/dns/callback_resolver","NativeModule dns","NativeModule internal/dns/promises","NativeModule internal/util/colors","NativeModule internal/assert/assertion_error","NativeModule internal/assert/calltracker","NativeModule assert","Internal Binding serdes","Internal Binding profiler","Internal Binding heap_utils","Internal Binding internal_only_v8","NativeModule internal/heap_utils","NativeModule internal/promise_hooks","Internal Binding v8","NativeModule v8","NativeModule internal/worker/io","NativeModule internal/error_serdes","NativeModule internal/worker","NativeModule worker_threads","NativeModule internal/file","NativeModule internal/readline/emitKeypressEvents","NativeModule internal/readline/promises","NativeModule readline/promises","NativeModule readline","Internal Binding zlib","NativeModule zlib","NativeModule process","Internal Binding report","NativeModule internal/process/report","NativeModule constants"],_events:{newListener:[null,null],removeListener:[null,null]},_eventsCount:3,domain:null,_exiting:!1,config:{target_defaults:{cflags:[],default_configuration:"Release",defines:["NODE_OPENSSL_CONF_NAME=nodejs_conf","NODE_OPENSSL_HAS_QUIC","ICU_NO_USER_DATA_OVERRIDE"],include_dirs:[],libraries:[]},variables:{asan:0,coverage:!1,dcheck_always_on:0,debug_nghttp2:!1,debug_node:!1,enable_lto:!1,enable_pgo_generate:!1,enable_pgo_use:!1,error_on_warn:!1,force_dynamic_crt:0,gas_version:"2.35",host_arch:"x64",icu_data_in:"../../deps/icu-tmp/icudt75l.dat",icu_endianness:"l",icu_gyp_path:"tools/icu/icu-generic.gyp",icu_path:"deps/icu-small",icu_small:!1,icu_ver_major:"75",is_debug:0,libdir:"lib",llvm_version:"0.0",napi_build_version:"9",node_builtin_shareable_builtins:["deps/cjs-module-lexer/lexer.js","deps/cjs-module-lexer/dist/lexer.js","deps/undici/undici.js"],node_byteorder:"little",node_debug_lib:!1,node_enable_d8:!1,node_enable_v8_vtunejit:!1,node_fipsinstall:!1,node_install_corepack:!0,node_install_npm:!0,node_library_files:["lib/_http_agent.js","lib/_http_client.js","lib/_http_common.js","lib/_http_incoming.js","lib/_http_outgoing.js","lib/_http_server.js","lib/_stream_duplex.js","lib/_stream_passthrough.js","lib/_stream_readable.js","lib/_stream_transform.js","lib/_stream_wrap.js","lib/_stream_writable.js","lib/_tls_common.js","lib/_tls_wrap.js","lib/assert.js","lib/assert/strict.js","lib/async_hooks.js","lib/buffer.js","lib/child_process.js","lib/cluster.js","lib/console.js","lib/constants.js","lib/crypto.js","lib/dgram.js","lib/diagnostics_channel.js","lib/dns.js","lib/dns/promises.js","lib/domain.js","lib/events.js","lib/fs.js","lib/fs/promises.js","lib/http.js","lib/http2.js","lib/https.js","lib/inspector.js","lib/inspector/promises.js","lib/internal/abort_controller.js","lib/internal/assert.js","lib/internal/assert/assertion_error.js","lib/internal/assert/calltracker.js","lib/internal/async_hooks.js","lib/internal/blob.js","lib/internal/blocklist.js","lib/internal/bootstrap/node.js","lib/internal/bootstrap/realm.js","lib/internal/bootstrap/shadow_realm.js","lib/internal/bootstrap/switches/does_not_own_process_state.js","lib/internal/bootstrap/switches/does_own_process_state.js","lib/internal/bootstrap/switches/is_main_thread.js","lib/internal/bootstrap/switches/is_not_main_thread.js","lib/internal/bootstrap/web/exposed-wildcard.js","lib/internal/bootstrap/web/exposed-window-or-worker.js","lib/internal/buffer.js","lib/internal/child_process.js","lib/internal/child_process/serialization.js","lib/internal/cli_table.js","lib/internal/cluster/child.js","lib/internal/cluster/primary.js","lib/internal/cluster/round_robin_handle.js","lib/internal/cluster/shared_handle.js","lib/internal/cluster/utils.js","lib/internal/cluster/worker.js","lib/internal/console/constructor.js","lib/internal/console/global.js","lib/internal/constants.js","lib/internal/crypto/aes.js","lib/internal/crypto/certificate.js","lib/internal/crypto/cfrg.js","lib/internal/crypto/cipher.js","lib/internal/crypto/diffiehellman.js","lib/internal/crypto/ec.js","lib/internal/crypto/hash.js","lib/internal/crypto/hashnames.js","lib/internal/crypto/hkdf.js","lib/internal/crypto/keygen.js","lib/internal/crypto/keys.js","lib/internal/crypto/mac.js","lib/internal/crypto/pbkdf2.js","lib/internal/crypto/random.js","lib/internal/crypto/rsa.js","lib/internal/crypto/scrypt.js","lib/internal/crypto/sig.js","lib/internal/crypto/util.js","lib/internal/crypto/webcrypto.js","lib/internal/crypto/webidl.js","lib/internal/crypto/x509.js","lib/internal/debugger/inspect.js","lib/internal/debugger/inspect_client.js","lib/internal/debugger/inspect_repl.js","lib/internal/dgram.js","lib/internal/dns/callback_resolver.js","lib/internal/dns/promises.js","lib/internal/dns/utils.js","lib/internal/encoding.js","lib/internal/error_serdes.js","lib/internal/errors.js","lib/internal/event_target.js","lib/internal/events/abort_listener.js","lib/internal/events/symbols.js","lib/internal/file.js","lib/internal/fixed_queue.js","lib/internal/freelist.js","lib/internal/freeze_intrinsics.js","lib/internal/fs/cp/cp-sync.js","lib/internal/fs/cp/cp.js","lib/internal/fs/dir.js","lib/internal/fs/promises.js","lib/internal/fs/read/context.js","lib/internal/fs/recursive_watch.js","lib/internal/fs/rimraf.js","lib/internal/fs/streams.js","lib/internal/fs/sync_write_stream.js","lib/internal/fs/utils.js","lib/internal/fs/watchers.js","lib/internal/heap_utils.js","lib/internal/histogram.js","lib/internal/http.js","lib/internal/http2/compat.js","lib/internal/http2/core.js","lib/internal/http2/util.js","lib/internal/idna.js","lib/internal/inspector_async_hook.js","lib/internal/js_stream_socket.js","lib/internal/legacy/processbinding.js","lib/internal/linkedlist.js","lib/internal/main/check_syntax.js","lib/internal/main/embedding.js","lib/internal/main/eval_stdin.js","lib/internal/main/eval_string.js","lib/internal/main/inspect.js","lib/internal/main/mksnapshot.js","lib/internal/main/print_help.js","lib/internal/main/prof_process.js","lib/internal/main/repl.js","lib/internal/main/run_main_module.js","lib/internal/main/test_runner.js","lib/internal/main/watch_mode.js","lib/internal/main/worker_thread.js","lib/internal/mime.js","lib/internal/modules/cjs/loader.js","lib/internal/modules/esm/assert.js","lib/internal/modules/esm/create_dynamic_module.js","lib/internal/modules/esm/fetch_module.js","lib/internal/modules/esm/formats.js","lib/internal/modules/esm/get_format.js","lib/internal/modules/esm/hooks.js","lib/internal/modules/esm/initialize_import_meta.js","lib/internal/modules/esm/load.js","lib/internal/modules/esm/loader.js","lib/internal/modules/esm/module_job.js","lib/internal/modules/esm/module_map.js","lib/internal/modules/esm/package_config.js","lib/internal/modules/esm/resolve.js","lib/internal/modules/esm/shared_constants.js","lib/internal/modules/esm/translators.js","lib/internal/modules/esm/utils.js","lib/internal/modules/esm/worker.js","lib/internal/modules/helpers.js","lib/internal/modules/package_json_reader.js","lib/internal/modules/run_main.js","lib/internal/navigator.js","lib/internal/net.js","lib/internal/options.js","lib/internal/per_context/domexception.js","lib/internal/per_context/messageport.js","lib/internal/per_context/primordials.js","lib/internal/perf/event_loop_delay.js","lib/internal/perf/event_loop_utilization.js","lib/internal/perf/nodetiming.js","lib/internal/perf/observe.js","lib/internal/perf/performance.js","lib/internal/perf/performance_entry.js","lib/internal/perf/resource_timing.js","lib/internal/perf/timerify.js","lib/internal/perf/usertiming.js","lib/internal/perf/utils.js","lib/internal/policy/manifest.js","lib/internal/policy/sri.js","lib/internal/priority_queue.js","lib/internal/process/execution.js","lib/internal/process/per_thread.js","lib/internal/process/permission.js","lib/internal/process/policy.js","lib/internal/process/pre_execution.js","lib/internal/process/promises.js","lib/internal/process/report.js","lib/internal/process/signal.js","lib/internal/process/task_queues.js","lib/internal/process/warning.js","lib/internal/process/worker_thread_only.js","lib/internal/promise_hooks.js","lib/internal/querystring.js","lib/internal/readline/callbacks.js","lib/internal/readline/emitKeypressEvents.js","lib/internal/readline/interface.js","lib/internal/readline/promises.js","lib/internal/readline/utils.js","lib/internal/repl.js","lib/internal/repl/await.js","lib/internal/repl/history.js","lib/internal/repl/utils.js","lib/internal/socket_list.js","lib/internal/socketaddress.js","lib/internal/source_map/prepare_stack_trace.js","lib/internal/source_map/source_map.js","lib/internal/source_map/source_map_cache.js","lib/internal/stream_base_commons.js","lib/internal/streams/add-abort-signal.js","lib/internal/streams/compose.js","lib/internal/streams/destroy.js","lib/internal/streams/duplex.js","lib/internal/streams/duplexify.js","lib/internal/streams/duplexpair.js","lib/internal/streams/end-of-stream.js","lib/internal/streams/from.js","lib/internal/streams/lazy_transform.js","lib/internal/streams/legacy.js","lib/internal/streams/operators.js","lib/internal/streams/passthrough.js","lib/internal/streams/pipeline.js","lib/internal/streams/readable.js","lib/internal/streams/state.js","lib/internal/streams/transform.js","lib/internal/streams/utils.js","lib/internal/streams/writable.js","lib/internal/test/binding.js","lib/internal/test/transfer.js","lib/internal/test_runner/coverage.js","lib/internal/test_runner/harness.js","lib/internal/test_runner/mock/mock.js","lib/internal/test_runner/mock/mock_timers.js","lib/internal/test_runner/reporter/dot.js","lib/internal/test_runner/reporter/junit.js","lib/internal/test_runner/reporter/lcov.js","lib/internal/test_runner/reporter/spec.js","lib/internal/test_runner/reporter/tap.js","lib/internal/test_runner/reporter/v8-serializer.js","lib/internal/test_runner/runner.js","lib/internal/test_runner/test.js","lib/internal/test_runner/tests_stream.js","lib/internal/test_runner/utils.js","lib/internal/timers.js","lib/internal/tls/secure-context.js","lib/internal/tls/secure-pair.js","lib/internal/trace_events_async_hooks.js","lib/internal/tty.js","lib/internal/url.js","lib/internal/util.js","lib/internal/util/colors.js","lib/internal/util/comparisons.js","lib/internal/util/debuglog.js","lib/internal/util/embedding.js","lib/internal/util/inspect.js","lib/internal/util/inspector.js","lib/internal/util/iterable_weak_map.js","lib/internal/util/parse_args/parse_args.js","lib/internal/util/parse_args/utils.js","lib/internal/util/types.js","lib/internal/v8/startup_snapshot.js","lib/internal/v8_prof_polyfill.js","lib/internal/v8_prof_processor.js","lib/internal/validators.js","lib/internal/vm.js","lib/internal/vm/module.js","lib/internal/wasm_web_api.js","lib/internal/watch_mode/files_watcher.js","lib/internal/watchdog.js","lib/internal/webidl.js","lib/internal/webstreams/adapters.js","lib/internal/webstreams/compression.js","lib/internal/webstreams/encoding.js","lib/internal/webstreams/queuingstrategies.js","lib/internal/webstreams/readablestream.js","lib/internal/webstreams/transfer.js","lib/internal/webstreams/transformstream.js","lib/internal/webstreams/util.js","lib/internal/webstreams/writablestream.js","lib/internal/worker.js","lib/internal/worker/io.js","lib/internal/worker/js_transferable.js","lib/module.js","lib/net.js","lib/os.js","lib/path.js","lib/path/posix.js","lib/path/win32.js","lib/perf_hooks.js","lib/process.js","lib/punycode.js","lib/querystring.js","lib/readline.js","lib/readline/promises.js","lib/repl.js","lib/sea.js","lib/stream.js","lib/stream/consumers.js","lib/stream/promises.js","lib/stream/web.js","lib/string_decoder.js","lib/sys.js","lib/test.js","lib/test/reporters.js","lib/timers.js","lib/timers/promises.js","lib/tls.js","lib/trace_events.js","lib/tty.js","lib/url.js","lib/util.js","lib/util/types.js","lib/v8.js","lib/vm.js","lib/wasi.js","lib/worker_threads.js","lib/zlib.js"],node_module_version:115,node_no_browser_globals:!1,node_prefix:"/",node_release_urlbase:"https://nodejs.org/download/release/",node_section_ordering_info:"",node_shared:!1,node_shared_ada:!1,node_shared_brotli:!1,node_shared_cares:!1,node_shared_http_parser:!1,node_shared_libuv:!1,node_shared_nghttp2:!1,node_shared_nghttp3:!1,node_shared_ngtcp2:!1,node_shared_openssl:!1,node_shared_simdjson:!1,node_shared_simdutf:!1,node_shared_zlib:!1,node_tag:"",node_target_type:"executable",node_use_bundled_v8:!0,node_use_node_code_cache:!0,node_use_node_snapshot:!0,node_use_openssl:!0,node_use_v8_platform:!0,node_with_ltcg:!1,node_without_node_options:!1,node_write_snapshot_as_array_literals:!1,openssl_is_fips:!1,openssl_quic:!0,ossfuzz:!1,shlib_suffix:"so.115",single_executable_application:!0,target_arch:"x64",ubsan:0,use_prefix_to_find_headers:!1,v8_enable_31bit_smis_on_64bit_arch:0,v8_enable_extensible_ro_snapshot:0,v8_enable_gdbjit:0,v8_enable_hugepage:0,v8_enable_i18n_support:1,v8_enable_inspector:1,v8_enable_javascript_promise_hooks:1,v8_enable_lite_mode:0,v8_enable_maglev:0,v8_enable_object_print:1,v8_enable_pointer_compression:0,v8_enable_sandbox:0,v8_enable_shared_ro_heap:1,v8_enable_short_builtin_calls:1,v8_enable_v8_checks:0,v8_enable_webassembly:1,v8_no_strict_aliasing:1,v8_optimized_debug:1,v8_promise_internal_field_count:1,v8_random_seed:0,v8_trace_maps:0,v8_use_siphash:1,want_separate_host_toolset:0}},allowedNodeEnvironmentFlags:{},features:{inspector:!0,debug:!1,uv:!0,ipv6:!0,tls_alpn:!0,tls_sni:!0,tls_ocsp:!0,tls:!0,cached_builtins:!0},sourceMapsEnabled:!1,stdout:{connecting:!1,_hadError:!1,_parent:null,_host:null,_closeAfterHandlingError:!1,_events:{},_readableState:{highWaterMark:16384,buffer:[],bufferIndex:0,length:0,pipes:[],awaitDrainWriters:null,readable:!1},_writableState:{highWaterMark:16384,length:0,corked:0,writelen:0,bufferedIndex:0,pendingcb:0},allowHalfOpen:!1,_eventsCount:1,_sockname:null,_pendingData:null,_pendingEncoding:"",server:null,_server:null,_type:"pipe",fd:1,_isStdio:!0},stdin:{connecting:!1,_hadError:!1,_parent:null,_host:null,_closeAfterHandlingError:!1,_events:{},_readableState:{highWaterMark:16384,buffer:[],bufferIndex:0,length:0,pipes:[],awaitDrainWriters:null},_writableState:{highWaterMark:16384,length:0,corked:0,writelen:0,bufferedIndex:0,pendingcb:0},allowHalfOpen:!1,_eventsCount:2,_sockname:null,_pendingData:null,_pendingEncoding:"",server:null,_server:null,fd:0},stderr:{connecting:!1,_hadError:!1,_parent:null,_host:null,_closeAfterHandlingError:!1,_events:{},_readableState:{highWaterMark:16384,buffer:[],bufferIndex:0,length:0,pipes:[],awaitDrainWriters:null,readable:!1},_writableState:{highWaterMark:16384,length:0,corked:0,writelen:0,bufferedIndex:0,pendingcb:0},allowHalfOpen:!1,_eventsCount:1,_sockname:null,_pendingData:null,_pendingEncoding:"",server:null,_server:null,_type:"pipe",fd:2,_isStdio:!0},env:{GITHUB_STATE:"/home/runner/work/_temp/_runner_file_commands/save_state_ba2be20c-ab11-4082-9aa2-ec176a3a274a",STATS_TRP:"true",DEPLOYMENT_BASEPATH:"/opt/runner",DOTNET_NOLOGO:"1",USER:"runner",npm_config_user_agent:"npm/10.8.2 node/v20.17.0 linux x64 workspaces/false ci/github-actions",CI:"true",RUNNER_ENVIRONMENT:"github-hosted",GITHUB_ENV:"/home/runner/work/_temp/_runner_file_commands/set_env_ba2be20c-ab11-4082-9aa2-ec176a3a274a",PIPX_HOME:"/opt/pipx",npm_node_execpath:"/opt/hostedtoolcache/node/20.17.0/x64/bin/node",JAVA_HOME_8_X64:"/usr/lib/jvm/temurin-8-jdk-amd64",SHLVL:"1",npm_config_noproxy:"",HOME:"/home/runner",RUNNER_TEMP:"/home/runner/work/_temp",GITHUB_EVENT_PATH:"/home/runner/work/_temp/_github_workflow/event.json",npm_package_json:"/home/runner/work/md/md/package.json",JAVA_HOME_11_X64:"/usr/lib/jvm/temurin-11-jdk-amd64",PIPX_BIN_DIR:"/opt/pipx_bin",GITHUB_REPOSITORY_OWNER:"doocs",GRADLE_HOME:"/usr/share/gradle-8.10",ANDROID_NDK_LATEST_HOME:"/usr/local/lib/android/sdk/ndk/27.0.12077973",JAVA_HOME_21_X64:"/usr/lib/jvm/temurin-21-jdk-amd64",STATS_RDCL:"true",GITHUB_RETENTION_DAYS:"90",GITHUB_REPOSITORY_OWNER_ID:"43716716",POWERSHELL_DISTRIBUTION_CHANNEL:"GitHub-Actions-ubuntu22",AZURE_EXTENSION_DIR:"/opt/az/azcliextensions",GITHUB_HEAD_REF:"",npm_config_userconfig:"/home/runner/.npmrc",npm_config_local_prefix:"/home/runner/work/md/md",SYSTEMD_EXEC_PID:"592",GITHUB_GRAPHQL_URL:"https://api.github.com/graphql",COLOR:"0",GOROOT_1_20_X64:"/opt/hostedtoolcache/go/1.20.14/x64",NVM_DIR:"/home/runner/.nvm",DOTNET_SKIP_FIRST_TIME_EXPERIENCE:"1",GOROOT_1_21_X64:"/opt/hostedtoolcache/go/1.21.13/x64",JAVA_HOME_17_X64:"/usr/lib/jvm/temurin-17-jdk-amd64",ImageVersion:"20240825.1.0",RUNNER_OS:"Linux",GITHUB_API_URL:"https://api.github.com",GOROOT_1_22_X64:"/opt/hostedtoolcache/go/1.22.6/x64",SWIFT_PATH:"/usr/share/swift/usr/bin",RUNNER_USER:"runner",STATS_V3PS:"true",CHROMEWEBDRIVER:"/usr/local/share/chromedriver-linux64",JOURNAL_STREAM:"8:17239",GITHUB_WORKFLOW:"Build and Deploy",_:"/opt/hostedtoolcache/node/20.17.0/x64/bin/npm",npm_config_prefix:"/opt/hostedtoolcache/node/20.17.0/x64",npm_config_npm_version:"10.8.2",ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE:"/opt/actionarchivecache",STATS_D:"false",GITHUB_RUN_ID:"10641813909",STATS_VMFE:"true",npm_config_cache:"/home/runner/.npm",GITHUB_REF_TYPE:"branch",BOOTSTRAP_HASKELL_NONINTERACTIVE:"1",GITHUB_WORKFLOW_SHA:"eb77ada3d7e917d73c7368daedf8224f5fff6c75",GITHUB_BASE_REF:"",ImageOS:"ubuntu22",GITHUB_WORKFLOW_REF:"doocs/md/.github/workflows/build.yml@refs/heads/main",PERFLOG_LOCATION_SETTING:"RUNNER_PERFLOG",GITHUB_ACTION_REPOSITORY:"",npm_config_node_gyp:"/opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",PATH:"/home/runner/work/md/md/node_modules/.bin:/home/runner/work/md/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/runner/work/md/md/node_modules/.bin:/home/runner/work/md/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/opt/hostedtoolcache/node/20.17.0/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin",ANT_HOME:"/usr/share/ant",DOTNET_MULTILEVEL_LOOKUP:"0",RUNNER_TRACKING_ID:"github_fdb68099-5d6e-43e9-9ae8-161181680e63",INVOCATION_ID:"bc22217a7a8448d2b33a02fa2e58a4fa",RUNNER_TOOL_CACHE:"/opt/hostedtoolcache",NODE:"/opt/hostedtoolcache/node/20.17.0/x64/bin/node",npm_package_name:"md",GITHUB_ACTION:"__run_2",GITHUB_RUN_NUMBER:"411",GITHUB_TRIGGERING_ACTOR:"yanglbme",RUNNER_ARCH:"X64",XDG_RUNTIME_DIR:"/run/user/1001",AGENT_TOOLSDIRECTORY:"/opt/hostedtoolcache",LANG:"C.UTF-8",VCPKG_INSTALLATION_ROOT:"/usr/local/share/vcpkg",CONDA:"/usr/share/miniconda",RUNNER_NAME:"GitHub Actions 6",XDG_CONFIG_HOME:"/home/runner/.config",STATS_VMD:"true",GITHUB_REF_NAME:"main",GITHUB_REPOSITORY:"doocs/md",STATS_D_D:"false",npm_lifecycle_script:"vite build",STATS_UE:"true",ANDROID_NDK_ROOT:"/usr/local/lib/android/sdk/ndk/27.0.12077973",GITHUB_ACTION_REF:"",DEBIAN_FRONTEND:"noninteractive",GITHUB_REPOSITORY_ID:"218952803",GITHUB_ACTIONS:"true",npm_package_version:"1.6.0",npm_lifecycle_event:"build:only",GITHUB_REF_PROTECTED:"true",GITHUB_WORKSPACE:"/home/runner/work/md/md",ACCEPT_EULA:"Y",GITHUB_JOB:"build-and-deploy",RUNNER_PERFLOG:"/home/runner/perflog",GITHUB_SHA:"eb77ada3d7e917d73c7368daedf8224f5fff6c75",GITHUB_RUN_ATTEMPT:"1",GITHUB_REF:"refs/heads/main",GITHUB_ACTOR:"yanglbme",ANDROID_SDK_ROOT:"/usr/local/lib/android/sdk",LEIN_HOME:"/usr/local/lib/lein",npm_config_globalconfig:"/opt/hostedtoolcache/node/20.17.0/x64/etc/npmrc",npm_config_init_module:"/home/runner/.npm-init.js",GITHUB_PATH:"/home/runner/work/_temp/_runner_file_commands/add_path_ba2be20c-ab11-4082-9aa2-ec176a3a274a",JAVA_HOME:"/usr/lib/jvm/temurin-11-jdk-amd64",PWD:"/home/runner/work/md/md",GITHUB_ACTOR_ID:"21008209",RUNNER_WORKSPACE:"/home/runner/work/md",npm_execpath:"/opt/hostedtoolcache/node/20.17.0/x64/lib/node_modules/npm/bin/npm-cli.js",HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS:"3650",STATS_TIS:"mining",GITHUB_EVENT_NAME:"push",HOMEBREW_NO_AUTO_UPDATE:"1",ANDROID_HOME:"/usr/local/lib/android/sdk",GITHUB_SERVER_URL:"https://github.com",GECKOWEBDRIVER:"/usr/local/share/gecko_driver",LEIN_JAR:"/usr/local/lib/lein/self-installs/leiningen-2.11.2-standalone.jar",GHCUP_INSTALL_BASE_PREFIX:"/usr/local",GITHUB_OUTPUT:"/home/runner/work/_temp/_runner_file_commands/set_output_ba2be20c-ab11-4082-9aa2-ec176a3a274a",npm_config_global_prefix:"/opt/hostedtoolcache/node/20.17.0/x64",EDGEWEBDRIVER:"/usr/local/share/edge_driver",STATS_EXT:"true",npm_command:"run-script",ANDROID_NDK:"/usr/local/lib/android/sdk/ndk/27.0.12077973",SGX_AESM_ADDR:"1",CHROME_BIN:"/usr/bin/google-chrome",SELENIUM_JAR_PATH:"/usr/share/java/selenium-server.jar",STATS_EXTP:"https://provjobdsettingscdn.blob.core.windows.net/settings/provjobdsettings-0.5.181+6/provjobd.data",ANDROID_NDK_HOME:"/usr/local/lib/android/sdk/ndk/27.0.12077973",GITHUB_STEP_SUMMARY:"/home/runner/work/_temp/_runner_file_commands/step_summary_ba2be20c-ab11-4082-9aa2-ec176a3a274a",INIT_CWD:"/home/runner/work/md/md",EDITOR:"vi",NODE_ENV:"production",LAUNCH_EDITOR:"code"},title:"node",argv:["/opt/hostedtoolcache/node/20.17.0/x64/bin/node","/home/runner/work/md/md/node_modules/.bin/vite","build"],execArgv:[],pid:2009,ppid:2008,execPath:"/opt/hostedtoolcache/node/20.17.0/x64/bin/node",debugPort:9229,argv0:"node",_preload_modules:[],report:{directory:"",filename:"",compact:!1,excludeNetwork:!1,signal:"SIGUSR2",reportOnFatalError:!1,reportOnSignal:!1,reportOnUncaughtException:!1}},cc;(()=>{var n={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,c){for(var u,d="",f=0,h=-1,m=0,g=0;g<=l.length;++g){if(g<l.length)u=l.charCodeAt(g);else{if(u===47)break;u=47}if(u===47){if(!(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 T=d.lastIndexOf("/");if(T!==d.length-1){T===-1?(d="",f=0):f=(d=d.slice(0,T)).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}}c&&(d.length>0?d+="/..":d="..",f=2)}else d.length>0?d+="/"+l.slice(h+1,g):d=l.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 l,c="",u=!1,d=arguments.length-1;d>=-1&&!u;d--){var f;d>=0?f=arguments[d]:(l===void 0&&(l=xr.cwd()),f=l),s(f),f.length!==0&&(c=f+"/"+c,u=f.charCodeAt(0)===47)}return c=a(c,!u),u?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(l){if(s(l),l.length===0)return".";var c=l.charCodeAt(0)===47,u=l.charCodeAt(l.length-1)===47;return(l=a(l,!c)).length!==0||c||(l="."),l.length>0&&u&&(l+="/"),c?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,c=0;c<arguments.length;++c){var u=arguments[c];s(u),u.length>0&&(l===void 0?l=u:l+="/"+u)}return l===void 0?".":o.normalize(l)},relative:function(l,c){if(s(l),s(c),l===c||(l=o.resolve(l))===(c=o.resolve(c)))return"";for(var u=1;u<l.length&&l.charCodeAt(u)===47;++u);for(var d=l.length,f=d-u,h=1;h<c.length&&c.charCodeAt(h)===47;++h);for(var m=c.length-h,g=f<m?f:m,T=-1,y=0;y<=g;++y){if(y===g){if(m>g){if(c.charCodeAt(h+y)===47)return c.slice(h+y+1);if(y===0)return c.slice(h+y)}else f>g&&(l.charCodeAt(u+y)===47?T=y:y===0&&(T=0));break}var E=l.charCodeAt(u+y);if(E!==c.charCodeAt(h+y))break;E===47&&(T=y)}var _="";for(y=u+T+1;y<=d;++y)y!==d&&l.charCodeAt(y)!==47||(_.length===0?_+="..":_+="/..");return _.length>0?_+c.slice(h+T):(h+=T,c.charCodeAt(h)===47&&++h,c.slice(h))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var c=l.charCodeAt(0),u=c===47,d=-1,f=!0,h=l.length-1;h>=1;--h)if((c=l.charCodeAt(h))===47){if(!f){d=h;break}}else f=!1;return d===-1?u?"/":".":u&&d===1?"//":l.slice(0,d)},basename:function(l,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(l);var u,d=0,f=-1,h=!0;if(c!==void 0&&c.length>0&&c.length<=l.length){if(c.length===l.length&&c===l)return"";var m=c.length-1,g=-1;for(u=l.length-1;u>=0;--u){var T=l.charCodeAt(u);if(T===47){if(!h){d=u+1;break}}else g===-1&&(h=!1,g=u+1),m>=0&&(T===c.charCodeAt(m)?--m==-1&&(f=u):(m=-1,f=g))}return d===f?f=g:f===-1&&(f=l.length),l.slice(d,f)}for(u=l.length-1;u>=0;--u)if(l.charCodeAt(u)===47){if(!h){d=u+1;break}}else f===-1&&(h=!1,f=u+1);return f===-1?"":l.slice(d,f)},extname:function(l){s(l);for(var c=-1,u=0,d=-1,f=!0,h=0,m=l.length-1;m>=0;--m){var g=l.charCodeAt(m);if(g!==47)d===-1&&(f=!1,d=m+1),g===46?c===-1?c=m:h!==1&&(h=1):c!==-1&&(h=-1);else if(!f){u=m+1;break}}return c===-1||d===-1||h===0||h===1&&c===d-1&&c===u+1?"":l.slice(c,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(c,u){var d=u.dir||u.root,f=u.base||(u.name||"")+(u.ext||"");return d?d===u.root?d+f:d+"/"+f:f}(0,l)},parse:function(l){s(l);var c={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return c;var u,d=l.charCodeAt(0),f=d===47;f?(c.root="/",u=1):u=0;for(var h=-1,m=0,g=-1,T=!0,y=l.length-1,E=0;y>=u;--y)if((d=l.charCodeAt(y))!==47)g===-1&&(T=!1,g=y+1),d===46?h===-1?h=y:E!==1&&(E=1):h!==-1&&(E=-1);else if(!T){m=y+1;break}return h===-1||g===-1||E===0||E===1&&h===g-1&&h===m+1?g!==-1&&(c.base=c.name=m===0&&f?l.slice(1,g):l.slice(m,g)):(m===0&&f?(c.name=l.slice(1,h),c.base=l.slice(1,g)):(c.name=l.slice(m,h),c.base=l.slice(m,g)),c.ext=l.slice(h,g)),m>0?c.dir=l.slice(0,m-1):f&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return 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:()=>be}),typeof xr=="object"?i=xr.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(A,v){if(!A.scheme&&v)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${A.authority}", path: "${A.path}", query: "${A.query}", fragment: "${A.fragment}"}`);if(A.scheme&&!s.test(A.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(A.path){if(A.authority){if(!a.test(A.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test(A.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const c="",u="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{constructor(v,R,N,L,O,w=!1){Je(this,"scheme");Je(this,"authority");Je(this,"path");Je(this,"query");Je(this,"fragment");typeof v=="object"?(this.scheme=v.scheme||c,this.authority=v.authority||c,this.path=v.path||c,this.query=v.query||c,this.fragment=v.fragment||c):(this.scheme=function(ye,z){return ye||z?ye:"file"}(v,w),this.authority=R||c,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,N||c),this.query=L||c,this.fragment=O||c,l(this,w))}static isUri(v){return v instanceof f||!!v&&typeof v.authority=="string"&&typeof v.fragment=="string"&&typeof v.path=="string"&&typeof v.query=="string"&&typeof v.scheme=="string"&&typeof v.fsPath=="string"&&typeof v.with=="function"&&typeof v.toString=="function"}get fsPath(){return E(this)}with(v){if(!v)return this;let{scheme:R,authority:N,path:L,query:O,fragment:w}=v;return R===void 0?R=this.scheme:R===null&&(R=c),N===void 0?N=this.authority:N===null&&(N=c),L===void 0?L=this.path:L===null&&(L=c),O===void 0?O=this.query:O===null&&(O=c),w===void 0?w=this.fragment:w===null&&(w=c),R===this.scheme&&N===this.authority&&L===this.path&&O===this.query&&w===this.fragment?this:new m(R,N,L,O,w)}static parse(v,R=!1){const N=d.exec(v);return N?new m(N[2]||c,ne(N[4]||c),ne(N[5]||c),ne(N[7]||c),ne(N[9]||c),R):new m(c,c,c,c,c)}static file(v){let R=c;if(i&&(v=v.replace(/\\/g,u)),v[0]===u&&v[1]===u){const N=v.indexOf(u,2);N===-1?(R=v.substring(2),v=u):(R=v.substring(2,N),v=v.substring(N)||u)}return new m("file",R,v,c,c)}static from(v){const R=new m(v.scheme,v.authority,v.path,v.query,v.fragment);return l(R,!0),R}toString(v=!1){return _(this,v)}toJSON(){return this}static revive(v){if(v){if(v instanceof f)return v;{const R=new m(v);return R._formatted=v.external,R._fsPath=v._sep===h?v.fsPath:null,R}}return v}}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=E(this)),this._fsPath}toString(R=!1){return R?_(this,!0):(this._formatted||(this._formatted=_(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 T(A,v,R){let N,L=-1;for(let O=0;O<A.length;O++){const w=A.charCodeAt(O);if(w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===45||w===46||w===95||w===126||v&&w===47||R&&w===91||R&&w===93||R&&w===58)L!==-1&&(N+=encodeURIComponent(A.substring(L,O)),L=-1),N!==void 0&&(N+=A.charAt(O));else{N===void 0&&(N=A.substr(0,O));const ye=g[w];ye!==void 0?(L!==-1&&(N+=encodeURIComponent(A.substring(L,O)),L=-1),N+=ye):L===-1&&(L=O)}}return L!==-1&&(N+=encodeURIComponent(A.substring(L))),N!==void 0?N:A}function y(A){let v;for(let R=0;R<A.length;R++){const N=A.charCodeAt(R);N===35||N===63?(v===void 0&&(v=A.substr(0,R)),v+=g[N]):v!==void 0&&(v+=A[R])}return v!==void 0?v:A}function E(A,v){let R;return R=A.authority&&A.path.length>1&&A.scheme==="file"?`//${A.authority}${A.path}`:A.path.charCodeAt(0)===47&&(A.path.charCodeAt(1)>=65&&A.path.charCodeAt(1)<=90||A.path.charCodeAt(1)>=97&&A.path.charCodeAt(1)<=122)&&A.path.charCodeAt(2)===58?A.path[1].toLowerCase()+A.path.substr(2):A.path,i&&(R=R.replace(/\//g,"\\")),R}function _(A,v){const R=v?y:T;let N="",{scheme:L,authority:O,path:w,query:ye,fragment:z}=A;if(L&&(N+=L,N+=":"),(O||L==="file")&&(N+=u,N+=u),O){let B=O.indexOf("@");if(B!==-1){const at=O.substr(0,B);O=O.substr(B+1),B=at.lastIndexOf(":"),B===-1?N+=R(at,!1,!1):(N+=R(at.substr(0,B),!1,!1),N+=":",N+=R(at.substr(B+1),!1,!0)),N+="@"}O=O.toLowerCase(),B=O.lastIndexOf(":"),B===-1?N+=R(O,!1,!0):(N+=R(O.substr(0,B),!1,!0),N+=O.substr(B))}if(w){if(w.length>=3&&w.charCodeAt(0)===47&&w.charCodeAt(2)===58){const B=w.charCodeAt(1);B>=65&&B<=90&&(w=`/${String.fromCharCode(B+32)}:${w.substr(3)}`)}else if(w.length>=2&&w.charCodeAt(1)===58){const B=w.charCodeAt(0);B>=65&&B<=90&&(w=`${String.fromCharCode(B+32)}:${w.substr(2)}`)}N+=R(w,!0,!1)}return ye&&(N+="?",N+=R(ye,!1,!1)),z&&(N+="#",N+=v?z:T(z,!1,!1)),N}function k(A){try{return decodeURIComponent(A)}catch{return A.length>3?A.substr(0,3)+k(A.substr(3)):A}}const j=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ne(A){return A.match(j)?A.replace(j,v=>k(v)):A}var xe=t(470);const ge=xe.posix||xe,Me="/";var be;(function(A){A.joinPath=function(v,...R){return v.with({path:ge.join(v.path,...R)})},A.resolvePath=function(v,...R){let N=v.path,L=!1;N[0]!==Me&&(N=Me+N,L=!0);let O=ge.resolve(N,...R);return L&&O[0]===Me&&!v.authority&&(O=O.substring(1)),v.with({path:O})},A.dirname=function(v){if(v.path.length===0||v.path===Me)return v;let R=ge.dirname(v.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),v.with({path:R})},A.basename=function(v){return ge.basename(v.path)},A.extname=function(v){return ge.extname(v.path)}})(be||(be={}))})(),cc=r})();const{URI:Ht,Utils:Jt}=cc;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),l=a.split("/").filter(f=>f.length>0);let c=0;for(;c<o.length&&o[c]===l[c];c++);const u="../".repeat(o.length-c),d=l.slice(c).join("/");return u+d}n.relative=t})(rt||(rt={}));var F;(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"})(F||(F={}));class tm{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=Y.None){const r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??Ht.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:F.Parsed,references:[],textDocument:r};else{const a=this.createTextDocumentGetter(t,i);s={parseResult:e,uri:t,state:F.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 l=this.createTextDocumentGetter(e.uri,o);Object.defineProperty(e,"textDocument",{get:l})}return s!==o&&(e.parseResult=await this.parseAsync(e.uri,o,t),e.parseResult.value.$document=e),e.state=F.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=hi.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class nm{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=F.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=F.Changed,this.documentMap.delete(t)),r}}class rm{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=Y.None){for(const r of Et(e.parseResult.value))await Oe(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(Tu(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){const l=s.getLinkedNode({reference:a,container:e,property:t});if(l.error&&je(e).state<F.ComputedScopes)return;this._ref=(o=l.node)!==null&&o!==void 0?o:l.error,this._nodeDescription=l.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=je(e.container);r.state<F.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 im(n){return typeof n.name=="string"}class sm{getName(e){if(im(e))return e.name}getNameNode(e){return Zo(e.$cstNode,"name")}}class am{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=Rd(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||Au(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=je(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:xn(t),local:!0}}}}class Hi{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return Lr.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 Fa{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 om{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=Y.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=bi,i=Y.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await Oe(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=Y.None){const r=e.parseResult.value,i=new Hi;for(const s of on(r))await Oe(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 Ga{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 lm{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 uc{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 uc{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 um extends uc{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 dm extends cm{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class fm{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 dm(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=je(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(Q(o).filter(l=>this.reflection.isSubtype(l.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 Ga(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 Ga(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new lm(this.indexManager.allElements(e)))}}function hm(n){return typeof n.$comment=="string"}function Ba(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class pm{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=je(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 l,c,u,d;if(!this.ignoreProperties.has(e))if(De(t)){const f=t.ref,h=r?t.$refText:void 0;if(f){const m=je(f);let g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,t):g=m.uri.toString());const T=this.astNodeLocator.getAstNodePath(f);return{$ref:`${g}#${T}`,$refText:h}}else return{$error:(c=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&c!==void 0?c:"Could not resolve reference",$refText: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=_d(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,r,i,s,a){for(const[l,c]of Object.entries(e))if(Array.isArray(c))for(let u=0;u<c.length;u++){const d=c[u];Ba(d)?c[u]=this.reviveReference(e,l,t,d,r):ae(d)&&this.linkNode(d,t,r,e,l,u)}else Ba(c)?e[l]=this.reviveReference(e,l,t,c,r):ae(c)&&this.linkNode(c,t,r,e,l);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 l=this.getRefNode(r,i.$ref,s.uriConverter);if(ae(l))return a||(a=this.nameProvider.getName(l)),{$refText:a??"",ref:l};o=l}if(o){const l={$refText:a??""};return l.error={container:e,property:t,message:o,reference:l},l}else return}getRefNode(e,t,r){try{const i=t.indexOf("#");if(i===0){const l=this.astNodeLocator.getAstNode(e,t.substring(1));return l||"Could not resolve path: "+t}if(i<0){const l=r?r(t):Ht.parse(t),c=this.langiumDocuments.getDocument(l);return c?c.parseResult.value:"Could not find document for URI: "+t}const s=r?r(t.substring(0,i)):Ht.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 mm{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 Ha(n){return{code:n}}var Xn;(function(n){n.all=["fast","slow","built-in"]})(Xn||(Xn={}));class gm{constructor(e){this.entries=new Hi,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 l={check:this.wrapValidationException(o,t),category:r};this.addEntry(i,l)}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(Gi(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 ym{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=Y.None){const i=e.parseResult,s=[];if(await Oe(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(Gi(a))throw a;console.error("An error occurred during validation:",a)}return await Oe(r),s}processLexingErrors(e,t,r){for(const i of e.lexerErrors){const s={severity:Cr("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:Ha(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=Mr(i.token);if(s){const a={severity:Cr("error"),range:s,message:i.message,data:Ha(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=Y.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await Promise.all(Et(e).map(async a=>{await Oe(r);const o=this.validationRegistry.getChecks(a.$type,t.categories);for(const l of o)await l(a,s,r)})),i}toDiagnostic(e,t,r){return{message:t,range:vm(r),severity:Cr(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 vm(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=Td(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 Cr(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 _m{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r=je(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=xn((o=this.nameProvider.getNameNode(e))!==null&&o!==void 0?o:e.$cstNode))};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:xn(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class Tm{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=Y.None){const r=[],i=e.parseResult.value;for(const s of Et(i))await Oe(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=je(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:xn(r),local:rt.equals(t.documentUri,i)}}}class Em{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),l=parseInt(s.substring(a+1)),c=i[o];return c==null?void 0:c[l]}return i[s]},e)}}class Rm{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 Yn;(function(n){function e(t){return{dispose:async()=>await t()}}n.create=e})(Yn||(Yn={}));class Am{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Hi,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=F.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=Y.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===F.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=F.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),c=(i=l==null?void 0:l.result)===null||i===void 0?void 0:i.validationChecks;if(c){const d=((s=t.validation.categories)!==null&&s!==void 0?s:Xn.all).filter(f=>!c.includes(f));d.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:d})},result:l.result}),a.state=F.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=F.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=Y.None){this.currentState=F.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 l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=F.Changed,this.langiumDocuments.addDocument(l)}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,F.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await Oe(r);const s=this.langiumDocuments.all.filter(a=>{var o;return a.state<F.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),Yn.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,F.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,F.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,F.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,F.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,F.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,F.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 Oe(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),Yn.create(()=>{this.buildPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r??(r=Y.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(),l.dispose(),i){const c=this.langiumDocuments.getDocument(i);s(c==null?void 0:c.uri)}else s(void 0)}),l=r.onCancellationRequested(()=>{o.dispose(),l.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 Oe(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,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const c=this.buildState.get(e.uri.toString());if(c){(r=c.result)!==null&&r!==void 0||(c.result={});const u=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:Xn.all;c.result.validationChecks?c.result.validationChecks.push(...u):c.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 bm{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new um,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=je(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=Y.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=Y.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 Nm{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=Y.None){const r=await this.performStartup(e);await Oe(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 Ht.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 km{constructor(e){const t=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const r=Wa(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(Wa(e))return e;const t=dc(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function Im(n){return Array.isArray(n)&&(n.length===0||"name"in n[0])}function dc(n){return n&&"modes"in n&&"defaultMode"in n}function Wa(n){return!Im(n)&&!dc(n)}function Sm(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=M.create(0,0));const s=fc(n),a=Wi(r),o=wm({lines:s,position:i,options:a});return $m({index:0,tokens:o,position:i})}function xm(n,e){const t=Wi(e),r=fc(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 fc(n){let e="";return typeof n=="string"?e=n:e=n.text,e.split(ld)}const Va=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Cm=/\{(@[\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 l=o===0,c=o===n.lines.length-1;let u=n.lines[o],d=0;if(l&&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(c){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,Mm(u)),mi(u,d)>=u.length){if(i.length>0){const h=M.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],T=M.create(s,a+d),y=M.create(s,a+d+m.length);i.push({type:"tag",content:g,range:P.create(T,y)}),d+=m.length,d=mi(u,d)}if(d<u.length){const m=u.substring(d),g=Array.from(m.matchAll(Cm));i.push(...Om(g,m,s,a+d))}}s++,a=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function Om(n,e,t,r){const i=[];if(n.length===0){const s=M.create(t,r),a=M.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 l=o.index,c=e.substring(s,l);c.length>0&&i.push({type:"text",content:e.substring(s,l),range:P.create(M.create(t,s+r),M.create(t,l+r))});let u=c.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:P.create(M.create(t,s+u+r),M.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(M.create(t,s+u+r),M.create(t,s+u+f.length+r))})}else i.push({type:"text",content:"",range:P.create(M.create(t,s+u+r),M.create(t,s+u+r))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:P.create(M.create(t,s+r),M.create(t,s+r+a.length))})}return i}const Lm=/\S/,Pm=/\s*$/;function mi(n,e){const t=n.substring(e).match(Lm);return t?e+t.index:n.length}function Mm(n){const e=n.match(Pm);if(e&&typeof e.index=="number")return e.index}function $m(n){var e,t,r,i;const s=M.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 c=Dm(n,a[a.length-1]);c&&a.push(c)}const o=(t=(e=a[0])===null||e===void 0?void 0:e.range.start)!==null&&t!==void 0?t:s,l=(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,l))}function Dm(n,e){const t=n.tokens[n.index];if(t.type==="tag")return pc(n,!1);if(t.type==="text"||t.type==="inline-tag")return hc(n);jm(t,e),n.index++}function jm(n,e){if(e){const t=new gc("",n.range);"inlines"in e?e.inlines.push(t):e.content.inlines.push(t)}}function hc(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(Um(n)),r=e,e=n.tokens[n.index];return new gi(i,P.create(t.range.start,r.range.end))}function Um(n){return n.tokens[n.index].type==="inline-tag"?pc(n,!0):mc(n)}function pc(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=mc(n);return new Or(r,new gi([s],s.range),e,P.create(t.range.start,s.range.end))}else{const s=hc(n);return new Or(r,s,e,P.create(t.range.start,s.range.end))}else{const s=t.range;return new Or(r,new gi([],s),e,s)}}function mc(n){const e=n.tokens[n.index++];return new gc(e.content,e.range)}function Wi(n){if(!n)return Wi({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+=za(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+=za(t)+i}return t.trim()}}class Or{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=Fm(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 Fm(n,e,t){var r,i;if(n==="linkplain"||n==="linkcode"||n==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const l=mi(e,s);a=e.substring(l),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:Gm(e,a)}}function Gm(n,e){try{return Ht.parse(n,!0),`[${e}](${n})`}catch{return n}}class gi{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 gc{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function za(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&&xm(t))return Sm(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,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const i=je(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}}class Hm{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return hm(e)?e.$comment:(t=Iu(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class Wm{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}}class Vm{constructor(){this.previousTokenSource=new di,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=new di;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??Y.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){Gi(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Km{constructor(e){this.grammarElementIdMap=new Fa,this.tokenTypeIdMap=new Fa,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 Et(e))t.set(i,{});if(e.$cstNode)for(const i of Pr(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 Et(e))t.set(s,{});let i;if(e.$cstNode)for(const s of Pr(e.$cstNode)){let a;"fullText"in s?(a=new Xl(s.fullText),i=a):"content"in s?a=new Ui:"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,l=e.endColumn,c=e.hidden;return new ai(r,i,{start:{line:s,character:a},end:{line:o,character:l}},t,c)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();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 Et(this.grammar))Cu(t)&&this.grammarElementIdMap.set(t,e++)}}function hn(n){return{documentation:{CommentProvider:e=>new Hm(e),DocumentationProvider:e=>new Bm(e)},parser:{AsyncParser:e=>new Wm(e),GrammarConfig:e=>Cd(e),LangiumParser:e=>Up(e),CompletionParser:e=>jp(e),ValueConverter:()=>new ic,TokenBuilder:()=>new rc,Lexer:e=>new km(e),ParserErrorMessageProvider:()=>new Ql},workspace:{AstNodeLocator:()=>new Em,AstNodeDescriptionProvider:e=>new _m(e),ReferenceDescriptionProvider:e=>new Tm(e)},references:{Linker:e=>new rm(e),NameProvider:()=>new sm,ScopeProvider:e=>new fm(e),ScopeComputation:e=>new om(e),References:e=>new am(e)},serializer:{Hydrator:e=>new Km(e),JsonSerializer:e=>new pm(e)},validation:{DocumentValidator:e=>new ym(e),ValidationRegistry:e=>new gm(e)},shared:()=>n.shared}}function pn(n){return{ServiceRegistry:()=>new mm,workspace:{LangiumDocuments:e=>new nm(e),LangiumDocumentFactory:e=>new tm(e),DocumentBuilder:e=>new Am(e),IndexManager:e=>new bm(e),WorkspaceManager:e=>new Nm(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new Vm,ConfigurationProvider:e=>new Rm(e)}}}var qa;(function(n){n.merge=(e,t)=>Jn(Jn({},e),t)})(qa||(qa={}));function Ue(n,e,t,r,i,s,a,o,l){const c=[n,e,t,r,i,s,a,o,l].reduce(Jn,{});return yc(c)}const Xa=Symbol("isProxy");function yc(n,e){const t=new Proxy({},{deleteProperty:()=>!1,get:(r,i)=>Ja(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>(Ja(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Reflect.ownKeys(n),Xa]});return t[Xa]=!0,t}const Ya=Symbol();function Ja(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):yc(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 zm{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const mn={fileSystemProvider:()=>new zm},qm={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Xm={AstReflection:()=>new zo};function Ym(){const n=Ue(pn(mn),Xm),e=Ue(hn({shared:n}),qm);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,Ht.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Jm=Object.defineProperty,x=(n,e)=>Jm(n,"name",{value:e,configurable:!0}),Qm="Statement",vc="Branch";function Zm(n){return Ge.isInstance(n,vc)}x(Zm,"isBranch");var eg="Checkout",tg="CherryPicking",_c="Commit";function ng(n){return Ge.isInstance(n,_c)}x(ng,"isCommit");var rg="Common";function ig(n){return Ge.isInstance(n,rg)}x(ig,"isCommon");var Tc="GitGraph";function sg(n){return Ge.isInstance(n,Tc)}x(sg,"isGitGraph");var ag="Info";function og(n){return Ge.isInstance(n,ag)}x(og,"isInfo");var Ec="Merge";function lg(n){return Ge.isInstance(n,Ec)}x(lg,"isMerge");var cg="Packet";function ug(n){return Ge.isInstance(n,cg)}x(ug,"isPacket");var dg="PacketBlock";function fg(n){return Ge.isInstance(n,dg)}x(fg,"isPacketBlock");var hg="Pie";function pg(n){return Ge.isInstance(n,hg)}x(pg,"isPie");var mg="PieSection";function gg(n){return Ge.isInstance(n,mg)}x(gg,"isPieSection");var yg="Direction",At,Rc=(At=class extends co{getAllTypes(){return["Branch","Checkout","CherryPicking","Commit","Common","Direction","GitGraph","Info","Merge","Packet","PacketBlock","Pie","PieSection","Statement"]}computeIsSubtype(e,t){switch(e){case vc:case eg:case tg:case _c:case Ec:return this.isSubtype(Qm,t);case yg:return this.isSubtype(Tc,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:[]}}}},x(At,"MermaidAstReflection"),At),Ge=new Rc,Qa,vg=x(()=>Qa??(Qa=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"),Za,_g=x(()=>Za??(Za=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"),eo,Tg=x(()=>eo??(eo=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"),to,Eg=x(()=>to??(to=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"),Rg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Ag={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},bg={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Ng={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},gr={AstReflection:x(()=>new Rc,"AstReflection")},kg={Grammar:x(()=>vg(),"Grammar"),LanguageMetaData:x(()=>Rg,"LanguageMetaData"),parser:{}},Ig={Grammar:x(()=>_g(),"Grammar"),LanguageMetaData:x(()=>Ag,"LanguageMetaData"),parser:{}},Sg={Grammar:x(()=>Tg(),"Grammar"),LanguageMetaData:x(()=>bg,"LanguageMetaData"),parser:{}},xg={Grammar:x(()=>Eg(),"Grammar"),LanguageMetaData:x(()=>Ng,"LanguageMetaData"),parser:{}},Cg=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,wg=/accTitle[\t ]*:([^\n\r]*)/,Og=/title([\t ][^\n\r]*|)/,Lg={ACC_DESCR:Cg,ACC_TITLE:wg,TITLE:Og},bt,Ac=(bt=class extends ic{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=Lg[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,`
`)}}},x(bt,"AbstractMermaidValueConverter"),bt),Nt,Vi=(Nt=class extends Ac{runCustomConverter(e,t,r){}},x(Nt,"CommonValueConverter"),Nt),kt,gn=(kt=class extends rc{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}},x(kt,"AbstractMermaidTokenBuilder"),kt),It;It=class extends gn{},x(It,"CommonTokenBuilder");var St,Pg=(St=class extends gn{constructor(){super(["gitGraph"])}},x(St,"GitGraphTokenBuilder"),St),bc={parser:{TokenBuilder:x(()=>new Pg,"TokenBuilder"),ValueConverter:x(()=>new Vi,"ValueConverter")}};function Nc(n=mn){const e=Ue(pn(n),gr),t=Ue(hn({shared:e}),xg,bc);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}x(Nc,"createGitGraphServices");var xt,Mg=(xt=class extends gn{constructor(){super(["info","showInfo"])}},x(xt,"InfoTokenBuilder"),xt),kc={parser:{TokenBuilder:x(()=>new Mg,"TokenBuilder"),ValueConverter:x(()=>new Vi,"ValueConverter")}};function Ic(n=mn){const e=Ue(pn(n),gr),t=Ue(hn({shared:e}),kg,kc);return e.ServiceRegistry.register(t),{shared:e,Info:t}}x(Ic,"createInfoServices");var Ct,$g=(Ct=class extends gn{constructor(){super(["packet-beta"])}},x(Ct,"PacketTokenBuilder"),Ct),Sc={parser:{TokenBuilder:x(()=>new $g,"TokenBuilder"),ValueConverter:x(()=>new Vi,"ValueConverter")}};function xc(n=mn){const e=Ue(pn(n),gr),t=Ue(hn({shared:e}),Ig,Sc);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}x(xc,"createPacketServices");var wt,Dg=(wt=class extends gn{constructor(){super(["pie","showData"])}},x(wt,"PieTokenBuilder"),wt),Ot,jg=(Ot=class extends Ac{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},x(Ot,"PieValueConverter"),Ot),Cc={parser:{TokenBuilder:x(()=>new Dg,"TokenBuilder"),ValueConverter:x(()=>new jg,"ValueConverter")}};function wc(n=mn){const e=Ue(pn(n),gr),t=Ue(hn({shared:e}),Sg,Cc);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}x(wc,"createPieServices");var Tt={},Ug={info:x(async()=>{const{createInfoServices:n}=await yn(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>Bg);return{createInfoServices:t}},void 0),e=n().Info.parser.LangiumParser;Tt.info=e},"info"),packet:x(async()=>{const{createPacketServices:n}=await yn(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>Hg);return{createPacketServices:t}},void 0),e=n().Packet.parser.LangiumParser;Tt.packet=e},"packet"),pie:x(async()=>{const{createPieServices:n}=await yn(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>Wg);return{createPieServices:t}},void 0),e=n().Pie.parser.LangiumParser;Tt.pie=e},"pie"),gitGraph:x(async()=>{const{createGitGraphServices:n}=await yn(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>Vg);return{createGitGraphServices:t}},void 0),e=n().GitGraph.parser.LangiumParser;Tt.gitGraph=e},"gitGraph")};async function Fg(n,e){const t=Ug[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);Tt[n]||await t();const i=Tt[n].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new Gg(i);return i.value}x(Fg,"parse");var Lt,Gg=(Lt=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}},x(Lt,"MermaidParseError"),Lt);const Bg=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:kc,createInfoServices:Ic},Symbol.toStringTag,{value:"Module"})),Hg=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:Sc,createPacketServices:xc},Symbol.toStringTag,{value:"Module"})),Wg=Object.freeze(Object.defineProperty({__proto__:null,PieModule:Cc,createPieServices:wc},Symbol.toStringTag,{value:"Module"})),Vg=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:bc,createGitGraphServices:Nc},Symbol.toStringTag,{value:"Module"}));export{Fg as p};