subscript 7.0.1 → 7.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -359,7 +359,7 @@ math-parser: -
359
359
  * [math-parser](https://www.npmjs.com/package/math-parser)
360
360
  * [math.js](https://mathjs.org/docs/expressions/parsing.html)
361
361
 
362
- ## Next door
362
+ ## JS engines
363
363
 
364
364
  * [engine262](https://github.com/engine262/engine262)
365
365
  * [Jessie](https://github.com/endojs/Jessie)
package/compile.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // build optimized evaluator for the tree
2
- export const compile = (node) => !Array.isArray(node) ? ctx => ctx[node] : operator[node[0]](...node.slice(1)),
2
+ export const compile = (node) => !Array.isArray(node) ? ctx => ctx?.[node] : operator[node[0]](...node.slice(1)),
3
3
 
4
4
  set = compile.set = (op, fn, prev=operator[op]) => operator[op] = (...args) => fn(...args) || prev && prev(...args),
5
5
 
package/justin.min.js CHANGED
@@ -1 +1 @@
1
- let e,r,t=t=>(e=0,r=t,!(t=a())||r[e]?l():t),l=(t="Bad syntax",l=r[e])=>{throw SyntaxError(t+" `"+l+"` at "+e)},n=(t=1,l=e,n)=>{if("number"==typeof t)e+=t;else for(;n=t(r.charCodeAt(e));)e+=n;return r.slice(l,e)},a=(r=0,t,n,a,o,c)=>{for(;(n=s())&&(o=(c=i[n])&&c(a,r)||!a&&i[0]());)a=o;return t&&(n==t?e++:l()),a},s=t=>{for(;(t=r.charCodeAt(e))<=32;)e++;return t},o=e=>e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||36==e||95==e||e>=192&&215!=e&&247!=e,i=[e=>n(o)];t.set=(t,l=32,n,a=t.charCodeAt(0),s=t.length,c=i[a],f=t.toUpperCase()!==t)=>i[a]=(a,i,p=e)=>i<l&&(s<2||r.substr(e,s)==t)&&(!f||!o(r.charCodeAt(e+s)))&&(e+=s,n(a,i))||(e=p,c&&c(a,i));const c=e=>Array.isArray(e)?f[e[0]](...e.slice(1)):r=>r[e];c.set=(e,r,t=f[e])=>f[e]=(...e)=>r(...e)||t&&t(...e);const f={},p=e=>(e=e.trim())?(e=t(e.trim()),r=>(e.call?e:e=c(e))(r)):()=>{},h=p.set=(e,r,l,n=r<0,s=l[0],o=l[1],f=!s&&l.length)=>(s||=f?f>1?(t,l)=>t&&(l=a(r-n))&&[e,t,l]:t=>!t&&(t=a(r-1))&&[e,t]:(t,l)=>t&&(l=a(r))&&(t[0]===e&&t[2]?(t.push(l),t):[e,t,l]),o||=f?f>1?(e,r)=>r&&(e=c(e),r=c(r),e.length||r.length?t=>l(e(t),r(t)):(e=l(e(),r()),()=>e)):(e,r)=>!r&&((e=c(e)).length?r=>l(e(r)):(e=l(e()),()=>e)):(...e)=>(e=e.map(c),r=>l(...e.map((e=>e(r))))),(r=n?-r:r)?t.set(e,r,s):i[e.charCodeAt(0)||1]=s,c.set(e,o)),d=e=>e?l():["",(e=+n((e=>46===e||e>=48&&e<=57||(69===e||101===e?2:0))))!=e?l():e],u=(e,r,t,l)=>[e,r,[t=>t?["++"===e?"-":"+",[e,t],["",1]]:[e,a(r-1)],l=(e,r)=>"("===e[0]?l(e[1]):"."===e[0]?(r=e[2],e=c(e[1]),l=>t(e(l),r)):"["===e[0]?([,e,r]=e,e=c(e),r=c(r),l=>t(e(l),r(l))):r=>t(r,e)]],m=["",,[,e=>()=>e],'"',,[e=>e?l():["",(n()+n((e=>e-34?1:0))+(n()||l("Bad string"))).slice(1,-1)]],".",,[e=>!e&&d()],...Array(10).fill(0).flatMap(((e,r)=>[""+r,0,[d]])),",",1,(...e)=>e[e.length-1],"||",4,(...e)=>{let r,t=0;for(;!r&&t<e.length;)r=e[t++];return r},"&&",5,(...e)=>{let r=0,t=!0;for(;t&&r<e.length;)t=e[r++];return t},"+",12,(e,r)=>e+r,"-",12,(e,r)=>e-r,"*",13,(e,r)=>e*r,"/",13,(e,r)=>e/r,"%",13,(e,r)=>e%r,"|",6,(e,r)=>e|r,"&",8,(e,r)=>e&r,"^",7,(e,r)=>e^r,"==",9,(e,r)=>e==r,"!=",9,(e,r)=>e!=r,">",10,(e,r)=>e>r,">=",10,(e,r)=>e>=r,"<",10,(e,r)=>e<r,"<=",10,(e,r)=>e<=r,">>",11,(e,r)=>e>>r,">>>",11,(e,r)=>e>>>r,"<<",11,(e,r)=>e<<r,"+",15,e=>+e,"-",15,e=>-e,"!",15,e=>!e,...u("++",15,((e,r)=>++e[r])),...u("--",15,((e,r)=>--e[r])),"[",18,[e=>e&&["[",e,a(0,93)||l()],(e,r)=>r&&(e=c(e),r=c(r),t=>e(t)[r(t)])],".",18,[(e,r)=>e&&(r=a(18))&&[".",e,r],(e,r)=>(e=c(e),r=r[0]?r:r[1],t=>e(t)[r])],"(",18,[e=>!e&&["(",a(0,41)||l()],c],"(",18,[e=>e&&["(",e,a(0,41)||""],(e,r,t,l)=>null!=r&&(l=""==r?()=>[]:","===r[0]?(r=r.slice(1).map(c),e=>r.map((r=>r(e)))):(r=c(r),e=>[r(e)]),"."===e[0]?(t=e[2],e=c(e[1]),r=>e(r)[t](...l(r))):"["===e[0]?(t=c(e[2]),e=c(e[1]),r=>e(r)[t(r)](...l(r))):(e=c(e),r=>e(r)(...l(r))))]];for(;m[2];)h(...m.splice(0,3));let A={n:"\n",r:"\r",t:"\t",b:"\b",f:"\f",v:"\v"},g=t=>(a,s,o="")=>{for(a&&l("Unexpected string"),n();(s=r.charCodeAt(e))-t;)92===s?(n(),s=n(),o+=A[s]||s):o+=n();return n(),["",o]},y=["===",9,(e,r)=>e===r,"!==",9,(e,r)=>e!==r,"~",15,e=>~e,"?",3,[(e,r,t)=>e&&(r=a(2,58))&&["?",e,r,a(3)],(e,r,t)=>(e=c(e),r=c(r),t=c(t),l=>e(l)?r(l):t(l))],"??",6,(e,r)=>e??r,"?.",18,[e=>e&&["?.",e],e=>(e=c(e),r=>e(r)||(()=>{}))],"?.",18,[(e,r)=>e&&!(r=a(18))?.map&&["?.",e,r],(e,r)=>r&&(e=c(e),t=>e(t)?.[r])],"in",10,(e,r)=>e in r,'"',,[g(34)],"'",,[g(39)],"/*",20,[(t,l)=>(n((t=>42!==t&&47!==r.charCodeAt(e+1))),n(2),t||a(l))],"//",20,[(e,r)=>(n((e=>e>=32)),e||a(r))],"null",20,[e=>e?l():["",null]],"true",20,[e=>e?l():["",!0]],"false",20,[e=>e?l():["",!1]],"undefined",20,[e=>e?l():["",void 0]],";",20,[e=>a()||[""]],"**",-14,(e,r)=>e**r,"[",20,[e=>!e&&["[",a(0,93)||""],(e,r)=>!r&&(e?","===e[0]?(e=e.slice(1).map(c),r=>e.map((e=>e(r)))):(e=c(e),r=>[e(r)]):()=>[])],"{",20,[e=>!e&&["{",a(0,125)||""],(e,r)=>e?","===e[0]?(e=e.slice(1).map(c),r=>Object.fromEntries(e.map((e=>e(r))))):":"===e[0]?(e=c(e),r=>Object.fromEntries([e(r)])):(r=c(e),t=>({[e]:r(t)})):e=>({})],":",1.1,[(e,r)=>[":",e,a(1.1)||l()],(e,r)=>(r=c(r),e=Array.isArray(e)?c(e):(e=>e).bind(0,e),t=>[e(t),r(t)])]];for(;y[2];)p.set(...y.splice(0,3));export{c as compile,p as default,t as parse};
1
+ let e,r,t=t=>(e=0,r=t,t=a(),r[e]?l():t||""),l=(t="Bad syntax",l=r[e])=>{throw SyntaxError(t+" `"+l+"` at "+e)},n=(t=1,l=e,n)=>{if("number"==typeof t)e+=t;else for(;n=t(r.charCodeAt(e));)e+=n;return r.slice(l,e)},a=(r=0,t,n,a,o,i)=>{for(;(n=s())&&(o=(i=c[n])&&i(a,r)||!a&&c[0]());)a=o;return t&&(n==t?e++:l()),a},s=t=>{for(;(t=r.charCodeAt(e))<=32;)e++;return t},o=e=>e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||36==e||95==e||e>=192&&215!=e&&247!=e,c=[e=>n(o)];t.set=(t,l=32,n,a=t.charCodeAt(0),s=t.length,i=c[a],f=t.toUpperCase()!==t)=>c[a]=(a,c,p=e)=>c<l&&(s<2||r.substr(e,s)==t)&&(!f||!o(r.charCodeAt(e+s)))&&(e+=s,n(a,c))||(e=p,i&&i(a,c));const i=e=>Array.isArray(e)?f[e[0]](...e.slice(1)):r=>r?.[e];i.set=(e,r,t=f[e])=>f[e]=(...e)=>r(...e)||t&&t(...e);const f={},p=e=>(e=t(e),r=>(e.call?e:e=i(e))(r)),h=p.set=(e,r,l,n=r<0,s=l[0],o=l[1],f=!s&&l.length)=>(s||=f?f>1?(t,l)=>t&&(l=a(r-n))&&[e,t,l]:t=>!t&&(t=a(r-1))&&[e,t]:(t,l)=>t&&(l=a(r))&&(t[0]===e&&t[2]?(t.push(l),t):[e,t,l]),o||=f?f>1?(e,r)=>r&&(e=i(e),r=i(r),e.length||r.length?t=>l(e(t),r(t)):(e=l(e(),r()),()=>e)):(e,r)=>!r&&((e=i(e)).length?r=>l(e(r)):(e=l(e()),()=>e)):(...e)=>(e=e.map(i),r=>l(...e.map((e=>e(r))))),(r=n?-r:r)?t.set(e,r,s):c[e.charCodeAt(0)||1]=s,i.set(e,o)),d=e=>e?l():["",(e=+n((e=>46===e||e>=48&&e<=57||(69===e||101===e?2:0))))!=e?l():e],u=(e,r,t,l)=>[e,r,[t=>t?["++"===e?"-":"+",[e,t],["",1]]:[e,a(r-1)],l=(e,r)=>"("===e[0]?l(e[1]):"."===e[0]?(r=e[2],e=i(e[1]),l=>t(e(l),r)):"["===e[0]?([,e,r]=e,e=i(e),r=i(r),l=>t(e(l),r(l))):r=>t(r,e)]],m=["",,[,e=>()=>e],'"',,[e=>e?l():["",(n()+n((e=>e-34?1:0))+(n()||l("Bad string"))).slice(1,-1)]],".",,[e=>!e&&d()],...Array(10).fill(0).flatMap(((e,r)=>[""+r,0,[d]])),",",1,(...e)=>e[e.length-1],"||",4,(...e)=>{let r,t=0;for(;!r&&t<e.length;)r=e[t++];return r},"&&",5,(...e)=>{let r=0,t=!0;for(;t&&r<e.length;)t=e[r++];return t},"+",12,(e,r)=>e+r,"-",12,(e,r)=>e-r,"*",13,(e,r)=>e*r,"/",13,(e,r)=>e/r,"%",13,(e,r)=>e%r,"|",6,(e,r)=>e|r,"&",8,(e,r)=>e&r,"^",7,(e,r)=>e^r,"==",9,(e,r)=>e==r,"!=",9,(e,r)=>e!=r,">",10,(e,r)=>e>r,">=",10,(e,r)=>e>=r,"<",10,(e,r)=>e<r,"<=",10,(e,r)=>e<=r,">>",11,(e,r)=>e>>r,">>>",11,(e,r)=>e>>>r,"<<",11,(e,r)=>e<<r,"+",15,e=>+e,"-",15,e=>-e,"!",15,e=>!e,...u("++",15,((e,r)=>++e[r])),...u("--",15,((e,r)=>--e[r])),"[",18,[e=>e&&["[",e,a(0,93)||l()],(e,r)=>r&&(e=i(e),r=i(r),t=>e(t)[r(t)])],".",18,[(e,r)=>e&&(r=a(18))&&[".",e,r],(e,r)=>(e=i(e),r=r[0]?r:r[1],t=>e(t)[r])],"(",18,[e=>!e&&["(",a(0,41)||l()],i],"(",18,[e=>e&&["(",e,a(0,41)||""],(e,r,t,l)=>null!=r&&(l=""==r?()=>[]:","===r[0]?(r=r.slice(1).map(i),e=>r.map((r=>r(e)))):(r=i(r),e=>[r(e)]),"."===e[0]?(t=e[2],e=i(e[1]),r=>e(r)[t](...l(r))):"["===e[0]?(t=i(e[2]),e=i(e[1]),r=>e(r)[t(r)](...l(r))):(e=i(e),r=>e(r)(...l(r))))]];for(;m[2];)h(...m.splice(0,3));let A={n:"\n",r:"\r",t:"\t",b:"\b",f:"\f",v:"\v"},g=t=>(a,s,o="")=>{for(a&&l("Unexpected string"),n();(s=r.charCodeAt(e))-t;)92===s?(n(),s=n(),o+=A[s]||s):o+=n();return n(),["",o]},y=["===",9,(e,r)=>e===r,"!==",9,(e,r)=>e!==r,"~",15,e=>~e,"?",3,[(e,r,t)=>e&&(r=a(2,58))&&["?",e,r,a(3)],(e,r,t)=>(e=i(e),r=i(r),t=i(t),l=>e(l)?r(l):t(l))],"??",6,(e,r)=>e??r,"?.",18,[e=>e&&["?.",e],e=>(e=i(e),r=>e(r)||(()=>{}))],"?.",18,[(e,r)=>e&&!(r=a(18))?.map&&["?.",e,r],(e,r)=>r&&(e=i(e),t=>e(t)?.[r])],"in",10,(e,r)=>e in r,'"',,[g(34)],"'",,[g(39)],"/*",20,[(t,l)=>(n((t=>42!==t&&47!==r.charCodeAt(e+1))),n(2),t||a(l))],"//",20,[(e,r)=>(n((e=>e>=32)),e||a(r))],"null",20,[e=>e?l():["",null]],"true",20,[e=>e?l():["",!0]],"false",20,[e=>e?l():["",!1]],"undefined",20,[e=>e?l():["",void 0]],";",20,[e=>a()||[""]],"**",-14,(e,r)=>e**r,"[",20,[e=>!e&&["[",a(0,93)||""],(e,r)=>!r&&(e?","===e[0]?(e=e.slice(1).map(i),r=>e.map((e=>e(r)))):(e=i(e),r=>[e(r)]):()=>[])],"{",20,[e=>!e&&["{",a(0,125)||""],(e,r)=>e?","===e[0]?(e=e.slice(1).map(i),r=>Object.fromEntries(e.map((e=>e(r))))):":"===e[0]?(e=i(e),r=>Object.fromEntries([e(r)])):(r=i(e),t=>({[e]:r(t)})):e=>({})],":",1.1,[(e,r)=>[":",e,a(1.1)||l()],(e,r)=>(r=i(r),e=Array.isArray(e)?i(e):(e=>e).bind(0,e),t=>[e(t),r(t)])]];for(;y[2];)p.set(...y.splice(0,3));export{i as compile,p as default,t as parse};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "subscript",
3
- "version": "7.0.1",
3
+ "version": "7.0.2",
4
4
  "description": "Fast and tiny expression evaluator with common syntax microlanguage.",
5
5
  "main": "subscript.js",
6
6
  "module": "subscript.js",
package/parse.js CHANGED
@@ -4,7 +4,7 @@ const SPACE=32
4
4
  export let idx, cur,
5
5
 
6
6
  // no handling tagged literals since easily done on user side with cache, if needed
7
- parse = s => (idx=0, cur=s, s = expr(), !s || cur[idx] ? err() : s),
7
+ parse = s => (idx=0, cur=s, s = expr(), cur[idx] ? err() : s || ''),
8
8
 
9
9
  err = (msg='Bad syntax',c=cur[idx]) => { throw SyntaxError(msg + ' `' + c + '` at ' + idx) },
10
10
 
package/subscript.js CHANGED
@@ -5,7 +5,7 @@ const OPAREN=40, CPAREN=41, OBRACK=91, CBRACK=93, SPACE=32, DQUOTE=34, PERIOD=46
5
5
  PREC_SEQ=1, PREC_SOME=4, PREC_EVERY=5, PREC_OR=6, PREC_XOR=7, PREC_AND=8,
6
6
  PREC_EQ=9, PREC_COMP=10, PREC_SHIFT=11, PREC_SUM=12, PREC_MULT=13, PREC_UNARY=15, PREC_POSTFIX=16, PREC_CALL=18
7
7
 
8
- const subscript = s => (s=s.trim(), s ? (s=parse(s.trim()), ctx => (s.call?s:(s=compile(s)))(ctx)) : ()=>{}),
8
+ const subscript = s => (s=parse(s), ctx => (s.call?s:(s=compile(s)))(ctx)),
9
9
 
10
10
  // set any operator
11
11
  // right assoc is indicated by negative precedence (meaning go from right to left)
package/subscript.min.js CHANGED
@@ -1 +1 @@
1
- let t,e,r=r=>(t=0,e=r,!(r=s())||e[t]?l():r),l=(r="Bad syntax",l=e[t])=>{throw SyntaxError(r+" `"+l+"` at "+t)},a=(r=1,l=t,a)=>{if("number"==typeof r)t+=r;else for(;a=r(e.charCodeAt(t));)t+=a;return e.slice(l,t)},s=(e=0,r,a,s,o,c)=>{for(;(a=n())&&(o=(c=h[a])&&c(s,e)||!s&&h[0]());)s=o;return r&&(a==r?t++:l()),s},n=r=>{for(;(r=e.charCodeAt(t))<=32;)t++;return r},o=t=>t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||36==t||95==t||t>=192&&215!=t&&247!=t,h=[t=>a(o)];r.set=(r,l=32,a,s=r.charCodeAt(0),n=r.length,c=h[s],f=r.toUpperCase()!==r)=>h[s]=(s,h,i=t)=>h<l&&(n<2||e.substr(t,n)==r)&&(!f||!o(e.charCodeAt(t+n)))&&(t+=n,a(s,h))||(t=i,c&&c(s,h));const c=t=>Array.isArray(t)?f[t[0]](...t.slice(1)):e=>e[t];c.set=(t,e,r=f[t])=>f[t]=(...t)=>e(...t)||r&&r(...t);const f={},i=t=>(t=t.trim())?(t=r(t.trim()),e=>(t.call?t:t=c(t))(e)):()=>{},p=i.set=(t,e,l,a=e<0,n=l[0],o=l[1],f=!n&&l.length)=>(n||=f?f>1?(r,l)=>r&&(l=s(e-a))&&[t,r,l]:r=>!r&&(r=s(e-1))&&[t,r]:(r,l)=>r&&(l=s(e))&&(r[0]===t&&r[2]?(r.push(l),r):[t,r,l]),o||=f?f>1?(t,e)=>e&&(t=c(t),e=c(e),t.length||e.length?r=>l(t(r),e(r)):(t=l(t(),e()),()=>t)):(t,e)=>!e&&((t=c(t)).length?e=>l(t(e)):(t=l(t()),()=>t)):(...t)=>(t=t.map(c),e=>l(...t.map((t=>t(e))))),(e=a?-e:e)?r.set(t,e,n):h[t.charCodeAt(0)||1]=n,c.set(t,o)),u=t=>t?l():["",(t=+a((t=>46===t||t>=48&&t<=57||(69===t||101===t?2:0))))!=t?l():t],g=(t,e,r,l)=>[t,e,[r=>r?["++"===t?"-":"+",[t,r],["",1]]:[t,s(e-1)],l=(t,e)=>"("===t[0]?l(t[1]):"."===t[0]?(e=t[2],t=c(t[1]),l=>r(t(l),e)):"["===t[0]?([,t,e]=t,t=c(t),e=c(e),l=>r(t(l),e(l))):e=>r(e,t)]],d=["",,[,t=>()=>t],'"',,[t=>t?l():["",(a()+a((t=>t-34?1:0))+(a()||l("Bad string"))).slice(1,-1)]],".",,[t=>!t&&u()],...Array(10).fill(0).flatMap(((t,e)=>[""+e,0,[u]])),",",1,(...t)=>t[t.length-1],"||",4,(...t)=>{let e,r=0;for(;!e&&r<t.length;)e=t[r++];return e},"&&",5,(...t)=>{let e=0,r=!0;for(;r&&e<t.length;)r=t[e++];return r},"+",12,(t,e)=>t+e,"-",12,(t,e)=>t-e,"*",13,(t,e)=>t*e,"/",13,(t,e)=>t/e,"%",13,(t,e)=>t%e,"|",6,(t,e)=>t|e,"&",8,(t,e)=>t&e,"^",7,(t,e)=>t^e,"==",9,(t,e)=>t==e,"!=",9,(t,e)=>t!=e,">",10,(t,e)=>t>e,">=",10,(t,e)=>t>=e,"<",10,(t,e)=>t<e,"<=",10,(t,e)=>t<=e,">>",11,(t,e)=>t>>e,">>>",11,(t,e)=>t>>>e,"<<",11,(t,e)=>t<<e,"+",15,t=>+t,"-",15,t=>-t,"!",15,t=>!t,...g("++",15,((t,e)=>++t[e])),...g("--",15,((t,e)=>--t[e])),"[",18,[t=>t&&["[",t,s(0,93)||l()],(t,e)=>e&&(t=c(t),e=c(e),r=>t(r)[e(r)])],".",18,[(t,e)=>t&&(e=s(18))&&[".",t,e],(t,e)=>(t=c(t),e=e[0]?e:e[1],r=>t(r)[e])],"(",18,[t=>!t&&["(",s(0,41)||l()],c],"(",18,[t=>t&&["(",t,s(0,41)||""],(t,e,r,l)=>null!=e&&(l=""==e?()=>[]:","===e[0]?(e=e.slice(1).map(c),t=>e.map((e=>e(t)))):(e=c(e),t=>[e(t)]),"."===t[0]?(r=t[2],t=c(t[1]),e=>t(e)[r](...l(e))):"["===t[0]?(r=c(t[2]),t=c(t[1]),e=>t(e)[r(e)](...l(e))):(t=c(t),e=>t(e)(...l(e))))]];for(;d[2];)p(...d.splice(0,3));export{c as compile,i as default,r as parse};
1
+ let e,t,r=r=>(e=0,t=r,r=s(),t[e]?l():r||""),l=(r="Bad syntax",l=t[e])=>{throw SyntaxError(r+" `"+l+"` at "+e)},a=(r=1,l=e,a)=>{if("number"==typeof r)e+=r;else for(;a=r(t.charCodeAt(e));)e+=a;return t.slice(l,e)},s=(t=0,r,a,s,o,c)=>{for(;(a=n())&&(o=(c=h[a])&&c(s,t)||!s&&h[0]());)s=o;return r&&(a==r?e++:l()),s},n=r=>{for(;(r=t.charCodeAt(e))<=32;)e++;return r},o=e=>e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||36==e||95==e||e>=192&&215!=e&&247!=e,h=[e=>a(o)];r.set=(r,l=32,a,s=r.charCodeAt(0),n=r.length,c=h[s],f=r.toUpperCase()!==r)=>h[s]=(s,h,p=e)=>h<l&&(n<2||t.substr(e,n)==r)&&(!f||!o(t.charCodeAt(e+n)))&&(e+=n,a(s,h))||(e=p,c&&c(s,h));const c=e=>Array.isArray(e)?f[e[0]](...e.slice(1)):t=>t?.[e];c.set=(e,t,r=f[e])=>f[e]=(...e)=>t(...e)||r&&r(...e);const f={},p=e=>(e=r(e),t=>(e.call?e:e=c(e))(t)),u=p.set=(e,t,l,a=t<0,n=l[0],o=l[1],f=!n&&l.length)=>(n||=f?f>1?(r,l)=>r&&(l=s(t-a))&&[e,r,l]:r=>!r&&(r=s(t-1))&&[e,r]:(r,l)=>r&&(l=s(t))&&(r[0]===e&&r[2]?(r.push(l),r):[e,r,l]),o||=f?f>1?(e,t)=>t&&(e=c(e),t=c(t),e.length||t.length?r=>l(e(r),t(r)):(e=l(e(),t()),()=>e)):(e,t)=>!t&&((e=c(e)).length?t=>l(e(t)):(e=l(e()),()=>e)):(...e)=>(e=e.map(c),t=>l(...e.map((e=>e(t))))),(t=a?-t:t)?r.set(e,t,n):h[e.charCodeAt(0)||1]=n,c.set(e,o)),g=e=>e?l():["",(e=+a((e=>46===e||e>=48&&e<=57||(69===e||101===e?2:0))))!=e?l():e],i=(e,t,r,l)=>[e,t,[r=>r?["++"===e?"-":"+",[e,r],["",1]]:[e,s(t-1)],l=(e,t)=>"("===e[0]?l(e[1]):"."===e[0]?(t=e[2],e=c(e[1]),l=>r(e(l),t)):"["===e[0]?([,e,t]=e,e=c(e),t=c(t),l=>r(e(l),t(l))):t=>r(t,e)]],d=["",,[,e=>()=>e],'"',,[e=>e?l():["",(a()+a((e=>e-34?1:0))+(a()||l("Bad string"))).slice(1,-1)]],".",,[e=>!e&&g()],...Array(10).fill(0).flatMap(((e,t)=>[""+t,0,[g]])),",",1,(...e)=>e[e.length-1],"||",4,(...e)=>{let t,r=0;for(;!t&&r<e.length;)t=e[r++];return t},"&&",5,(...e)=>{let t=0,r=!0;for(;r&&t<e.length;)r=e[t++];return r},"+",12,(e,t)=>e+t,"-",12,(e,t)=>e-t,"*",13,(e,t)=>e*t,"/",13,(e,t)=>e/t,"%",13,(e,t)=>e%t,"|",6,(e,t)=>e|t,"&",8,(e,t)=>e&t,"^",7,(e,t)=>e^t,"==",9,(e,t)=>e==t,"!=",9,(e,t)=>e!=t,">",10,(e,t)=>e>t,">=",10,(e,t)=>e>=t,"<",10,(e,t)=>e<t,"<=",10,(e,t)=>e<=t,">>",11,(e,t)=>e>>t,">>>",11,(e,t)=>e>>>t,"<<",11,(e,t)=>e<<t,"+",15,e=>+e,"-",15,e=>-e,"!",15,e=>!e,...i("++",15,((e,t)=>++e[t])),...i("--",15,((e,t)=>--e[t])),"[",18,[e=>e&&["[",e,s(0,93)||l()],(e,t)=>t&&(e=c(e),t=c(t),r=>e(r)[t(r)])],".",18,[(e,t)=>e&&(t=s(18))&&[".",e,t],(e,t)=>(e=c(e),t=t[0]?t:t[1],r=>e(r)[t])],"(",18,[e=>!e&&["(",s(0,41)||l()],c],"(",18,[e=>e&&["(",e,s(0,41)||""],(e,t,r,l)=>null!=t&&(l=""==t?()=>[]:","===t[0]?(t=t.slice(1).map(c),e=>t.map((t=>t(e)))):(t=c(t),e=>[t(e)]),"."===e[0]?(r=e[2],e=c(e[1]),t=>e(t)[r](...l(t))):"["===e[0]?(r=c(e[2]),e=c(e[1]),t=>e(t)[r(t)](...l(t))):(e=c(e),t=>e(t)(...l(t))))]];for(;d[2];)u(...d.splice(0,3));export{c as compile,p as default,r as parse};