Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Z=require('util');O=Object;N="length";A=u=>O.fromEntries([...u.matchAll(/([a-zA-Z])(-?\d+)/g)].map(_=> _.slice(1)));B=u=>{s="";e=O.entries(u);for(i=e[N];i--;)s+=e[i][0]+e[i][1];return s};D=T=>{S=[];U=[];p=/[+*\/]/;for(t of T){if(/\d+/.test(t[0])||/\d+/.test(t[1])&&t[0]=="-"|t[0]=="+")S.push(t);else if(p.test(t)){r=S.pop();l=S.pop();h=U.pop();if(H=U.pop()){f=A(h);g=A(H);if(t=="+")if(Z.isDeepStrictEqual(g,f))n=B(g);else return'*';m=t=="/"?-1:1;L=O.keys(g);P=O.keys(f);z={};for(i=0;i<L[N];)if((k=L[i++])in f)(y=+g[k]+m*+f[k])?z[k]=y:0;else z[k]=g[k];for(i=P[N];i--;)if(!((k=P[i])in z|k in g))z[k]=m*+f[k];n=B(z);n>""?U.push(n):0}S.push(""+eval(l+t+r))}else U.push(t[N]>1?t:t+1)}return S.map((E,I)=>E+(U[I]||"")).join(" ")}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement