earlgrey
Version:
Programming language compiling to JavaScript, featuring macros, dynamic typing annotations and pattern matching.
5 lines (2 loc) • 11.8 kB
JavaScript
'use strict';require('earlgrey-runtime/6');let $targ$1;let $targ$0;let $0$0;let partial_pattern$0;let make_assigner$0;let overridable$0;$0$0=require("./helpers");partial_pattern$0=getProperty($0$0,"partial_pattern","./helpers");make_assigner$0=getProperty($0$0,"make_assigner","./helpers");overridable$0=getProperty($0$0,"overridable","./helpers");if((typeof(module)==="undefined")){$targ$1=undefined;(global["module"]=$targ$1);(void 0);}$targ$0=(function(mac$0){let m$0;let acc$0;let temp$0;let defns$0;let t0$2;let t0$5;let t1$3;let t0$7;let t1$5;let t0$9;let t1$7;let t0$11;let t1$9;let t0$13;let t1$11;let t0$16;let t0$19;let t1$14;let t0$21;let $targ$2;let is_mac$0;let $targ$3;let minus_mac$0;let $targ$4;let append_mac$0;let $targ$5;let range_mac$0;let $targ$6;let xrange_mac$0;let $targ$7;let floor_mac$0;let $targ$8;let times_mac$0;let $targ$9;let exp_mac$0;let $targ$10;let shift_mac$0;let exports$0;exports$0=({});defns$0=({"===":partial_pattern$0("==="),"!==":partial_pattern$0("!=="),"in":partial_pattern$0("__in__"),"==":partial_pattern$0("equal"),"!=":partial_pattern$0("nequal"),"<=":partial_pattern$0("<="),">=":partial_pattern$0(">="),"<":partial_pattern$0("<"),">":partial_pattern$0(">"),"+=":make_assigner$0("+"),"-=":make_assigner$0("-"),"*=":make_assigner$0("*"),"/=":make_assigner$0("/"),"<<=":make_assigner$0("<<"),">>=":make_assigner$0(">>"),">>>=":make_assigner$0(">>>"),"++=":make_assigner$0("++"),"?=":make_assigner$0("match"),"or=":make_assigner$0("or"),"and=":make_assigner$0("and"),"each=":make_assigner$0("each")});acc$0=[];temp$0=null;m$0=null;$1:for(m$0 of items(defns$0)){let k$0;let v$0;let t0$0;let t1$0;t0$0=m$0;if((Array.isArray(t0$0)&&((t1$0=t0$0.length),(t1$0===2)))){k$0=t0$0[0];v$0=t0$0[1];temp$0=mac$0(k$0)(v$0);acc$0.push(temp$0);}else{___match_error(m$0);}}$targ$2=(function(ph$0$0,temp$1$0,form$0,temp$2$0){let t0$1;let t1$1;let x$1;let x$0;let y$0;t0$1=temp$2$0;if((Array.isArray(t0$1)&&((t1$1=t0$1.length),((t1$1===3)&&(t0$1[0]==="data"))))){x$0=t0$1[1];y$0=t0$1[2];}else{___match_error(temp$2$0);}if(((x$1=ph$0$0),((x$1 instanceof Array)&&(x$1[0]==="pattern")))){return ["replace",x$0,y$0];}else{return ["send",["symbol","==="],["data",x$0,y$0]];}});t0$2=getProjector(mac$0("is"))($targ$2);if(t0$2[0]){is_mac$0=t0$2[1];}else{___match_error($targ$2,"mac{\"is\"}! is_mac{match, _, form, #data{x, y}}");}$targ$3=(function(context$0,temp$3$0,form$1,temp$4$0){let t0$3;let other$0;let n$0;let $$17741$0;let $$17742$0;let t0$4;let t1$2;let t2$0;let t3$0;let t4$0;let t5$0;let t6$0;let expr$0;let ph$1$0;t0$3=temp$4$0;expr$0=t0$3;ph$1$0=t0$3;t0$4=ph$1$0;t1$2=t0$4.length;if(((t1$2===3)&&((t0$4[0]==="data")&&((t2$0=t0$4[1]),(Array.isArray(t2$0)&&((t3$0=t2$0.length),((t3$0===1)&&((t2$0[0]==="void")&&((t4$0=t0$4[2]),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0===2)&&((t4$0[0]==="value")&&((t6$0=t4$0[1]),(typeof(t6$0)==="number"))))))))))))))){n$0=t6$0;return ["value",(-n$0)];}else{if(((t1$2===1)&&(t0$4[0]==="void"))){return ["variable","-"];}else{other$0=ph$1$0;return ["send",["variable","-"],expr$0];}}});t0$5=getProjector(overridable$0)($targ$3);if((t0$5[0]&&((t1$3=getProjector(mac$0("-"))(t0$5[1])),t1$3[0]))){minus_mac$0=t1$3[1];}else{___match_error($targ$3,"overridable! mac{\"-\"}! minus_mac{context, _, form, match expr}");}$targ$4=(function(context$1,temp$5$0,form$2,ph$2$0){let other$1;let x$4;let y$1;let x$3;let x$2;let $$17817$0;let $$17818$0;let $$17819$0;let $$17820$0;let t0$6;let t1$4;let t2$1;let t3$1;t0$6=ph$2$0;t1$4=t0$6.length;if((($$17819$0=(t1$4===3))&&(($$17820$0=(t0$6[0]==="data"))&&((t2$1=t0$6[1]),(Array.isArray(t2$1)&&((t3$1=t2$1.length),((t3$1===1)&&(t2$1[0]==="void")))))))){x$2=t0$6[2];return ["send",["variable","++"],["data",["void"],x$2]];}else{if(($$17820$0&&((x$3=t0$6[1]),(t2$1=t0$6[2]),(Array.isArray(t2$1)&&((t3$1=t2$1.length),((t3$1===1)&&(t2$1[0]==="void"))))))){return ["send",["variable","++"],["data",x$3,["void"]]];}else{if($$17820$0){x$4=t0$6[1];y$1=t0$6[2];return ["send",["send",x$4,["send",["symbol","."],["data",["void"],["symbol","concat"]]]],["data",y$1]];}else{if(((t1$4===1)&&(t0$6[0]==="void"))){return ["send",["symbol","->"],["data",["data",["symbol","x"],["symbol","y"]],["send",["send",["symbol","x"],["send",["symbol","."],["data",["void"],["symbol","concat"]]]],["data",["symbol","y"]]]]];}else{other$1=ph$2$0;return ["send",["symbol","___build_array"],["data",other$1]];}}}}});t0$7=getProjector(overridable$0)($targ$4);if((t0$7[0]&&((t1$5=getProjector(mac$0("++"))(t0$7[1])),t1$5[0]))){append_mac$0=t1$5[1];}else{___match_error($targ$4,"overridable! mac{\"++\"}! append_mac{context, _, form, match}");}$targ$5=(function(context$2,temp$6$0,form$3,ph$3$0){let x$7;let y$2;let x$6;let x$5;let $$17889$0;let $$17890$0;let $$17891$0;let $$17892$0;let t0$8;let t1$6;let t2$2;let t3$2;t0$8=ph$3$0;t1$6=t0$8.length;if((($$17891$0=(t1$6===3))&&(($$17892$0=(t0$8[0]==="data"))&&((t2$2=t0$8[1]),(Array.isArray(t2$2)&&((t3$2=t2$2.length),((t3$2===1)&&(t2$2[0]==="void")))))))){x$5=t0$8[2];return ["send",["symbol","range"],["data",["value",1],x$5]];}else{if(($$17892$0&&((x$6=t0$8[1]),(t2$2=t0$8[2]),(Array.isArray(t2$2)&&((t3$2=t2$2.length),((t3$2===1)&&(t2$2[0]==="void"))))))){return ["send",["symbol","range"],["data",x$6]];}else{if($$17892$0){x$7=t0$8[1];y$2=t0$8[2];return ["send",["symbol","range"],["data",x$7,y$2]];}else{if(((t1$6===1)&&(t0$8[0]==="void"))){return ["symbol","range"];}else{return ___match_error(ph$3$0,"#void{}");}}}}});t0$9=getProjector(overridable$0)($targ$5);if((t0$9[0]&&((t1$7=getProjector(mac$0(".."))(t0$9[1])),t1$7[0]))){range_mac$0=t1$7[1];}else{___match_error($targ$5,"overridable! mac{\"..\"}! range_mac{context, _, form, match}");}$targ$6=(function(context$3,temp$7$0,form$4,ph$4$0){let x$10;let y$3;let x$9;let x$8;let $$17960$0;let $$17961$0;let $$17962$0;let $$17963$0;let t0$10;let t1$8;let t2$3;let t3$3;t0$10=ph$4$0;t1$8=t0$10.length;if((($$17962$0=(t1$8===3))&&(($$17963$0=(t0$10[0]==="data"))&&((t2$3=t0$10[1]),(Array.isArray(t2$3)&&((t3$3=t2$3.length),((t3$3===1)&&(t2$3[0]==="void")))))))){x$8=t0$10[2];return ["send",["symbol","range"],["data",["value",0],["send",["symbol","-"],["data",x$8,["value",1]]]]];}else{if(($$17963$0&&((x$9=t0$10[1]),(t2$3=t0$10[2]),(Array.isArray(t2$3)&&((t3$3=t2$3.length),((t3$3===1)&&(t2$3[0]==="void"))))))){return ["send",["symbol","range"],["data",x$9]];}else{if($$17963$0){x$10=t0$10[1];y$3=t0$10[2];return ["send",["symbol","range"],["data",x$10,["send",["symbol","-"],["data",y$3,["value",1]]]]];}else{return ___match_error(ph$4$0,"#data{x, y}");}}}});t0$11=getProjector(overridable$0)($targ$6);if((t0$11[0]&&((t1$9=getProjector(mac$0("..."))(t0$11[1])),t1$9[0]))){xrange_mac$0=t1$9[1];}else{___match_error($targ$6,"overridable! mac{\"...\"}! xrange_mac{context, _, form, match}");}$targ$7=(function(context$4,temp$8$0,form$5,ph$5$0){let a$0;let b$0;let $$18027$0;let $$18028$0;let t0$12;let t1$10;t0$12=ph$5$0;t1$10=t0$12.length;if(((t1$10===1)&&(t0$12[0]==="void"))){return ["send",["symbol","->"],["data",["data",["symbol","a"],["symbol","b"]],["send",["send",["symbol","Math"],["send",["symbol","."],["data",["void"],["symbol","floor"]]]],["data",["send",["symbol","/"],["data",["symbol","a"],["symbol","b"]]]]]]];}else{if(((t1$10===3)&&(t0$12[0]==="data"))){a$0=t0$12[1];b$0=t0$12[2];return ["send",["send",["symbol","Math"],["send",["symbol","."],["data",["void"],["symbol","floor"]]]],["data",["send",["symbol","/"],["data",a$0,b$0]]]];}else{return ___match_error(ph$5$0,"#data{a, b}");}}});t0$13=getProjector(overridable$0)($targ$7);if((t0$13[0]&&((t1$11=getProjector(mac$0("//"))(t0$13[1])),t1$11[0]))){floor_mac$0=t1$11[1];}else{___match_error($targ$7,"overridable! mac{\"//\"}! floor_mac{context, _, form, match}");}$targ$8=(function(context$5,temp$9$0,form$6,expr$1){let x$11;let x$12;let t0$15;let other$2;let val$0;let $$18073$0;let $$18074$0;let $$18075$0;let t0$14;let t1$12;let t2$4;let bridge$$18070$0;let t3$4;let t4$1;let m$1$0;m$1$0=[context$5,expr$1];if((($$18073$0=Array.isArray(m$1$0))&&((t0$14=m$1$0.length),(($$18075$0=(t0$14===2))&&(((x$11=m$1$0[0]),((x$11 instanceof Array)&&(x$11[0]==="pattern")))&&((t1$12=m$1$0[1]),(Array.isArray(t1$12)&&((t2$4=t1$12.length),((t2$4===1)&&(t1$12[0]==="void")))))))))){return ["dynsplice",["ignore"]];}else{if(($$18075$0&&((bridge$$18070$0=m$1$0[0]),((((x$12=bridge$$18070$0),((x$12 instanceof Array)&&(x$12[0]==="pattern")))||(Array.isArray(bridge$$18070$0)&&((t0$15=bridge$$18070$0.length),((t0$15===2)&&((bridge$$18070$0[0]==="expr")&&(bridge$$18070$0[1]==="data"))))))&&((t1$12=m$1$0[1]),(Array.isArray(t1$12)&&((t2$4=t1$12.length),((t2$4===3)&&((t1$12[0]==="data")&&((t3$4=t1$12[1]),(Array.isArray(t3$4)&&((t4$1=t3$4.length),((t4$1===1)&&(t3$4[0]==="void")))))))))))))){val$0=t1$12[2];return ["dynsplice",val$0];}else{if(($$18075$0&&(m$1$0[0],(t1$12=m$1$0[1]),(Array.isArray(t1$12)&&((t2$4=t1$12.length),((t2$4===1)&&(t1$12[0]==="void"))))))){return ["variable","*"];}else{other$2=m$1$0;return ["send",["variable","*"],expr$1];}}}});t0$16=getProjector(mac$0("*"))($targ$8);if(t0$16[0]){times_mac$0=t0$16[1];}else{___match_error($targ$8,"mac{\"*\"}! times_mac{context, _, form, expr}");}$targ$9=(function(context$6,temp$10$0,form$7,expr$2){let x$13;let x$14;let t0$18;let a$1;let b$1;let val$1;let $$18180$0;let $$18181$0;let $$18182$0;let $$18183$0;let $$18184$0;let $$18185$0;let $$18186$0;let t0$17;let t1$13;let t2$5;let bridge$$18177$0;let t3$5;let t4$2;let m$2$0;m$2$0=[context$6,expr$2];if((($$18180$0=Array.isArray(m$2$0))&&((t0$17=m$2$0.length),(($$18182$0=(t0$17===2))&&(((x$13=m$2$0[0]),((x$13 instanceof Array)&&(x$13[0]==="pattern")))&&((t1$13=m$2$0[1]),(Array.isArray(t1$13)&&((t2$5=t1$13.length),((t2$5===1)&&(t1$13[0]==="void")))))))))){return ["objsplice",["ignore"]];}else{if(($$18182$0&&((bridge$$18177$0=m$2$0[0]),((((x$14=bridge$$18177$0),((x$14 instanceof Array)&&(x$14[0]==="pattern")))||(Array.isArray(bridge$$18177$0)&&((t0$18=bridge$$18177$0.length),((t0$18===2)&&((bridge$$18177$0[0]==="expr")&&(bridge$$18177$0[1]==="data"))))))&&((t1$13=m$2$0[1]),(Array.isArray(t1$13)&&((t2$5=t1$13.length),((t2$5===3)&&((t1$13[0]==="data")&&((t3$5=t1$13[1]),(Array.isArray(t3$5)&&((t4$2=t3$5.length),((t4$2===1)&&(t3$5[0]==="void")))))))))))))){val$1=t1$13[2];return ["objsplice",val$1];}else{if(($$18182$0&&(m$2$0[0],(t1$13=m$2$0[1]),(($$18185$0=Array.isArray(t1$13))&&((t2$5=t1$13.length),((t2$5===1)&&(t1$13[0]==="void"))))))){return ["send",["symbol","Math"],["send",["symbol","."],["data",["void"],["symbol","pow"]]]];}else{if(($$18185$0&&((t2$5===3)&&(t1$13[0]==="data")))){a$1=t1$13[1];b$1=t1$13[2];return ["send",["send",["symbol","Math"],["send",["symbol","."],["data",["void"],["symbol","pow"]]]],["data",a$1,b$1]];}else{return ___match_error(m$2$0,"{_, #data{a, b}}");}}}}});t0$19=getProjector(overridable$0)($targ$9);if((t0$19[0]&&((t1$14=getProjector(mac$0("**"))(t0$19[1])),t1$14[0]))){exp_mac$0=t1$14[1];}else{___match_error($targ$9,"overridable! mac{\"**\"}! exp_mac{context, _, form, expr}");}$targ$10=(function(ph$6$0,temp$11$0,form$8,expr$3){let x$15;let t0$20;let t1$15;let $targ$11;let variable$0;let result$0;if(((x$15=ph$6$0),((x$15 instanceof Array)&&(x$15[0]==="pattern")))){$targ$11=expr$3;t0$20=$targ$11;if((Array.isArray(t0$20)&&((t1$15=t0$20.length),((t1$15===3)&&(t0$20[0]==="data"))))){variable$0=t0$20[1];result$0=t0$20[2];}else{___match_error($targ$11,"#data{variable, result}");}[variable$0,result$0];return ["project",["send",["symbol","->"],["data",["data",variable$0],["data",["symbol","true"],result$0]]],variable$0];}else{return ["send",["variable",">>"],expr$3];}});t0$21=getProjector(mac$0(">>"))($targ$10);if(t0$21[0]){shift_mac$0=t0$21[1];}else{___match_error($targ$10,"mac{\">>\"}! shift_mac{match, _, form, expr}");}return exports$0;});(module["exports"]=$targ$0);(void 0);
//# sourceMappingURL=operators.js.map