subscript 8.2.1 → 8.2.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
@@ -145,7 +145,7 @@ token('undefined', 20, a => a ? err() : [, undefined])
145
145
  token('NaN', 20, a => a ? err() : [, NaN])
146
146
  ```
147
147
 
148
- See [`./feature/*`](./feature) for examples.
148
+ See [`./feature/*`](./feature) or [`./justin.js`](./justin.js) for examples.
149
149
 
150
150
 
151
151
  <!--
package/justin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // no-keywords js, just in https://github.com/endojs/Jessie/issues/66
2
2
  import { err, token, binary } from './src/parse.js'
3
- import compile, { operator } from './src/compile.js'
3
+ import compile, { operator, prop } from './src/compile.js'
4
4
 
5
5
  import subscript from './subscript.js'
6
6
  import './feature/comment.js'
package/justin.min.js CHANGED
@@ -1 +1 @@
1
- let r,e,t=t=>(r=0,e=t,t=s(),e[r]?a():t||""),a=(t="Bad syntax",a=e.slice(0,r).split("\n"),p=a.pop())=>{let s=e.slice(r-108,r).split("\n").pop(),o=e.slice(r,r+108).split("\n").shift();throw EvalError(`${t} at ${a.length}:${p.length} \`${r>=108?"…":""}${s}▶${o}\``,"font-weight: bold")},p=(t=1,a=r,p)=>{if("number"==typeof t)r+=t;else for(;p=t(e.charCodeAt(r));)r+=p;return e.slice(a,r)},s=(e=0,p,s,o,n,l)=>{for(;(s=t.space())&&(n=((l=i[s])&&l(o,e))??(!o&&t.id()));)o=n;return p&&(s==p?r++:a()),o},o=r=>r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||36==r||95==r||r>=192&&215!=r&&247!=r;t.id=()=>p(o),t.space=t=>{for(;(t=e.charCodeAt(r))<=32;)r++;return t};let i=[],n=(t,a=32,p,s=t.charCodeAt(0),n=t.length,l=i[s],c=t.toUpperCase()!==t)=>i[s]=(s,i,d=r)=>i<a&&(n<2||e.substr(r,n)==t)&&(!c||!o(e.charCodeAt(r+n)))&&(r+=n,p(s,i))||(r=d,l?.(s,i)),l=(r,e,t=!1)=>n(r,e,((a,p)=>a&&(p=s(e-(t?.5:0)))&&[r,a,p])),c=(r,e,t)=>n(r,e,(a=>t?a&&[r,a]:!a&&(a=s(e-.5))&&[r,a])),d=(r,e)=>{n(r,e,((t,a)=>(a=s(e),(!t||t[0]!==r)&&(t=[r,t]),t.push(a),t)))},f=(r,e)=>n(r[0],e,(e=>!e&&[r,s(0,r.charCodeAt(1))])),m=(r,e)=>n(r[0],e,(e=>e&&[r[0],e,s(0,r.charCodeAt(1))]));const h=r=>Array.isArray(r)?r[0]?u[r[0]](...r.slice(1)):()=>r[1]:h.id(r);h.id=r=>e=>e?.[r];const u={},A=(r,e,t=u[r])=>u[r]=(...r)=>e(...r)||t&&t(...r),y=(r,e,t,p,s)=>"()"===r[0]?y(r[1],e,t):"string"==typeof r?t=>e(t,r,t):"."===r[0]?(p=h(r[1]),s=r[2],r=>e(p(r),s,r)):"["===r[0]?(p=h(r[1]),s=h(r[2]),r=>e(p(r),s(r),r)):t?(r=h(r),t=>e([r(t)],0,t)):()=>a("Bad left value"),b=r=>r?a():[,(r=+p((r=>46===r||r>=48&&r<=57||(69===r||101===r?2:0))))!=r?a():r];i[46]=r=>!r&&b();for(let r=48;r<=57;r++)i[r]=b;const C={n:"\n",r:"\r",t:"\t",b:"\b",f:"\f",v:"\v"},g=t=>(s,o,i="")=>{for(s&&a("Unexpected string"),p();(o=e.charCodeAt(r))-t;)92===o?(p(),o=p(),i+=C[o]||o):i+=p();return p()||a("Bad string"),[,i]};i[34]=g(34),i[39]=g(39),m("()",17),A("(",((r,e,t)=>(t=e?","===e[0]?(e=e.slice(1).map((r=>r?h(r):err())),r=>e.map((e=>e(r)))):(e=h(e),r=>[e(r)]):()=>[],y(r,((r,e,a)=>r[e](...t(a))),!0)))),m("[]",17),A("[",((r,e)=>e?(r=h(r),e=h(e),t=>r(t)[e(t)]):err())),l(".",17),A(".",((r,e)=>(r=h(r),e=e[0]?e:e[1],t=>r(t)[e]))),f("()",17),A("()",(r=>(!r&&a("Empty ()"),h(r))));const v=(...r)=>(r=r.map(h),e=>r.map((r=>r(e))).pop());d(",",1),A(",",v),d(";",1),A(";",v),l("*",12),A("*",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)*e(t)))),l("/",12),A("/",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)/e(t)))),l("%",12),A("%",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)%e(t)))),l("*=",2,!0),A("*=",((r,e)=>(e=h(e),y(r,((r,t,a)=>r[t]*=e(a)))))),l("/=",2,!0),A("/=",((r,e)=>(e=h(e),y(r,((r,t,a)=>r[t]/=e(a)))))),l("%=",2,!0),A("%=",((r,e)=>(e=h(e),y(r,((r,t,a)=>r[t]%=e(a)))))),c("+",14),A("+",((r,e)=>!e&&(r=h(r),e=>+r(e)))),c("-",14),A("-",((r,e)=>!e&&(r=h(r),e=>-r(e)))),l("+",11),A("+",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)+e(t)))),l("-",11),A("-",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)-e(t)))),l("+=",2,!0),A("+=",((r,e)=>(e=h(e),y(r,((r,t,a)=>r[t]+=e(a)))))),l("-=",2,!0),A("-=",((r,e)=>(e=h(e),y(r,((r,t,a)=>r[t]-=e(a)))))),n("++",15,(r=>r?["++-",r]:["++",s(14)])),A("++",(r=>y(r,((r,e,t)=>++r[e])))),A("++-",(r=>y(r,((r,e,t)=>r[e]++)))),n("--",15,(r=>r?["--+",r]:["--",s(14)])),A("--",(r=>y(r,((r,e,t)=>--r[e])))),A("--+",(r=>y(r,((r,e,t)=>r[e]--)))),c("~",14),A("~",((r,e)=>!e&&(r=h(r),e=>~r(e)))),l("|",5),A("|",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)|e(t)))),l("&",7),A("&",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)&e(t)))),l("^",6),A("^",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)^e(t)))),l(">>",10),A(">>",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)>>e(t)))),l("<<",10),A("<<",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)<<e(t)))),l("==",8),A("==",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)==e(t)))),l("!=",8),A("!=",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)!=e(t)))),l(">",9),A(">",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)>e(t)))),l("<",9),A("<",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)<e(t)))),l(">=",9),A(">=",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)>=e(t)))),l("<=",9),A("<=",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)<=e(t)))),c("!",14),A("!",((r,e)=>!e&&(r=h(r),e=>!r(e)))),l("||",3),A("||",((r,e)=>(r=h(r),e=h(e),t=>r(t)||e(t)))),l("&&",4),A("&&",((r,e)=>(r=h(r),e=h(e),t=>r(t)&&e(t)))),l("=",2,!0),A("=",((r,e)=>(e=h(e),y(r,((r,t,a)=>r[t]=e(a))))));var $=r=>h(t(r));n("/*",20,((t,a)=>(p((t=>42!==t&&47!==e.charCodeAt(r+1))),p(2),t||s(a)||[]))),n("//",20,((r,e)=>(p((r=>r>=32)),r||s(e)||[""]))),l("**",13,!0),A("**",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)**e(t)))),n("?",2,((r,e,t)=>r&&(e=s(2,58))&&["?",r,e,s(3)])),A("?",((r,e,t)=>(r=h(r),e=h(e),t=h(t),a=>r(a)?e(a):t(a)))),n("true",20,(r=>r?err():[,!0])),n("false",20,(r=>r?err():[,!1])),f("[]",20),A("[]",((r,e)=>r?","===r[0]?(r=r.slice(1).map(h),e=>r.map((r=>r(e)))):(r=h(r),e=>[r(e)]):()=>[])),f("{}",20),A("{}",((r,e)=>r?","===r[0]?(r=r.slice(1).map(h),e=>Object.fromEntries(r.map((r=>r(e))))):":"===r[0]?(r=h(r),e=>Object.fromEntries([r(e)])):(e=h(r),t=>({[r]:e(t)})):()=>({}))),l(":",2,!0),A(":",((r,e)=>(e=h(e),r=Array.isArray(r)?h(r):(r=>r).bind(0,r),t=>[r(t),e(t)]))),l("=>",2,!0),A("=>",((r,e)=>(r=(r="()"===r[0]?r[1]:r)?r=","===r[0]?r.slice(1):[r]:[],e=h("{}"===e[0]?e[1]:e),(t=null)=>(t=Object.create(t),(...a)=>(r.map(((r,e)=>t[r]=a[e])),e(t)))))),l(""),n("?.",17,(r=>r&&["?.",r])),A("?.",(r=>(r=h(r),e=>r(e)||(()=>{})))),n("?.",17,((r,e)=>r&&!(e=s(17))?.map&&["?.",r,e])),A("?.",((r,e)=>e&&(r=h(r),t=>r(t)?.[e]))),A("(",((r,e,t,a,p,s)=>"?."===r[0]&&(r[2]||Array.isArray(r[1]))&&(a=e?","===e[0]?(e=e.slice(1).map(h),r=>e.map((e=>e(r)))):(e=h(e),r=>[e(r)]):()=>[],!r[2]&&(r=r[1]),p="["===r[0]?h(r[2]):()=>r[2],t=h(r[1]),r=>t(r)?.[p(r)]?.(...a(r))))),l("in",9),A("in",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)in e(t)))),l("===",8),l("!==",9),A("===",((r,e)=>(r=h(r),e=h(e),t=>r(t)===e(t)))),A("===",((r,e)=>(r=h(r),e=h(e),t=>r(t)!==e(t)))),l("??",3),A("??",((r,e)=>e&&(r=h(r),e=h(e),t=>r(t)??e(t)))),l("??=",2,!0),A("??=",((r,e)=>(e=h(e),prop(r,((r,t,a)=>r[t]??=e(a)))))),l("||=",2,!0),A("||=",((r,e)=>(e=h(e),prop(r,((r,t,a)=>r[t]||=e(a)))))),l("&&=",2,!0),A("&&=",((r,e)=>(e=h(e),prop(r,((r,t,a)=>r[t]&&=e(a)))))),n("undefined",20,(r=>r?a():[,void 0])),n("NaN",20,(r=>r?a():[,NaN])),n("null",20,(r=>r?a():[,null]));export{m as access,l as binary,h as compile,$ as default,f as group,i as lookup,d as nary,A as operator,t as parse,y as prop,n as token,c as unary};
1
+ let e,r,t=t=>(e=0,r=t,t=i(),r[e]?a():t||""),a=(t="Bad syntax",a=r.slice(0,e).split("\n"),s=a.pop())=>{let i=r.slice(e-108,e).split("\n").pop(),n=r.slice(e,e+108).split("\n").shift();throw EvalError(`${t} at ${a.length}:${s.length} \`${e>=108?"…":""}${i}▶${n}\``,"font-weight: bold")},s=(t=1,a=e,s)=>{if("number"==typeof t)e+=t;else for(;s=t(r.charCodeAt(e));)e+=s;return r.slice(a,e)},i=(r=0,s,i,n,o,p)=>{for(;(i=t.space())&&(o=((p=l[i])&&p(n,r))??(!n&&t.id()));)n=o;return s&&(i==s?e++:a()),n},n=e=>e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||36==e||95==e||e>=192&&215!=e&&247!=e;t.id=()=>s(n),t.space=t=>{for(;(t=r.charCodeAt(e))<=32;)e++;return t};let l=[],o=(t,a=32,s,i=t.charCodeAt(0),o=t.length,p=l[i],c=t.toUpperCase()!==t)=>l[i]=(i,l,d=e)=>l<a&&(o<2||r.substr(e,o)==t)&&(!c||!n(r.charCodeAt(e+o)))&&(e+=o,s(i,l))||(e=d,p?.(i,l)),p=(e,r,t=!1)=>o(e,r,((a,s)=>a&&(s=i(r-(t?.5:0)))&&[e,a,s])),c=(e,r,t)=>o(e,r,(a=>t?a&&[e,a]:!a&&(a=i(r-.5))&&[e,a])),d=(e,r)=>{o(e,r,((t,a)=>(a=i(r),(!t||t[0]!==e)&&(t=[e,t]),t.push(a),t)))},f=(e,r)=>o(e[0],r,(r=>!r&&[e,i(0,e.charCodeAt(1))])),m=(e,r)=>o(e[0],r,(r=>r&&[e[0],r,i(0,e.charCodeAt(1))]));const h=e=>Array.isArray(e)?e[0]?u[e[0]](...e.slice(1)):()=>e[1]:h.id(e);h.id=e=>r=>r?.[e];const u={},A=(e,r,t=u[e])=>u[e]=(...e)=>r(...e)||t&&t(...e),y=(e,r,t,s,i)=>"()"===e[0]?y(e[1],r,t):"string"==typeof e?t=>r(t,e,t):"."===e[0]?(s=h(e[1]),i=e[2],e=>r(s(e),i,e)):"["===e[0]?(s=h(e[1]),i=h(e[2]),e=>r(s(e),i(e),e)):t?(e=h(e),t=>r([e(t)],0,t)):()=>a("Bad left value"),b=e=>e?a():[,(e=+s((e=>46===e||e>=48&&e<=57||(69===e||101===e?2:0))))!=e?a():e];l[46]=e=>!e&&b();for(let e=48;e<=57;e++)l[e]=b;const C={n:"\n",r:"\r",t:"\t",b:"\b",f:"\f",v:"\v"},g=t=>(i,n,l="")=>{for(i&&a("Unexpected string"),s();(n=r.charCodeAt(e))-t;)92===n?(s(),n=s(),l+=C[n]||n):l+=s();return s()||a("Bad string"),[,l]};l[34]=g(34),l[39]=g(39),m("()",17),A("(",((e,r,t)=>(t=r?","===r[0]?(r=r.slice(1).map((e=>e?h(e):err())),e=>r.map((r=>r(e)))):(r=h(r),e=>[r(e)]):()=>[],y(e,((e,r,a)=>e[r](...t(a))),!0)))),m("[]",17),A("[",((e,r)=>r?(e=h(e),r=h(r),t=>e(t)[r(t)]):err())),p(".",17),A(".",((e,r)=>(e=h(e),r=r[0]?r:r[1],t=>e(t)[r]))),f("()",17),A("()",(e=>(!e&&a("Empty ()"),h(e))));const v=(...e)=>(e=e.map(h),r=>e.map((e=>e(r))).pop());d(",",1),A(",",v),d(";",1),A(";",v),p("*",12),A("*",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)*r(t)))),p("/",12),A("/",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)/r(t)))),p("%",12),A("%",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)%r(t)))),p("*=",2,!0),A("*=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]*=r(a)))))),p("/=",2,!0),A("/=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]/=r(a)))))),p("%=",2,!0),A("%=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]%=r(a)))))),c("+",14),A("+",((e,r)=>!r&&(e=h(e),r=>+e(r)))),c("-",14),A("-",((e,r)=>!r&&(e=h(e),r=>-e(r)))),p("+",11),A("+",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)+r(t)))),p("-",11),A("-",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)-r(t)))),p("+=",2,!0),A("+=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]+=r(a)))))),p("-=",2,!0),A("-=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]-=r(a)))))),o("++",15,(e=>e?["++-",e]:["++",i(14)])),A("++",(e=>y(e,((e,r,t)=>++e[r])))),A("++-",(e=>y(e,((e,r,t)=>e[r]++)))),o("--",15,(e=>e?["--+",e]:["--",i(14)])),A("--",(e=>y(e,((e,r,t)=>--e[r])))),A("--+",(e=>y(e,((e,r,t)=>e[r]--)))),c("~",14),A("~",((e,r)=>!r&&(e=h(e),r=>~e(r)))),p("|",5),A("|",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)|r(t)))),p("&",7),A("&",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)&r(t)))),p("^",6),A("^",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)^r(t)))),p(">>",10),A(">>",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)>>r(t)))),p("<<",10),A("<<",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)<<r(t)))),p("==",8),A("==",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)==r(t)))),p("!=",8),A("!=",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)!=r(t)))),p(">",9),A(">",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)>r(t)))),p("<",9),A("<",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)<r(t)))),p(">=",9),A(">=",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)>=r(t)))),p("<=",9),A("<=",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)<=r(t)))),c("!",14),A("!",((e,r)=>!r&&(e=h(e),r=>!e(r)))),p("||",3),A("||",((e,r)=>(e=h(e),r=h(r),t=>e(t)||r(t)))),p("&&",4),A("&&",((e,r)=>(e=h(e),r=h(r),t=>e(t)&&r(t)))),p("=",2,!0),A("=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]=r(a))))));var $=e=>h(t(e));o("/*",20,((t,a)=>(s((t=>42!==t&&47!==r.charCodeAt(e+1))),s(2),t||i(a)||[]))),o("//",20,((e,r)=>(s((e=>e>=32)),e||i(r)||[""]))),p("**",13,!0),A("**",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)**r(t)))),o("?",2,((e,r,t)=>e&&(r=i(2,58))&&["?",e,r,i(3)])),A("?",((e,r,t)=>(e=h(e),r=h(r),t=h(t),a=>e(a)?r(a):t(a)))),o("true",20,(e=>e?err():[,!0])),o("false",20,(e=>e?err():[,!1])),f("[]",20),A("[]",((e,r)=>e?","===e[0]?(e=e.slice(1).map(h),r=>e.map((e=>e(r)))):(e=h(e),r=>[e(r)]):()=>[])),f("{}",20),A("{}",((e,r)=>e?","===e[0]?(e=e.slice(1).map(h),r=>Object.fromEntries(e.map((e=>e(r))))):":"===e[0]?(e=h(e),r=>Object.fromEntries([e(r)])):(r=h(e),t=>({[e]:r(t)})):()=>({}))),p(":",2,!0),A(":",((e,r)=>(r=h(r),e=Array.isArray(e)?h(e):(e=>e).bind(0,e),t=>[e(t),r(t)]))),p("=>",2,!0),A("=>",((e,r)=>(e=(e="()"===e[0]?e[1]:e)?e=","===e[0]?e.slice(1):[e]:[],r=h("{}"===r[0]?r[1]:r),(t=null)=>(t=Object.create(t),(...a)=>(e.map(((e,r)=>t[e]=a[r])),r(t)))))),p(""),o("?.",17,(e=>e&&["?.",e])),A("?.",(e=>(e=h(e),r=>e(r)||(()=>{})))),o("?.",17,((e,r)=>e&&!(r=i(17))?.map&&["?.",e,r])),A("?.",((e,r)=>r&&(e=h(e),t=>e(t)?.[r]))),A("(",((e,r,t,a,s,i)=>"?."===e[0]&&(e[2]||Array.isArray(e[1]))&&(a=r?","===r[0]?(r=r.slice(1).map(h),e=>r.map((r=>r(e)))):(r=h(r),e=>[r(e)]):()=>[],!e[2]&&(e=e[1]),s="["===e[0]?h(e[2]):()=>e[2],t=h(e[1]),e=>t(e)?.[s(e)]?.(...a(e))))),p("in",9),A("in",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)in r(t)))),p("===",8),p("!==",9),A("===",((e,r)=>(e=h(e),r=h(r),t=>e(t)===r(t)))),A("===",((e,r)=>(e=h(e),r=h(r),t=>e(t)!==r(t)))),p("??",3),A("??",((e,r)=>r&&(e=h(e),r=h(r),t=>e(t)??r(t)))),p("??=",2,!0),A("??=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]??=r(a)))))),p("||=",2,!0),A("||=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]||=r(a)))))),p("&&=",2,!0),A("&&=",((e,r)=>(r=h(r),y(e,((e,t,a)=>e[t]&&=r(a)))))),o("undefined",20,(e=>e?a():[,void 0])),o("NaN",20,(e=>e?a():[,NaN])),o("null",20,(e=>e?a():[,null]));export{m as access,p as binary,h as compile,$ as default,f as group,l as lookup,d as nary,A as operator,t as parse,y as prop,o as token,c as unary};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "subscript",
3
- "version": "8.2.1",
3
+ "version": "8.2.2",
4
4
  "description": "Fast and tiny expression evaluator with minimal syntax.",
5
5
  "main": "subscript.js",
6
6
  "module": "subscript.js",