UNPKG

markdown-flow-ui

Version:

A React UI library for rendering markdown with interactive flow components, typewriter effects, and plugin support

22 lines 331 kB
"use strict";const $=require("./index-CbHAb2u0.js"),m=require("./_baseUniq-DxykK8oA.js"),g=require("./_basePickBy-B8lFJnei.js"),Z=require("./clone-CRQAe_1N.js");var su=Object.prototype,au=su.hasOwnProperty,Te=$.createAssigner(function(n,e){if($.isPrototype(e)||$.isArrayLike(e)){$.copyObject(e,m.keys(e),n);return}for(var t in e)au.call(e,t)&&$.assignValue(n,t,e[t])});function sl(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function Gn(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 ou(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 lu(n,e,t,r){return m.baseEach(n,function(i,s,a){e(r,i,t(i),a)}),r}function cu(n,e){return function(t,r){var i=$.isArray(t)?ou:lu,s=e?e():{};return i(t,n,m.baseIteratee(r),s)}}var uu=200;function du(n,e,t,r){var i=-1,s=m.arrayIncludes,a=!0,o=n.length,l=[],c=e.length;if(!o)return l;e.length>=uu&&(s=m.cacheHas,a=!1,e=new m.SetCache(e));e:for(;++i<o;){var u=n[i],d=u;if(u=u!==0?u:0,a&&d===d){for(var h=c;h--;)if(e[h]===d)continue e;l.push(u)}else s(e,d,r)||l.push(u)}return l}var Zr=$.baseRest(function(n,e){return $.isArrayLikeObject(n)?du(n,m.baseFlatten(e,1,$.isArrayLikeObject,!0)):[]});function Y(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:g.toInteger(e),sl(n,e<0?0:e,r)):[]}function Pn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:g.toInteger(e),e=r-e,sl(n,0,e<0?0:e)):[]}function fu(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 hu(n,e){var t=!0;return m.baseEach(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function Ie(n,e,t){var r=$.isArray(n)?fu:hu;return r(n,m.baseIteratee(e))}function Ce(n){return n&&n.length?n[0]:void 0}function ye(n,e){return m.baseFlatten(g.map(n,e))}var pu=Object.prototype,mu=pu.hasOwnProperty,gu=cu(function(n,e,t){mu.call(n,t)?n[t].push(e):$.baseAssignValue(n,t,[e])}),yu="[object String]";function le(n){return typeof n=="string"||!$.isArray(n)&&$.isObjectLike(n)&&$.baseGetTag(n)==yu}var Tu=Math.max;function ae(n,e,t,r){n=$.isArrayLike(n)?n:m.values(n),t=t?g.toInteger(t):0;var i=n.length;return t<0&&(t=Tu(i+t,0)),le(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&m.baseIndexOf(n,e,t)>-1}function Zs(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return m.baseIndexOf(n,e,i)}var Ru="[object RegExp]";function vu(n){return $.isObjectLike(n)&&$.baseGetTag(n)==Ru}var ea=$.nodeUtil&&$.nodeUtil.isRegExp,Ve=ea?$.baseUnary(ea):vu,Eu="Expected a function";function Au(n){if(typeof n!="function")throw new TypeError(Eu);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 Ne(n,e){if(n==null)return{};var t=m.arrayMap(m.getAllKeysIn(n),function(r){return[r]});return e=m.baseIteratee(e),g.basePickBy(n,t,function(r,i){return e(r,i[0])})}function ei(n,e){var t=$.isArray(n)?m.arrayFilter:m.baseFilter;return t(n,Au(m.baseIteratee(e)))}function ku(n,e){var t;return m.baseEach(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function al(n,e,t){var r=$.isArray(n)?m.arraySome:ku;return r(n,m.baseIteratee(e))}function Ss(n){return n&&n.length?m.baseUniq(n):[]}function $u(n,e){return n&&n.length?m.baseUniq(n,m.baseIteratee(e)):[]}function ne(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function be(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function xu(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function mr(n){return typeof n=="object"&&n!==null&&ne(n.container)&&be(n.reference)&&typeof n.message=="string"}class ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ne(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 Mn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function ll(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function cl(n){return Mn(n)&&typeof n.fullText=="string"}class X{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){return new X(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return me})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Su(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 X(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?me:{done:!1,value:e(i)}})}filter(e){return new X(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return me})}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 X(()=>({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(wr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return me})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new X(()=>({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(wr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return me})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new X(()=>{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 X(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?me:this.nextFn(t.state)))}distinct(e){return new X(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return me})}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 Su(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function wr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Iu=new X(()=>{},()=>me),me=Object.freeze({done:!0,value:void 0});function J(...n){if(n.length===1){const e=n[0];if(e instanceof X)return e;if(wr(e))return new X(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new X(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:me)}return n.length>1?new X(()=>({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++];wr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return me}):Iu}class Is extends X{constructor(e,t,r){super(()=>({iterators: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 me})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Wi;(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})(Wi||(Wi={}));function Hi(n){return new Is(n,e=>Mn(e)?e.content:[],{includeRoot:!0})}function Cu(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function ji(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Lr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var Ge;(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",n[n.Outside=5]="Outside"})(Ge||(Ge={}));function Nu(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return Ge.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return Ge.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?Ge.Inside:t?Ge.OverlapBack:r?Ge.OverlapFront:Ge.Outside}function wu(n,e){return Nu(n,e)>Ge.After}const Lu=/^[\w\p{L}]$/u;function _u(n,e){if(n){const t=bu(n,!0);if(t&&ta(t,e))return t;if(cl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(ta(s,e))return s}}}}function ta(n,e){return ll(n)&&e.includes(n.tokenType.name)}function bu(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 ul extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Un(n){throw new Error("Error! The input value was not handled.")}const zn="AbstractRule",qn="AbstractType",gi="Condition",na="TypeDefinition",yi="ValueLiteral",Jt="AbstractElement";function Ou(n){return M.isInstance(n,Jt)}const Yn="ArrayLiteral",Xn="ArrayType",Qt="BooleanLiteral";function Pu(n){return M.isInstance(n,Qt)}const Zt="Conjunction";function Mu(n){return M.isInstance(n,Zt)}const en="Disjunction";function Du(n){return M.isInstance(n,en)}const Jn="Grammar",Ti="GrammarImport",tn="InferredType";function dl(n){return M.isInstance(n,tn)}const nn="Interface";function fl(n){return M.isInstance(n,nn)}const Ri="NamedArgument",rn="Negation";function Fu(n){return M.isInstance(n,rn)}const Qn="NumberLiteral",Zn="Parameter",sn="ParameterReference";function Gu(n){return M.isInstance(n,sn)}const an="ParserRule";function ke(n){return M.isInstance(n,an)}const er="ReferenceType",gr="ReturnType";function Uu(n){return M.isInstance(n,gr)}const on="SimpleType";function Bu(n){return M.isInstance(n,on)}const tr="StringLiteral",Rt="TerminalRule";function ht(n){return M.isInstance(n,Rt)}const ln="Type";function hl(n){return M.isInstance(n,ln)}const vi="TypeAttribute",nr="UnionType",cn="Action";function ti(n){return M.isInstance(n,cn)}const un="Alternatives";function pl(n){return M.isInstance(n,un)}const dn="Assignment";function ot(n){return M.isInstance(n,dn)}const fn="CharacterRange";function Vu(n){return M.isInstance(n,fn)}const hn="CrossReference";function Cs(n){return M.isInstance(n,hn)}const pn="EndOfFile";function Ku(n){return M.isInstance(n,pn)}const mn="Group";function Ns(n){return M.isInstance(n,mn)}const gn="Keyword";function lt(n){return M.isInstance(n,gn)}const yn="NegatedToken";function Wu(n){return M.isInstance(n,yn)}const Tn="RegexToken";function Hu(n){return M.isInstance(n,Tn)}const Rn="RuleCall";function ct(n){return M.isInstance(n,Rn)}const vn="TerminalAlternatives";function ju(n){return M.isInstance(n,vn)}const En="TerminalGroup";function zu(n){return M.isInstance(n,En)}const An="TerminalRuleCall";function qu(n){return M.isInstance(n,An)}const kn="UnorderedGroup";function ml(n){return M.isInstance(n,kn)}const $n="UntilToken";function Yu(n){return M.isInstance(n,$n)}const xn="Wildcard";function Xu(n){return M.isInstance(n,xn)}class gl extends ol{getAllTypes(){return[Jt,zn,qn,cn,un,Yn,Xn,dn,Qt,fn,gi,Zt,hn,en,pn,Jn,Ti,mn,tn,nn,gn,Ri,yn,rn,Qn,Zn,sn,an,er,Tn,gr,Rn,on,tr,vn,En,Rt,An,ln,vi,na,nr,kn,$n,yi,xn]}computeIsSubtype(e,t){switch(e){case cn:case un:case dn:case fn:case hn:case pn:case mn:case gn:case yn:case Tn:case Rn:case vn:case En:case An:case kn:case $n:case xn:return this.isSubtype(Jt,t);case Yn:case Qn:case tr:return this.isSubtype(yi,t);case Xn:case er:case on:case nr:return this.isSubtype(na,t);case Qt:return this.isSubtype(gi,t)||this.isSubtype(yi,t);case Zt:case en:case rn:case sn:return this.isSubtype(gi,t);case tn:case nn:case ln:return this.isSubtype(qn,t);case an:return this.isSubtype(zn,t)||this.isSubtype(qn,t);case Rt:return this.isSubtype(zn,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 qn;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return zn;case"Grammar:usedGrammars":return Jn;case"NamedArgument:parameter":case"ParameterReference:parameter":return Zn;case"TerminalRuleCall:rule":return Rt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Jt:return{name:Jt,properties:[{name:"cardinality"},{name:"lookahead"}]};case Yn:return{name:Yn,properties:[{name:"elements",defaultValue:[]}]};case Xn:return{name:Xn,properties:[{name:"elementType"}]};case Qt:return{name:Qt,properties:[{name:"true",defaultValue:!1}]};case Zt:return{name:Zt,properties:[{name:"left"},{name:"right"}]};case en:return{name:en,properties:[{name:"left"},{name:"right"}]};case Jn:return{name:Jn,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 Ti:return{name:Ti,properties:[{name:"path"}]};case tn:return{name:tn,properties:[{name:"name"}]};case nn:return{name:nn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Ri:return{name:Ri,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case rn:return{name:rn,properties:[{name:"value"}]};case Qn:return{name:Qn,properties:[{name:"value"}]};case Zn:return{name:Zn,properties:[{name:"name"}]};case sn:return{name:sn,properties:[{name:"parameter"}]};case an:return{name:an,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 er:return{name:er,properties:[{name:"referenceType"}]};case gr:return{name:gr,properties:[{name:"name"}]};case on:return{name:on,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case tr:return{name:tr,properties:[{name:"value"}]};case Rt:return{name:Rt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case ln:return{name:ln,properties:[{name:"name"},{name:"type"}]};case vi:return{name:vi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case nr:return{name:nr,properties:[{name:"types",defaultValue:[]}]};case cn:return{name:cn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case un:return{name:un,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case dn:return{name:dn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case fn:return{name:fn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case hn:return{name:hn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case pn:return{name:pn,properties:[{name:"cardinality"},{name:"lookahead"}]};case mn:return{name:mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case gn:return{name:gn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case yn:return{name:yn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Tn:return{name:Tn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Rn:return{name:Rn,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case An:return{name:An,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new gl;function Ju(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ne(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ne(t)&&(t.$container=n,t.$containerProperty=e))}function ni(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function He(n){const t=zi(n).$document;if(!t)throw new Error("AST node has no document.");return t}function zi(n){for(;n.$container;)n=n.$container;return n}function ws(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new X(()=>({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(ne(s)){if(r.keyIndex++,ra(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(ne(o)&&ra(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return me})}function Bn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Is(n,t=>ws(t,e))}function Et(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Is(n,t=>ws(t,e),{includeRoot:!0})}function ra(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?wu(r,e):!1}function yl(n){return new X(()=>({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(be(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(be(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return me})}function Qu(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]=Tl(i.defaultValue))}function Tl(n){return Array.isArray(n)?[...n.map(Tl)]:n}function w(n){return n.charCodeAt(0)}function Ei(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function qt(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Tt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function Zu(){throw Error("Internal Error - Should never get here!")}function ia(n){return n.type==="Character"}const _r=[];for(let n=w("0");n<=w("9");n++)_r.push(n);const br=[w("_")].concat(_r);for(let n=w("a");n<=w("z");n++)br.push(n);for(let n=w("A");n<=w("Z");n++)br.push(n);const sa=[w(" "),w("\f"),w(` `),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],ed=/[0-9a-fA-F]/,rr=/[0-9]/,td=/[1-9]/;class Rl{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":qt(r,"global");break;case"i":qt(r,"ignoreCase");break;case"m":qt(r,"multiLine");break;case"u":qt(r,"unicode");break;case"y":qt(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Tt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return Zu()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Tt(t);break}if(!(e===!0&&t===void 0)&&Tt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Tt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(` `),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=_r;break;case"D":e=_r,t=!0;break;case"s":e=sa;break;case"S":e=sa,t=!0;break;case"w":e=br;break;case"W":e=br,t=!0;break}if(Tt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(` `);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Tt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:w(e)}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const r=this.classAtom();if(r.type,ia(r)&&this.isRangeDash()){this.consumeChar("-");const i=this.classAtom();if(i.type,ia(i)){if(i.value<r.value)throw Error("Range out of order in character class");e.push({from:r.value,to:i.value})}else Ei(r.value,e),e.push(w("-")),Ei(i.value,e)}else Ei(r.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case` `:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:w("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}const t=this.disjunction();this.consumeChar(")");const r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(td.test(e)===!1)throw Error("Expecting a positive integer");for(;rr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(rr.test(e)===!1)throw Error("Expecting an integer");for(;rr.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case` `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:w(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return rr.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(ed.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 ri{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 nd=/\r?\n/gm,rd=new Rl;class id extends ri{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=ii(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 Ai=new id;function sd(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),Ai.reset(n),Ai.visit(rd.pattern(n)),Ai.multiline}catch{return!1}}const ad=`\f \r \v              \u2028\u2029   \uFEFF`.split("");function qi(n){const e=typeof n=="string"?new RegExp(n):n;return ad.some(t=>e.test(t))}function ii(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function od(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ii(e)).join("")}function ld(n,e){const t=cd(n),r=e.match(t);return!!r&&r[0].length>0}function cd(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 ud(n){return n.rules.find(e=>ke(e)&&e.entry)}function dd(n){return n.rules.filter(e=>ht(e)&&e.hidden)}function vl(n,e){const t=new Set,r=ud(n);if(!r)return new Set(n.rules);const i=[r].concat(dd(n));for(const a of i)El(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||ht(a)&&a.hidden)&&s.add(a);return s}function El(n,e,t){e.add(n.name),Bn(n).forEach(r=>{if(ct(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&El(i,e,t)}})}function fd(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=kl(n.type.ref);return e?.terminal}}function hd(n){return n.hidden&&!qi(Os(n))}function pd(n,e){return!n||!e?[]:Ls(n,e,n.astNode,!0)}function Al(n,e,t){if(!n||!e)return;const r=Ls(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 Ls(n,e,t,r){if(!r){const i=ni(n.grammarSource,ot);if(i&&i.feature===e)return[n]}return Mn(n)&&n.astNode===t?n.content.flatMap(i=>Ls(i,e,t,!1)):[]}function md(n,e,t){if(!n)return;const r=gd(n,e,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 gd(n,e,t){if(n.astNode!==t)return[];if(lt(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=Hi(n).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===t?lt(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function yd(n){var e;const t=n.astNode;for(;t===((e=n.container)===null||e===void 0?void 0:e.astNode);){const r=ni(n.grammarSource,ot);if(r)return r;n=n.container}}function kl(n){let e=n;return dl(e)&&(ti(e.$container)?e=e.$container.$container:ke(e.$container)?e=e.$container:Un(e.$container)),$l(n,e,new Map)}function $l(n,e,t){var r;function i(s,a){let o;return ni(s,ot)||(o=$l(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 Bn(e)){if(ot(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(ct(s)&&ke(s.rule.ref))return i(s,s.rule.ref);if(Bu(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function xl(n){return Sl(n,new Set)}function Sl(n,e){if(e.has(n))return!0;e.add(n);for(const t of Bn(n))if(ct(t)){if(!t.rule.ref||ke(t.rule.ref)&&!Sl(t.rule.ref,e))return!1}else{if(ot(t))return!1;if(ti(t))return!1}return!!n.definition}function _s(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(ke(e))return e.name;if(fl(e)||hl(e))return e.name}}}function bs(n){var e;if(ke(n))return xl(n)?n.name:(e=_s(n))!==null&&e!==void 0?e:n.name;if(fl(n)||hl(n)||Uu(n))return n.name;if(ti(n)){const t=Td(n);if(t)return t}else if(dl(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function Td(n){var e;if(n.inferredType)return n.inferredType.name;if(!((e=n.type)===null||e===void 0)&&e.ref)return bs(n.type.ref)}function Rd(n){var e,t,r;return ht(n)?(t=(e=n.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(r=_s(n))!==null&&r!==void 0?r:n.name}function Os(n){const e={s:!1,i:!1,u:!1},t=Wt(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const Ps=/[\s\S]/.source;function Wt(n,e){if(ju(n))return vd(n);if(zu(n))return Ed(n);if(Vu(n))return $d(n);if(qu(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return Be(Wt(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(Wu(n))return kd(n);if(Yu(n))return Ad(n);if(Hu(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")),Be(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(Xu(n))return Be(Ps,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n?.$type}`)}}}function vd(n){return Be(n.elements.map(e=>Wt(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function Ed(n){return Be(n.elements.map(e=>Wt(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function Ad(n){return Be(`${Ps}*?${Wt(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function kd(n){return Be(`(?!${Wt(n.terminal)})${Ps}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function $d(n){return n.right?Be(`[${ki(n.left)}-${ki(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):Be(ki(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function ki(n){return ii(n.value)}function Be(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 xd(n){const e=[],t=n.Grammar;for(const r of t.rules)ht(r)&&hd(r)&&sd(Os(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:Lu}}function Yi(n){console&&console.error&&console.error(`Error: ${n}`)}function Il(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function Cl(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function Nl(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function Sd(n){return Id(n)?n.LABEL:n.name}function Id(n){return le(n.LABEL)&&n.LABEL!==""}class Oe{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),m.forEach(this.definition,t=>{t.accept(e)})}}class ie extends Oe{constructor(e){super([]),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class Ht extends Oe{constructor(e){super(e.definition),this.orgText="",Te(this,Ne(e,t=>t!==void 0))}}class ce extends Oe{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Te(this,Ne(e,t=>t!==void 0))}}let Q=class extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}};class Re extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class ve extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class K extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class ue extends Oe{constructor(e){super(e.definition),this.idx=1,Te(this,Ne(e,t=>t!==void 0))}}class de extends Oe{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,Ne(e,t=>t!==void 0))}}class F{constructor(e){this.idx=1,Te(this,Ne(e,t=>t!==void 0))}accept(e){e.visit(this)}}function Cd(n){return g.map(n,yr)}function yr(n){function e(t){return g.map(t,yr)}if(n instanceof ie){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return le(n.label)&&(t.label=n.label),t}else{if(n instanceof ce)return{type:"Alternative",definition:e(n.definition)};if(n instanceof Q)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 ve)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:yr(new F({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof ue)return{type:"RepetitionWithSeparator",idx:n.idx,separator:yr(new F({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof K)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof de)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof F){const t={type:"Terminal",name:n.terminalType.name,label:Sd(n.terminalType),idx:n.idx};le(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=Ve(r)?r.source:r),t}else{if(n instanceof Ht)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}class jt{visit(e){const t=e;switch(t.constructor){case ie:return this.visitNonTerminal(t);case ce:return this.visitAlternative(t);case Q:return this.visitOption(t);case Re:return this.visitRepetitionMandatory(t);case ve:return this.visitRepetitionMandatoryWithSeparator(t);case ue:return this.visitRepetitionWithSeparator(t);case K:return this.visitRepetition(t);case de:return this.visitAlternation(t);case F:return this.visitTerminal(t);case Ht:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function Nd(n){return n instanceof ce||n instanceof Q||n instanceof K||n instanceof Re||n instanceof ve||n instanceof ue||n instanceof F||n instanceof Ht}function Or(n,e=[]){return n instanceof Q||n instanceof K||n instanceof ue?!0:n instanceof de?al(n.definition,r=>Or(r,e)):n instanceof ie&&ae(e,n)?!1:n instanceof Oe?(n instanceof ie&&e.push(n),Ie(n.definition,r=>Or(r,e))):!1}function wd(n){return n instanceof de}function _e(n){if(n instanceof ie)return"SUBRULE";if(n instanceof Q)return"OPTION";if(n instanceof de)return"OR";if(n instanceof Re)return"AT_LEAST_ONE";if(n instanceof ve)return"AT_LEAST_ONE_SEP";if(n instanceof ue)return"MANY_SEP";if(n instanceof K)return"MANY";if(n instanceof F)return"CONSUME";throw Error("non exhaustive match")}class si{walk(e,t=[]){m.forEach(e.definition,(r,i)=>{const s=Y(e.definition,i+1);if(r instanceof ie)this.walkProdRef(r,s,t);else if(r instanceof F)this.walkTerminal(r,s,t);else if(r instanceof ce)this.walkFlat(r,s,t);else if(r instanceof Q)this.walkOption(r,s,t);else if(r instanceof Re)this.walkAtLeastOne(r,s,t);else if(r instanceof ve)this.walkAtLeastOneSep(r,s,t);else if(r instanceof ue)this.walkManySep(r,s,t);else if(r instanceof K)this.walkMany(r,s,t);else if(r instanceof de)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 Q({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=aa(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new Q({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=aa(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);m.forEach(e.definition,s=>{const a=new ce({definition:[s]});this.walk(a,i)})}}function aa(n,e,t){return[new Q({definition:[new F({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function Vn(n){if(n instanceof ie)return Vn(n.referencedRule);if(n instanceof F)return bd(n);if(Nd(n))return Ld(n);if(wd(n))return _d(n);throw Error("non exhaustive match")}function Ld(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=Or(s),e=e.concat(Vn(s)),r=r+1,i=t.length>r;return Ss(e)}function _d(n){const e=g.map(n.definition,t=>Vn(t));return Ss(g.flatten(e))}function bd(n){return[n.terminalType]}const wl="_~IN~_";class Od extends si{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=Md(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new ce({definition:s}),o=Vn(a);this.follows[i]=o}}function Pd(n){const e={};return m.forEach(n,t=>{const r=new Od(t).startWalking();Te(e,r)}),e}function Md(n,e){return n.name+e+wl}let Tr={};const Dd=new Rl;function ai(n){const e=n.toString();if(Tr.hasOwnProperty(e))return Tr[e];{const t=Dd.pattern(e);return Tr[e]=t,t}}function Fd(){Tr={}}const Ll="Complement Sets are not supported for first char optimization",Pr=`Unable to use "first char" lexer optimizations: `;function Gd(n,e=!1){try{const t=ai(n);return Xi(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===Ll)e&&Il(`${Pr} 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.`),Yi(`${Pr} 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 Xi(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i<n.value.length;i++)Xi(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":ir(a.value,e,t);break;case"Set":if(a.complement===!0)throw Error(Ll);m.forEach(a.value,l=>{if(typeof l=="number")ir(l,e,t);else{const c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)ir(u,e,t);else{for(let u=c.from;u<=c.to&&u<In;u++)ir(u,e,t);if(c.to>=In){const u=c.from>=In?c.from:In,d=c.to,h=je(u),f=je(d);for(let y=h;y<=f;y++)e[y]=y}}}});break;case"Group":Xi(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"&&Ji(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return m.values(e)}function ir(n,e,t){const r=je(n);e[r]=r,t===!0&&Ud(n,e)}function Ud(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=je(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=je(i.charCodeAt(0));e[s]=s}}}function oa(n,e){return g.find(n.value,t=>{if(typeof t=="number")return ae(e,t);{const r=t;return g.find(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function Ji(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?$.isArray(n.value)?Ie(n.value,Ji):Ji(n.value):!1}class Bd extends ri{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){ae(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?oa(e,this.targetCharCodes)===void 0&&(this.found=!0):oa(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function Ms(n,e){if(e instanceof RegExp){const t=ai(e),r=new Bd(n);return r.visit(t),r.found}else return g.find(e,t=>ae(n,t.charCodeAt(0)))!==void 0}const ut="PATTERN",Sn="defaultMode",sr="modes";let _l=typeof new RegExp("(?:)").sticky=="boolean";function Vd(n,e){e=g.defaults(e,{useSticky:_l,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` `],tracer:(x,E)=>E()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{ff()});let r;t("Reject Lexer.NA",()=>{r=ei(n,x=>x[ut]===oe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=g.map(r,x=>{const E=x[ut];if(Ve(E)){const N=E.source;return N.length===1&&N!=="^"&&N!=="$"&&N!=="."&&!E.ignoreCase?N:N.length===2&&N[0]==="\\"&&!ae(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],N[1])?N[1]:e.useSticky?ca(E):la(E)}else{if($.isFunction(E))return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{const N=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),D=new RegExp(N);return e.useSticky?ca(D):la(D)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=g.map(r,x=>x.tokenTypeIdx),o=g.map(r,x=>{const E=x.GROUP;if(E!==oe.SKIPPED){if(le(E))return E;if(m.isUndefined(E))return!1;throw Error("non exhaustive match")}}),l=g.m