earlgrey
Version:
Programming language compiling to JavaScript, featuring macros, dynamic typing annotations and pattern matching.
5 lines (2 loc) • 7.46 kB
JavaScript
'use strict';require('earlgrey-runtime/6');let f$2;let f$3;let f$4;let f$5;let f$6;let f$7;let f$8;let $targ$4;let $targ$5;let $targ$6;let $targ$7;let $targ$8;let $targ$9;let $targ$10;let $targ$11;let $targ$12;let $targ$13;let $targ$14;let $targ$15;let $targ$16;let $targ$17;let GenSym$0;let gensym$0;let identity$0;let binsearch$0;let classify$0;let classify_contiguous$0;let partition$0;let construct$0;let mkset$0;let Body$0;let camelCase$0;let invCamelCase$0;let mac1$0;let __chk_ncache$0;let __chk_scache$0;let checker_db$0;GenSym$0=(function GenSym(prefix$0){let id$0;id$0=0;return (function(){let r$0;let pfx$0;let t0$0;let m$0$0;m$0$0=arguments;t0$0=m$0$0.length;if(((t0$0>=0)&&(t0$0<=1))){if((0>=t0$0)){pfx$0="";}else{pfx$0=m$0$0[0];}r$0=((pfx$0+prefix$0)+[true,String(id$0)][1]);(id$0++);return r$0;}else{return ___match_error(m$0$0,"{pfx = \"\"}");}});});gensym$0=GenSym$0("$$");identity$0=(function identity(x$0){return x$0;});binsearch$0=(function binsearch(xs$0,x$1){let lo$0;let hi$0;lo$0=0;hi$0=(xs$0.length-1);$0:while((lo$0<=hi$0)){let m$1$0;let mid$0;let v$0;mid$0=(lo$0+((hi$0-lo$0)>>1));v$0=send(xs$0,mid$0);m$1$0=send(xs$0,mid$0);if((m$1$0<x$1)){lo$0=(mid$0+1);lo$0;}else{if((m$1$0>x$1)){hi$0=(mid$0-1);hi$0;}else{return (mid$0+1);}}}return lo$0;});classify$0=(function classify(){let m$3;let results$0;let xs$1;let classes$0;let t0$1;let m$2$0;m$2$0=arguments;t0$1=m$2$0.length;if((t0$1>=1)){classes$0=Array.prototype.slice.call(m$2$0,0,-1);xs$1=m$2$0[(t0$1-1)];results$0=({"rest":[]});m$3=null;$1:for(m$3 of classes$0){let $targ$0;let cls$0;cls$0=m$3;$targ$0=[];(results$0[cls$0]=$targ$0);(void 0);}$2:while(xs$1.length){let x$2;let other$0;let cls$1;let x$3;let newxs$0;let t0$2;let m$4$0;m$4$0=xs$1.shift();if((Array.isArray(m$4$0)&&((t0$2=m$4$0.length),((t0$2>=1)&&(m$4$0[0]==="splice"))))){newxs$0=Array.prototype.slice.call(m$4$0,1);xs$1=newxs$0.concat(xs$1);xs$1;}else{if(((x$2=m$4$0),((x$2 instanceof Array)&&(x$2[0]==="ignore")))){null;}else{if((Array.isArray(m$4$0)&&((t0$2=m$4$0.length),((t0$2===2)&&((cls$1=m$4$0[0]),(x$3=m$4$0[1]),send(results$0,cls$1)))))){send(results$0,cls$1).push(x$3);}else{other$0=m$4$0;results$0.rest.push(other$0);}}}}return results$0;}else{return ___match_error(m$2$0,"{*classes, var xs}");}});classify_contiguous$0=(function classify_contiguous(xs$2,classifier$0){let m$5;let groups$0;let currcls$0;let curr$0;groups$0=[];currcls$0=null;curr$0=null;m$5=null;$3:for(m$5 of xs$2){let cls$2;let x$4;x$4=m$5;cls$2=classifier$0(x$4);if((cls$2===currcls$0)){curr$0.push(x$4);}else{if(curr$0){groups$0.push(curr$0);}curr$0=[cls$2,x$4];currcls$0=cls$2;currcls$0;}}if(curr$0){groups$0.push(curr$0);}return groups$0;});partition$0=(function partition(xs$3,predicate$0){let m$6;let t$0;let f$0;t$0=[];f$0=[];m$6=null;$4:for(m$6 of xs$3){let x$6;let x$5;x$5=m$6;if(predicate$0(x$5)){t$0.push(x$5);}else{x$6=m$6;f$0.push(x$6);}}return [t$0,f$0];});construct$0=(function construct(ph$0$0,fn$0,zero$0){let x$8;let rest$0;let x$7;let $$31815$0;let $$31816$0;let t0$3;let t1$0;t0$3=ph$0$0;t1$0=t0$3.length;if((t1$0===0)){return zero$0;}else{if((t1$0===1)){x$7=t0$3[0];return x$7;}else{if((t1$0>=1)){x$8=t0$3[0];rest$0=Array.prototype.slice.call(t0$3,1);return fn$0(x$8,construct$0(rest$0,fn$0,zero$0));}else{return ___match_error(ph$0$0,"{x, *rest}");}}}});mkset$0=(function mkset(xs$4){let m$7;let rval$0;rval$0=({});m$7=null;$5:for(m$7 of xs$4){let $targ$1;let x$9;x$9=m$7;$targ$1=true;(rval$0[x$9]=$targ$1);(void 0);}return rval$0;});Body$0=(function Body(temp$0$0){let t0$4;let xs$5;let t0$5;let t1$1;let x$10;let ph$1$0;t0$4=temp$0$0;x$10=t0$4;ph$1$0=t0$4;t0$5=ph$1$0;t1$1=t0$5.length;if(((t1$1>=1)&&(t0$5[0]==="multi"))){xs$5=Array.prototype.slice.call(t0$5,1);return xs$5;}else{return [x$10];}});camelCase$0=(function camelCase(x$11){if(equal(x$11.indexOf("-"),-1)){return x$11;}else{return x$11.replace(RegExp("-([A-Za-z0-9_])","g"),(function(temp$1$0,m$8){return m$8.toUpperCase();}));}});invCamelCase$0=(function invCamelCase(x$12){return x$12.replace(RegExp("([a-z0-9])([A-Z]+)","g"),(function(temp$2$0,m1$0,m2$0){return ((m1$0+"-")+m2$0.toLowerCase());}));});mac1$0=(function mac1(){let f$1;let name$0;let t0$6;let m$9$0;m$9$0=arguments;t0$6=m$9$0.length;if(((t0$6>=1)&&(t0$6<=2))){f$1=m$9$0[0];if((1>=t0$6)){name$0=null;}else{name$0=m$9$0[1];}return ["macro",(function(context$0,scope$0,form$0,ph$2$0){let expr$0;let $$31944$0;let t0$7;let t1$2;t0$7=ph$2$0;t1$2=t0$7.length;if(((t1$2===2)&&(t0$7[0]==="data"))){expr$0=t0$7[1];return f$1(expr$0);}else{if((Array.isArray(t0$7)&&((t1$2=t0$7.length),((t1$2===1)&&((t0$7[0]==="void")&&name$0))))){return ["variable",name$0];}else{return ___match_error(ph$2$0,"#void{} when name");}}})];}else{return ___match_error(m$9$0,"{f, name = null}");}});__chk_ncache$0=({});__chk_scache$0=({});checker_db$0=(function checker_db(ph$3$0){let v$1;let $targ$2;let v$2;let $targ$3;let s$0;let n$0;let $$31988$0;let t0$8;if((ph$3$0===null)){return checker_db$0.null;}else{if((ph$3$0===(void 0))){return checker_db$0.undefined;}else{if((ph$3$0===true)){return checker_db$0.true;}else{if((ph$3$0===false)){return checker_db$0.false;}else{t0$8=ph$3$0;if((typeof(t0$8)==="number")){n$0=t0$8;if(send(__chk_ncache$0,n$0)){return send(__chk_ncache$0,n$0);}else{v$1=mac1$0((function(x$13){return ["send",["symbol","==="],["data",x$13,["value",n$0]]];}));$targ$2=v$1;(__chk_ncache$0[n$0]=$targ$2);return v$1;}}else{if((typeof(t0$8)==="string")){s$0=t0$8;if(Object.prototype.hasOwnProperty.call(__chk_scache$0,s$0)){return send(__chk_scache$0,s$0);}else{v$2=mac1$0((function(x$14){return ["send",["symbol","==="],["data",x$14,["value",s$0]]];}));$targ$3=v$2;(__chk_scache$0[s$0]=$targ$3);return v$2;}}else{return ___match_error(ph$3$0,"String? s");}}}}}}});__amp____colon__(checker_db$0,({"String":((f$2=(function f(x$15){return ["send",["symbol","==="],["data",["send",["symbol","typeof"],["data",x$15]],["value","string"]]];})),mac1$0(f$2,"String")),"Number":((f$3=(function f(x$16){return ["send",["symbol","==="],["data",["send",["symbol","typeof"],["data",x$16]],["value","number"]]];})),mac1$0(f$3,"Number")),"Array":((f$4=(function f(x$17){return ["send",["send",["symbol","Array"],["send",["symbol","."],["data",["void"],["symbol","isArray"]]]],["data",x$17]];})),mac1$0(f$4,"Array")),"true":((f$5=(function f(x$18){return x$18;})),mac1$0(f$5,"true")),"false":((f$6=(function f(x$19){return ["send",["symbol","not"],["data",["void"],x$19]];})),mac1$0(f$6,"false")),"null":((f$7=(function f(x$20){return ["send",["symbol","==="],["data",x$20,["value",null]]];})),mac1$0(f$7,"null")),"undefined":((f$8=(function f(x$21){return ["send",["symbol","==="],["data",x$21,["value",undefined]]];})),mac1$0(f$8,"undefined"))}));$targ$4=GenSym$0;(exports["GenSym"]=$targ$4);$targ$5=gensym$0;(exports["gensym"]=$targ$5);$targ$6=identity$0;(exports["identity"]=$targ$6);$targ$7=binsearch$0;(exports["binsearch"]=$targ$7);$targ$8=classify$0;(exports["classify"]=$targ$8);$targ$9=classify_contiguous$0;(exports["classify_contiguous"]=$targ$9);$targ$10=partition$0;(exports["partition"]=$targ$10);$targ$11=construct$0;(exports["construct"]=$targ$11);$targ$12=mkset$0;(exports["mkset"]=$targ$12);$targ$13=Body$0;(exports["Body"]=$targ$13);$targ$14=camelCase$0;(exports["camelCase"]=$targ$14);$targ$15=invCamelCase$0;(exports["invCamelCase"]=$targ$15);$targ$16=mac1$0;(exports["mac1"]=$targ$16);$targ$17=checker_db$0;(exports["checker_db"]=$targ$17);(void 0);
//# sourceMappingURL=util.js.map