mirror of
https://github.com/doocs/md.git
synced 2024-11-24 19:10:34 +08:00
128 lines
306 KiB
JavaScript
128 lines
306 KiB
JavaScript
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-DUFVDbsz.js";import{v as K,b as Qc,a as I,h as S,r as oe,f as Ee}from"./reduce-BwSmb_Qa.js";import{c as vi,f as $t,d as _i,m as Zc}from"./min-BaNb8v0U.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"],_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_e8612c66-4c7d-4a93-a850-8dbcb2f30827",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_e8612c66-4c7d-4a93-a850-8dbcb2f30827",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:"591",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:19482",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:"10612556768",STATS_VMFE:"true",npm_config_cache:"/home/runner/.npm",GITHUB_REF_TYPE:"branch",BOOTSTRAP_HASKELL_NONINTERACTIVE:"1",GITHUB_WORKFLOW_SHA:"5ed3c7d5df1e5d66d95e6a89eaaf06a20c51153e",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_60162d3b-641b-4422-98a3-952752398873",INVOCATION_ID:"3c2bb79eace94a86a4e34548da702405",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:"404",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 15",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:"5ed3c7d5df1e5d66d95e6a89eaaf06a20c51153e",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_e8612c66-4c7d-4a93-a850-8dbcb2f30827",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_e8612c66-4c7d-4a93-a850-8dbcb2f30827",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_e8612c66-4c7d-4a93-a850-8dbcb2f30827",INIT_CWD:"/home/runner/work/md/md",EDITOR:"vi",NODE_ENV:"production"},title:"node",argv:["/opt/hostedtoolcache/node/20.17.0/x64/bin/node","/home/runner/work/md/md/node_modules/.bin/vite","build"],execArgv:[],pid:2013,ppid:2012,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};
|