MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

www/js/_hyperscript-max.min.js:10–10  ·  view source on GitHub ↗
(e)

Source from the content-addressed store, hash-verified

8`,this.#h="indeterminant"),e.content=t,e.end=this.#i,e}#H(){var e=this.#m("IDENTIFIER"),t=this.#r(),r=t==="\\";for(r&&(t="");(this.#l(this.#e())||this.#u(this.#e())||this.#y(this.#e())||this.#e()==="\\"||this.#e()==="{"||this.#e()==="}")&&!(this.#e()==="$"&&!r);)this.#e()==="\\"?(r=!0,this.#r()):(r=!1,t+=this.#r());return this.#e()==="!"&&t==="beep"&&(t+=this.#r()),e.value=t,e.end=this.#i,e}#q(){for(var e=this.#m("IDENTIFIER"),t=this.#r();this.#l(this.#e())||this.#u(this.#e())||this.#y(this.#e());)t+=this.#r();return this.#e()==="!"&&t==="beep"&&(t+=this.#r()),e.value=t,e.end=this.#i,e}#D(){for(var e=this.#m("NUMBER"),t=this.#r();this.#u(this.#e());)t+=this.#r();for(this.#e()==="."&&this.#u(this.#f())&&(t+=this.#r());this.#u(this.#e());)t+=this.#r();for((this.#e()==="e"||this.#e()==="E")&&(this.#u(this.#f())?t+=this.#r():this.#f()==="-"&&(t+=this.#r(),t+=this.#r()));this.#u(this.#e());)t+=this.#r();return e.value=t,e.end=this.#i,e}#N(){for(var e=this.#A(),t=this.#r();this.#e()&&Ae[t+this.#e()];)t+=this.#r();return e.type=Ae[t],e.value=t,e.end=this.#i,e}#S(){var e=this.#m("STRING"),t=this.#r();e.template=t==="`";for(var r="";this.#e()&&this.#e()!==t;)if(this.#e()==="\\"){this.#r();let i=this.#r();if(i==="b")r+="\b";else if(i==="f")r+="\f";else if(i==="n")r+=`
9`;else if(i==="r")r+="\r";else if(i==="t")r+=" ";else if(i==="v")r+="\v";else if(e.template&&i==="$")r+="\\$";else if(i==="x"){let n=this.#j();if(Number.isNaN(n))throw new Error("Invalid hexadecimal escape at [Line: "+e.line+", Column: "+e.column+"]");r+=String.fromCharCode(n)}else r+=i}else r+=this.#r();if(this.#e()!==t)throw new Error("Unterminated string at [Line: "+e.line+", Column: "+e.column+"]");return this.#r(),e.value=r,e.end=this.#i,e}#j(){if(!this.#e())return NaN;let e=16*Number.parseInt(this.#r(),16);return this.#e()?(e+=Number.parseInt(this.#r(),16),e):NaN}#W(){var e=this.#e(),t=this.#f(),r=this.#x(2);return e==="-"&&t==="-"&&(this.#p(r)||r===""||r==="-")||e==="/"&&t==="/"&&(this.#p(r)||r===""||r==="/")}#U(){for(;this.#i<this.#t.length;)if(this.#W())this.#L();else if(this.#p(this.#e()))this.#n.push(this.#_());else if(!this.#E()&&this.#e()==="."&&(this.#l(this.#f())||this.#f()==="{"||this.#f()==="-"))this.#n.push(this.#I());else if(!this.#E()&&this.#e()==="#"&&(this.#l(this.#f())||this.#f()==="{"))this.#d==="lines"&&this.#h==="indeterminant"?(this.#h="command",this.#n.push(this.#R())):this.#n.push(this.#O());else if(this.#d==="lines"&&this.#h==="indeterminant"&&this.#c===0)this.#h="template",this.#n.push(this.#P());else if(this.#e()==="["&&this.#f()==="@")this.#n.push(this.#M());else if(this.#e()==="@")this.#n.push(this.#C());else if(this.#e()==="*"&&this.#l(this.#f()))this.#n.push(this.#F());else if(this.#T()&&(this.#l(this.#e())||this.#e()==="\\")&&this.#h!=="command")this.#n.push(this.#H());else if(this.#k()&&(this.#l(this.#e())||this.#y(this.#e())))this.#n.push(this.#q());else if(this.#u(this.#e()))this.#n.push(this.#D());else if(this.#k()&&(this.#e()==='"'||this.#e()==="`"))this.#n.push(this.#S());else if(this.#k()&&this.#e()==="'")this.#w()?this.#n.push(this.#S()):this.#n.push(this.#N());else if(Ae[this.#e()])this.#a==="$"&&this.#e()==="{"&&this.#c++,this.#e()==="}"&&this.#c--,this.#n.push(this.#N());else if(this.#T()||this.#b(this.#e()))this.#n.push(this.#m("RESERVED",this.#r()));else if(this.#i<this.#t.length)throw new Error("Unknown token: "+this.#e()+" ");return new Le(this.#n,this.#t)}};var C=class s{errors=[];collectErrors(e){if(e||(e=new Set),e.has(this))return[];e.add(this);var t=[...this.errors];for(var r of Object.keys(this))for(var i of[this[r]].flat())i instanceof s&&t.push(...i.collectErrors(e));return t}sourceFor(){return this.programSource.substring(this.startToken.start,this.endToken.end)}lineFor(){return this.programSource.split(`
10`)[this.startToken.line-1]}static parseEventArgs(e){var t=[];if(e.token(0).value==="("&&(e.token(1).value===")"||e.token(2).value===","||e.token(2).value===")")){e.matchOpToken("(");do t.push(e.requireTokenType("IDENTIFIER"));while(e.matchOpToken(","));e.requireOpToken(")")}return t}},b=class extends C{constructor(){super(),this.constructor.grammarName&&(this.type=this.constructor.grammarName)}evaluate(e){return e.meta.runtime.unifiedEval(this,e)}evalStatically(){throw new Error("This expression cannot be evaluated statically: "+this.type)}},g=class extends C{constructor(){super(),this.constructor.keyword&&(this.type=this.constructor.keyword+"Command")}execute(e){return e.meta.command=this,e.meta.runtime.unifiedExec(this,e)}findNext(e){return e.meta.runtime.findNext(this,e)}},q=class extends C{isFeature=!0;constructor(){super(),this.constructor.keyword&&(this.type=this.constructor.keyword+"Feature")}install(e,t,r,i){}static parseErrorAndFinally(e){var t,r,i;return e.matchToken("catch")&&(t=e.requireTokenType("IDENTIFIER").value,r=e.requireElement("commandList"),e.ensureTerminated(r)),e.matchToken("finally")&&(i=e.requireElement("commandList"),e.ensureTerminated(i)),{errorHandler:r,errorSymbol:t,finallyHandler:i}}};var ue=class extends g{constructor(){super(),this.type="emptyCommandListCommand"}resolve(e){return this.findNext(e)}},ce=class extends g{constructor(e,t){super(),this.type="unlessStatementModifier",this.root=e,this.args={conditional:t}}resolve(e,{conditional:t}){return t?this.next:this.root}},Y=class extends C{constructor(e){super(),this.type="hyperscript",this.features=e}apply(e,t,r,i){for(let n of this.features)n.install(e,t,r,i)}},X=class extends q{constructor(e,t){super(),this.type="failedFeature",this.keyword=t,this.errors.push(e)}install(){}},he=class extends g{constructor(e,t){super(),this.type="failedCommand",this.keyword=t,this.errors.push(e)}resolve(){}},fe=class extends g{constructor(){super(),this.type="implicitReturn"}resolve(e){return e.meta.returned=!0,e.meta.resolve&&e.meta.resolve(),e.meta.runtime.HALT}};var De={};N(De,{ArrayLiteral:()=>Ce,BooleanLiteral:()=>_e,NakedNamedArgumentList:()=>Pe,NakedString:()=>G,NamedArgumentList:()=>me,NullLiteral:()=>Ie,NumberLiteral:()=>Oe,ObjectKey:()=>Fe,ObjectLiteral:()=>Re,StringLike:()=>He,StringLiteral:()=>Me});var G=class s extends b{static grammarName="nakedString";constructor(e){super(),this.tokens=e}static parse(e){if(e.hasMore()){var t=e.consumeUntilWhitespace();return e.matchTokenType("WHITESPACE"),new s(t)}}evalStatically(){return this.resolve()}resolve(e){return this.tokens.map(function(t){return t.value}).join("")}},_e=class s extends b{static grammarName="boolean";static expressionType="leaf";constructor(e){super(),this.value=e}static parse(e){var t=e.matchToken("true")||e.matchToken("false");if(!t)return;let r=t.value==="true";return new s(r)}evalStatically(){return this.value}resolve(e){return this.value}},Ie=class s extends b{static grammarName="null";static expressionType="leaf";constructor(){super()}static parse(e){if(e.matchToken("null"))return new s}evalStatically(){return null}resolve(e){return null}},Oe=class s extends b{static grammarName="number";static expressionType="leaf";constructor(e,t){super(),this.value=e,this.numberToken=t}static parse(e){var t=e.matchTokenType("NUMBER");if(t){var r=t,i=parseFloat(t.value);return new s(i,r)}}evalStatically(){return this.value}resolve(e){return this.value}},Me=class s extends b{static grammarName="string";static expressionType="leaf";constructor(e,t,r){super(),this.token=e,this.rawValue=t,this.args=r.length>0?{parts:r}:null}static parse(e){var t=e.matchTokenType("STRING");if(t){var r=t.value,i;if(t.template){var n=M.tokenize(r,!0),o=e.createChildParser(n);i=o.parseStringTemplate()}else i=[];return new s(t,r,i)}}evalStatically(){return this.args===null?this.rawValue:super.evalStatically()}resolve(e,{parts:t}={}){if(!t||t.length===0)return this.rawValue;for(var r="",i=0;i<t.length;i++){var n=t[i];n!==void 0&&(r+=n)}return r}},Ce=class s extends b{static grammarName="arrayLiteral";static expressionType="leaf";constructor(e){super(),this.values=e,this.args={values:e}}static parse(e){if(e.matchOpToken("[")){var t=[];if(!e.matchOpToken("]")){do{var r=e.requireElement("expression");t.push(r)}while(e.matchOpToken(","));e.requireOpToken("]")}return new s(t)}}resolve(e,{values:t}){return t}},Fe=class s extends b{static grammarName="objectKey";constructor(e,t,r){super(),this.key=e,this.expr=t,this.args=r}static parse(e){var t;if(t=e.matchTokenType("STRING"))return new s(t.value,null,null);if(e.matchOpToken("[")){var r=e.parseElement("expression");return e.requireOpToken("]"),new s(null,r,{value:r})}else{var i="";do t=e.matchTokenType("IDENTIFIER")||e.matchOpToken("-"),t&&(i+=t.value);while(t);return new s(i,null,null)}}evalStatically(){return this.expr?super.evalStatically():this.key}resolve(e,{value:t}={}){return this.expr?t:this.key}},Re=class s extends b{static grammarName="objectLiteral";static expressionType="leaf";constructor(e,t){super(),this.keyExpressions=e,this.valueExpressions=t,this.args={keys:e,values:t}}static parse(e){if(e.matchOpToken("{")){var t=[],r=[];if(!e.matchOpToken("}")){do{var i=e.requireElement("objectKey");e.requireOpToken(":");var n=e.requireElement("expression");r.push(n),t.push(i)}while(e.matchOpToken(",")&&!e.peekToken("}",0,"R_BRACE"));e.requireOpToken("}")}return new s(t,r)}}resolve(e,{keys:t,values:r}){for(var i={},n=0;n<t.length;n++)i[t[n]]=r[n];return i}},me=class s extends b{static grammarName="namedArgumentList";constructor(e,t){super(),this.fields=e,this.args={values:t}}static parseNaked(e){var t=[],r=[];if(e.currentToken().type==="IDENTIFIER")do{var i=e.requireTokenType("IDENTIFIER");e.requireOpToken(":");var n=e.requireElement("expression");r.push(n),t.push({name:i,value:n})}while(e.matchOpToken(","));return new s(t,r)}static parse(e){if(e.matchOpToken("(")){var t=s.parseNaked(e);return e.requireOpToken(")"),t}}resolve(e,{values:t}){for(var r={_namedArgList_:!0},i=0;i<t.length;i++){var n=this.fields[i];r[n.name.value]=t[i]}return r}},Pe=class extends b{static grammarName="nakedNamedArgumentList";static parse=me.parseNaked},He=class extends b{static grammarName="stringLike";static parse(e){return e.parseAnyOf(["string","nakedString"])}};var je=class{constructor(e,t,r,i){this.message=e,this.token=t,this.source=r,this.expected=i||null,this.line=t?.line??null,this.column=t?.column??null}},W=class extends Error{constructor(e){super(e.message),this.parseError=e}},R=class s{#t;constructor(e,t){this.#t=e,this.tokens=t}toString(){this.tokens.matched}static formatErrors(e){if(!e.length)return"";var t=e[0].source,r=t.split(`
11`),i=new Map;for(var n of e){var o=n.token?.line?n.token.line-1:r.length-1;i.has(o)||i.set(o,[]),i.get(o).push(n)}var a=Math.max(...i.keys())+1,l=String(a).length,u=" ".repeat(l+5),c=[...i.entries()].sort((w,E)=>w[0]-E[0]),f=-1,p="";for(var[o,m]of c){(f!==-1&&o>f+1||f===-1&&o>0)&&(p+=" ".repeat(l+1)+`...
12`),f=o;var y=String(o+1).padStart(l),h=r[o]||"";p+=" "+y+" | "+h+`
13`,m.sort((E,x)=>(E.column||0)-(x.column||0));var d=Array(h.length+10).fill(" ");for(var n of m)for(var v=n.token?.line?n.token.column:Math.max(0,h.length-1),k=Math.max(1,n.token?.value?.length||1),T=0;T<k;T++)d[v+T]="^";p+=u+d.join("").trimEnd()+`

Callers

nothing calls this directly

Calls 15

unFunction · 0.85
OiFunction · 0.85
FnFunction · 0.85
PnFunction · 0.85
AiFunction · 0.70
BiFunction · 0.70
pFunction · 0.70
kFunction · 0.50
wFunction · 0.50
EFunction · 0.50
hasMoreMethod · 0.45

Tested by

no test coverage detected