UNPKG

earlgrey

Version:

Programming language compiling to JavaScript, featuring macros, dynamic typing annotations and pattern matching.

4 lines (2 loc) 16.9 kB
'use strict';require('earlgrey-runtime/5');var $targ$1=void 0;var $targ$0=void 0;var $0$0=void 0;var expr_mac$0=void 0;var overridable$0=void 0;var build_loop$0=void 0;var match_error$0=void 0;var Body$0=void 0;var setup_label$0=void 0;var break_mac$0=void 0;var continue_mac$0=void 0;$0$0=require("./helpers");expr_mac$0=getProperty($0$0,"expr_mac","./helpers");overridable$0=getProperty($0$0,"overridable","./helpers");build_loop$0=getProperty($0$0,"build_loop","./helpers");match_error$0=getProperty($0$0,"match_error","./helpers");Body$0=getProperty($0$0,"Body","./helpers");setup_label$0=function setup_label(label$0,env$0,body$0){return["bind",__amp__(["symbol","break"],{"env":env$0}),["macro",break_mac$0(label$0)],["bind",__amp__(["symbol","continue"],{"env":env$0}),["macro",continue_mac$0(label$0)],["js_label",["value",label$0],body$0]]];};break_mac$0=function break_mac(default_label$0){return overridable$0(function(context$0,temp$0$0,form$0,temp$1$0){var t0$0=void 0;var v$1=void 0;var v$0=void 0;var $$12418$0=void 0;var $$12419$0=void 0;var $$12420$0=void 0;var t0$1=void 0;var t1$0=void 0;var expr$0=void 0;var ph$0$0=void 0;t0$0=temp$1$0;expr$0=t0$0;ph$0$0=t0$0;t0$1=ph$0$0;if(Array.isArray(t0$1)&&(t1$0=t0$1.length,t1$0===1&&t0$1[0]==="void"&&default_label$0)){return["js_break",["value",default_label$0]];}else{t1$0=t0$1.length;if(t1$0===1&&t0$1[0]==="void"){return["js_break"];}else{if(($$12420$0=t1$0===2)&&t0$1[0]==="value"){v$0=t0$1[1];return["js_break",expr$0];}else{if($$12420$0&&t0$1[0]==="symbol"){v$1=t0$1[1];return["js_break",["value",v$1]];}else{return ___match_error(ph$0$0,"#symbol{v}");}}}}});};continue_mac$0=function continue_mac(default_label$1){return overridable$0(function(context$1,temp$2$0,form$1,temp$3$0){var t0$2=void 0;var v$3=void 0;var v$2=void 0;var $$12473$0=void 0;var $$12474$0=void 0;var $$12475$0=void 0;var t0$3=void 0;var t1$1=void 0;var expr$1=void 0;var ph$1$0=void 0;t0$2=temp$3$0;expr$1=t0$2;ph$1$0=t0$2;t0$3=ph$1$0;if(Array.isArray(t0$3)&&(t1$1=t0$3.length,t1$1===1&&t0$3[0]==="void"&&default_label$1)){return["js_continue",["value",default_label$1]];}else{t1$1=t0$3.length;if(t1$1===1&&t0$3[0]==="void"){return["js_continue"];}else{if(($$12475$0=t1$1===2)&&t0$3[0]==="value"){v$2=t0$3[1];return["js_continue",expr$1];}else{if($$12475$0&&t0$3[0]==="symbol"){v$3=t0$3[1];return["js_continue",["value",v$3]];}else{return ___match_error(ph$1$0,"#symbol{v}");}}}}});};if(typeof module==="undefined"){$targ$1=undefined;global["module"]=$targ$1;void 0;}$targ$0=function $targ$0(mac$0){var m$0=void 0;var acc$0=void 0;var temp$4=void 0;var defns$0=void 0;var t0$10=void 0;var t1$6=void 0;var t0$17=void 0;var $targ$7=void 0;var accum$0=void 0;var $targ$8=void 0;var accum$1=void 0;var t0$24=void 0;var t0$30=void 0;var $targ$2=void 0;var while_mac$0=void 0;var $targ$3=void 0;var for_mac$0=void 0;var EachHandler$0=void 0;var $targ$4=void 0;var each_mac$0=void 0;var $targ$5=void 0;var each_gen_mac$0=void 0;var exports$0=void 0;exports$0={};defns$0={"break":break_mac$0(null),"continue":continue_mac$0(null)};acc$0=[];temp$4=null;m$0=null;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{$1:for(var _iterator=items(defns$0)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){m$0=_step.value;var k$0=void 0;var v$4=void 0;var t0$4=void 0;var t1$2=void 0;t0$4=m$0;if(Array.isArray(t0$4)&&(t1$2=t0$4.length,t1$2===2)){k$0=t0$4[0];v$4=t0$4[1];temp$4=mac$0(k$0)(v$4);acc$0.push(temp$4);}else{___match_error(m$0);}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}$targ$2=function $targ$2(info$0,form$2,temp$5$0){var t0$5=void 0;var t0$7=void 0;var t1$4=void 0;var t2$0=void 0;var t3$0=void 0;var t4$0=void 0;var t5$0=void 0;var t6$0=void 0;var t7$0=void 0;var t8$0=void 0;var t0$8=void 0;var test$1=void 0;var body$2=void 0;var label$1=void 0;var bridge$$12584$0=void 0;var t0$6=void 0;var t1$3=void 0;var env$1=void 0;var ph$2$0=void 0;t0$5=temp$5$0;if(___hasprop(t0$5,"env")){env$1=t0$5.env;ph$2$0=t0$5;}else{___match_error(temp$5$0);}bridge$$12584$0=ph$2$0;if(Array.isArray(bridge$$12584$0)&&(t0$7=bridge$$12584$0.length,t0$7===3&&bridge$$12584$0[0]==="send"&&(t1$4=bridge$$12584$0[1],Array.isArray(t1$4)&&(t2$0=t1$4.length,t2$0===2&&t1$4[0]==="symbol"&&t1$4[1]==="."&&(t3$0=bridge$$12584$0[2],Array.isArray(t3$0)&&(t4$0=t3$0.length,t4$0===3&&t3$0[0]==="data"&&(t5$0=t3$0[1],Array.isArray(t5$0)&&(t6$0=t5$0.length,t6$0===1&&t5$0[0]==="void"&&(t7$0=t3$0[2],Array.isArray(t7$0)&&(t8$0=t7$0.length,t8$0===2&&t7$0[0]==="symbol"&&(label$1=t7$0[1],true))))))))))||Array.isArray(bridge$$12584$0)&&(t0$8=bridge$$12584$0.length,t0$8===2&&bridge$$12584$0[0]==="value"&&(label$1=bridge$$12584$0[1],true))){return["macro",function(context$2,temp$6$0,form$3,temp$7$0){var t0$9=void 0;var t1$5=void 0;var test$0=void 0;var body$1=void 0;t0$9=temp$7$0;if(Array.isArray(t0$9)&&(t1$5=t0$9.length,t1$5===3&&t0$9[0]==="data")){test$0=t0$9[1];body$1=t0$9[2];}else{___match_error(temp$7$0);}return setup_label$0(label$1,env$1,["js_while",test$0,body$1]);}];}else{t0$6=ph$2$0;t1$3=t0$6.length;if(t1$3===3&&t0$6[0]==="data"){test$1=t0$6[1];body$2=t0$6[2];return setup_label$0(info$0.gensym(),env$1,["js_while",test$1,body$2]);}else{return ___match_error(ph$2$0,"#data{test, body}");}}};t0$10=getProjector(expr_mac$0)($targ$2);if(t0$10[0]&&(t1$6=getProjector(mac$0("while"))(t0$10[1]),t1$6[0])){while_mac$0=t1$6[1];}else{___match_error($targ$2,"expr_mac! mac{\"while\"}! while_mac{info, form, match {=> env}}");}$targ$3=function $targ$3(context$3,info$1,form$4,temp$8$0){var t0$11=void 0;var t0$14=void 0;var t1$9=void 0;var t2$2=void 0;var t3$2=void 0;var t4$2=void 0;var t5$2=void 0;var t6$1=void 0;var t7$1=void 0;var t8$1=void 0;var t0$15=void 0;var spec$1=void 0;var body$5=void 0;var label$3=void 0;var setup_for$0=void 0;var bridge$$12706$0=void 0;var t0$12=void 0;var t1$7=void 0;var expr$2=void 0;var ph$3$0=void 0;t0$11=temp$8$0;expr$2=t0$11;ph$3$0=t0$11;setup_for$0=function setup_for(label$2,env$2,ph$4$0,body$3){var a$2=void 0;var b$2=void 0;var a$1=void 0;var b$1=void 0;var a$0=void 0;var b$0=void 0;var c$0=void 0;var $$12727$0=void 0;var $$12728$0=void 0;var $$12729$0=void 0;var $$12730$0=void 0;var $$12731$0=void 0;var $$12732$0=void 0;var $$12733$0=void 0;var $$12734$0=void 0;var $$12735$0=void 0;var t0$13=void 0;var t1$8=void 0;var t2$1=void 0;var t3$1=void 0;var t4$1=void 0;var t5$1=void 0;t0$13=ph$4$0;t1$8=t0$13.length;if(t1$8===4&&t0$13[0]==="multi"){a$0=t0$13[1];b$0=t0$13[2];c$0=t0$13[3];return["multi",a$0,setup_label$0(label$2,env$2,["js_for",["multi"],b$0,c$0,body$3])];}else{if(($$12729$0=t1$8===3)&&($$12730$0=t0$13[0]==="send")&&(t2$1=t0$13[1],($$12732$0=Array.isArray(t2$1))&&(t3$1=t2$1.length,($$12734$0=t3$1===2)&&($$12735$0=t2$1[0]==="symbol")&&t2$1[1]==="in"&&(t4$1=t0$13[2],Array.isArray(t4$1)&&(t5$1=t4$1.length,t5$1===3&&t4$1[0]==="data"))))){a$1=t4$1[1];b$1=t4$1[2];return["multi",["declare",a$1,["value",null]],setup_label$0(label$2,env$2,["js_for_in",a$1,b$1,body$3])];}else{if($$12735$0&&t2$1[1]==="of"&&(t4$1=t0$13[2],Array.isArray(t4$1)&&(t5$1=t4$1.length,t5$1===3&&t4$1[0]==="data"))){a$2=t4$1[1];b$2=t4$1[2];return["multi",["declare",a$2,["value",null]],setup_label$0(label$2,env$2,["js_for_of",a$2,b$2,body$3])];}else{return ___match_error(ph$4$0,"`^a of ^b`");}}}};bridge$$12706$0=ph$3$0;if(Array.isArray(bridge$$12706$0)&&(t0$14=bridge$$12706$0.length,t0$14===3&&bridge$$12706$0[0]==="send"&&(t1$9=bridge$$12706$0[1],Array.isArray(t1$9)&&(t2$2=t1$9.length,t2$2===2&&t1$9[0]==="symbol"&&t1$9[1]==="."&&(t3$2=bridge$$12706$0[2],Array.isArray(t3$2)&&(t4$2=t3$2.length,t4$2===3&&t3$2[0]==="data"&&(t5$2=t3$2[1],Array.isArray(t5$2)&&(t6$1=t5$2.length,t6$1===1&&t5$2[0]==="void"&&(t7$1=t3$2[2],Array.isArray(t7$1)&&(t8$1=t7$1.length,t8$1===2&&t7$1[0]==="symbol"&&(label$3=t7$1[1],true))))))))))||Array.isArray(bridge$$12706$0)&&(t0$15=bridge$$12706$0.length,t0$15===2&&bridge$$12706$0[0]==="value"&&(label$3=bridge$$12706$0[1],true))){return["macro",function(context$4,temp$9$0,form$5,temp$10$0){var t0$16=void 0;var t1$10=void 0;var spec$0=void 0;var body$4=void 0;t0$16=temp$10$0;if(Array.isArray(t0$16)&&(t1$10=t0$16.length,t1$10===3&&t0$16[0]==="data")){spec$0=t0$16[1];body$4=t0$16[2];}else{___match_error(temp$10$0);}return setup_for$0(label$3,expr$2.env,spec$0,body$4);}];}else{t0$12=ph$3$0;t1$7=t0$12.length;if(t1$7===3&&t0$12[0]==="data"){spec$1=t0$12[1];body$5=t0$12[2];return setup_for$0(info$1.gensym(),form$4.env,spec$1,body$5);}else{return ___match_error(ph$3$0,"#data{spec, body}");}}};t0$17=getProjector(mac$0("for"))($targ$3);if(t0$17[0]){for_mac$0=t0$17[1];}else{___match_error($targ$3,"mac{\"for\"}! for_mac{context, info, form, match expr}");}EachHandler$0=function EachHandler(){var $targ$6=void 0;var t0$18=void 0;var m$1$0=void 0;var __at___$0=void 0;if(!getChecker(EachHandler$0)(this)){__at___$0=Object.create(EachHandler$0.prototype);}else{__at___$0=this;}m$1$0=arguments;t0$18=m$1$0.length;if(t0$18>=2&&t0$18<=3){__at___$0["placeholder"]=m$1$0[0];__at___$0["loopvar"]=m$1$0[1];__at___$0["generator"]=2>=t0$18?false:m$1$0[2];$targ$6=2;__at___$0["wrapOrder"]=$targ$6;void 0;}else{___match_error(m$1$0,"{@placeholder, @loopvar, @generator = false}");}return __at___$0;};EachHandler$0.prototype["expand"]=function expand(info$2){var __at___$1=void 0;var self$0=void 0;__at___$1=this;self$0=this;return __at___$1.placeholder;};EachHandler$0.prototype["wrap"]=function wrap(expr$3,info$3,opt$0){var __at___$2=void 0;var self$1=void 0;__at___$2=this;self$1=this;if(__at___$2.generator){return["send",["symbol","each*"],["data",__at___$2.placeholder,["send",["symbol","->"],["data",__at___$2.loopvar,expr$3]]]];}else{return["send",["symbol","each"],["data",__at___$2.placeholder,["send",["symbol","->"],["data",__at___$2.loopvar,expr$3]]]];}};__amp____colon__(EachHandler$0,__amp____colon__(($targ$7="EachHandler",accum$0={},accum$0["::name"]=$targ$7,accum$0),($targ$8=true,accum$1={},accum$1["::egclass"]=$targ$8,accum$1)));$targ$4=function $targ$4(ph$5$0,temp$11$0,form$6,expr$4){var t0$19=void 0;var x$0=void 0;var t0$21=void 0;var t1$12=void 0;var ph$6=void 0;var lv$0=void 0;var $targ$9=void 0;var li$0=void 0;var body$6=void 0;var t0$22=void 0;var t1$13=void 0;var t0$23=void 0;var t1$14=void 0;var t2$3=void 0;var x$3=void 0;var other$1=void 0;var $targ$10=void 0;var li$1=void 0;var body$7=void 0;var $targ$11=void 0;var clauses$0=void 0;var ends_with_test$0=void 0;var _build_loop$0=void 0;var $$12967$0=void 0;var $$12968$0=void 0;var $$12969$0=void 0;var $$12970$0=void 0;var t0$20=void 0;var t1$11=void 0;var info$4=void 0;var env$3=void 0;t0$19=temp$11$0;info$4=t0$19;if(___hasprop(t0$19,"env")){env$3=t0$19.env;}else{___match_error(temp$11$0);}if(x$0=ph$5$0,x$0 instanceof Array&&x$0[0]==="pattern"){if(equal(expr$4,["void"])){expr$4=["data",["void"],["void"]];expr$4;}$targ$9=expr$4;t0$21=$targ$9;if(Array.isArray(t0$21)&&(t1$12=t0$21.length,t1$12===3&&t0$21[0]==="data")){li$0=t0$21[1];body$6=t0$21[2];}else{___match_error($targ$9,"#data{li, body}");}[li$0,body$6];if(equal(li$0,["void"])){ph$6=info$4.env.mark(["symbol",info$4.gensym("xs")]);}else{ph$6=li$0;}if(equal(body$6,["void"])){lv$0=info$4.env.mark(["symbol","match"]);}else{lv$0=body$6;}return["special",EachHandler$0(ph$6,lv$0)];}else{$targ$10=expr$4;t0$22=$targ$10;if(Array.isArray(t0$22)&&(t1$13=t0$22.length,t1$13===3&&t0$22[0]==="data")){li$1=t0$22[1];body$7=t0$22[2];}else{___match_error($targ$10,"#data{li, body}");}[li$1,body$7];$targ$11=body$7;t0$23=getProjector(Body$0)($targ$11);if(t0$23[0]&&(t1$14=t0$23[1],t2$3=t1$14.length,t2$3>=0)){clauses$0=Array.prototype.slice.call(t1$14,0);}else{___match_error($targ$11,"Body! {*clauses}");}ends_with_test$0=false;_build_loop$0=function _build_loop(wrap$0,pre$0,post$0){var accum$2=void 0;var accum$3=void 0;var opts$0=void 0;opts$0=__amp____colon__({"forof":true},__amp____colon__((accum$2={},accum$2["wrap_pattern"]=function wrap_pattern(x$1,toplevel$0){var x$2=void 0;var other$0=void 0;var m$2$0=void 0;m$2$0=x$1;if(x$2=m$2$0,x$2 instanceof Array&&x$2[0]==="test"){ends_with_test$0=toplevel$0;}else{other$0=m$2$0;ends_with_test$0=false;}return x$1;},accum$2),(accum$3={},accum$3["fallback"]=function fallback(target$0){if(ends_with_test$0){return["symbol","false"];}else{return match_error$0(target$0);}},accum$3)));return build_loop$0(info$4,env$3,form$6,li$1,clauses$0,wrap$0,pre$0,post$0,opts$0);};if(x$3=ph$5$0,x$3 instanceof Array&&x$3[0]==="test"){return __amp__(["test_factory",li$1,clauses$0],{"env":env$3});}else{t0$20=ph$5$0;t1$11=t0$20.length;if(($$12969$0=t1$11===2)&&($$12970$0=t0$20[0]==="expr")&&t0$20[1]==="multi"){return["nostep",form$6];}else{if($$12970$0&&t0$20[1]==="ignore"){return _build_loop$0(null,["splice"],["splice"]);}else{other$1=ph$5$0;return _build_loop$0(function(x$4){return["multi",["send",["symbol","="],["data",["symbol","temp"],["multi",x$4]]],["send",["send",["symbol","acc"],["send",["symbol","."],["data",["void"],["symbol","push"]]]],["data",["symbol","temp"]]]];},["splice",["send",["symbol","="],["data",["send",["symbol","var"],["symbol","acc"]],["data"]]],["send",["symbol","="],["data",["send",["symbol","var"],["symbol","temp"]],["symbol","null"]]]],["symbol","acc"]);}}}}};t0$24=getProjector(mac$0("each"))($targ$4);if(t0$24[0]){each_mac$0=t0$24[1];}else{___match_error($targ$4,"mac{\"each\"}! each_mac{match, info and {=> env}, form, var expr}");}$targ$5=function $targ$5(ph$7$0,temp$12$0,form$7,expr$5){var t0$25=void 0;var x$5=void 0;var t0$27=void 0;var t1$16=void 0;var ph$8=void 0;var lv$1=void 0;var $targ$12=void 0;var li$2=void 0;var body$8=void 0;var t0$28=void 0;var t1$17=void 0;var t0$29=void 0;var t1$18=void 0;var t2$4=void 0;var loop$0=void 0;var other$3=void 0;var $targ$13=void 0;var li$3=void 0;var body$9=void 0;var $targ$14=void 0;var clauses$1=void 0;var ends_with_test$1=void 0;var _build_loop$1=void 0;var $$13148$0=void 0;var $$13149$0=void 0;var $$13150$0=void 0;var $$13151$0=void 0;var t0$26=void 0;var t1$15=void 0;var info$5=void 0;var env$4=void 0;t0$25=temp$12$0;info$5=t0$25;if(___hasprop(t0$25,"env")){env$4=t0$25.env;}else{___match_error(temp$12$0);}if(x$5=ph$7$0,x$5 instanceof Array&&x$5[0]==="pattern"){if(equal(expr$5,["void"])){expr$5=["data",["void"],["void"]];expr$5;}$targ$12=expr$5;t0$27=$targ$12;if(Array.isArray(t0$27)&&(t1$16=t0$27.length,t1$16===3&&t0$27[0]==="data")){li$2=t0$27[1];body$8=t0$27[2];}else{___match_error($targ$12,"#data{li, body}");}[li$2,body$8];if(equal(li$2,["void"])){ph$8=info$5.env.mark(["symbol",info$5.gensym("xs")]);}else{ph$8=li$2;}if(equal(body$8,["void"])){lv$1=info$5.env.mark(["symbol","match"]);}else{lv$1=body$8;}return["special",EachHandler$0(ph$8,lv$1,true)];}else{$targ$13=expr$5;t0$28=$targ$13;if(Array.isArray(t0$28)&&(t1$17=t0$28.length,t1$17===3&&t0$28[0]==="data")){li$3=t0$28[1];body$9=t0$28[2];}else{___match_error($targ$13,"#data{li, body}");}[li$3,body$9];$targ$14=body$9;t0$29=getProjector(Body$0)($targ$14);if(t0$29[0]&&(t1$18=t0$29[1],t2$4=t1$18.length,t2$4>=0)){clauses$1=Array.prototype.slice.call(t1$18,0);}else{___match_error($targ$14,"Body! {*clauses}");}ends_with_test$1=false;_build_loop$1=function _build_loop(wrap$1,pre$1,post$1){var accum$4=void 0;var accum$5=void 0;var opts$1=void 0;opts$1=__amp____colon__({"forof":true},__amp____colon__((accum$4={},accum$4["wrap_pattern"]=function wrap_pattern(x$6,toplevel$1){var x$7=void 0;var other$2=void 0;var m$3$0=void 0;m$3$0=x$6;if(x$7=m$3$0,x$7 instanceof Array&&x$7[0]==="test"){ends_with_test$1=toplevel$1;}else{other$2=m$3$0;ends_with_test$1=false;}return x$6;},accum$4),(accum$5={},accum$5["fallback"]=function fallback(target$1){if(ends_with_test$1){return["symbol","false"];}else{return match_error$0(target$1);}},accum$5)));return build_loop$0(info$5,env$4,form$7,li$3,clauses$1,wrap$1,pre$1,post$1,opts$1);};t0$26=ph$7$0;t1$15=t0$26.length;if(($$13150$0=t1$15===2)&&($$13151$0=t0$26[0]==="expr")&&t0$26[1]==="multi"){return["nostep",form$7];}else{if($$13151$0&&t0$26[1]==="ignore"){return["multi"];}else{other$3=ph$7$0;loop$0=_build_loop$1(function(x$8){return["multi",["send",["symbol","="],["data",["symbol","temp"],["multi",x$8]]],["send",["symbol","yield"],["symbol","temp"]]];},["splice",["send",["symbol","="],["data",["send",["symbol","var"],["symbol","acc"]],["data"]]],["send",["symbol","="],["data",["send",["symbol","var"],["symbol","temp"]],["symbol","null"]]]],["symbol","acc"]);return["send",["send",["symbol","*->"],["data",["data"],loop$0]],["data"]];}}}};t0$30=getProjector(mac$0("each*"))($targ$5);if(t0$30[0]){each_gen_mac$0=t0$30[1];}else{___match_error($targ$5,"mac{\"each*\"}! each_gen_mac{match, info and {=> env}, form, var expr}");}return exports$0;};module["exports"]=$targ$0;void 0; //# sourceMappingURL=loop.js.map