UNPKG

earlgrey

Version:

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

4 lines (2 loc) 9.89 kB
'use strict';require('earlgrey-runtime/5');var $targ$1=void 0;var $targ$0=void 0;var $0$0=void 0;var __lt____lt____colon__$0=void 0;var $1$0=void 0;var Env$0=void 0;var topscope$0=void 0;var $2$0=void 0;var ctx_mac$0=void 0;var expr_mac2$0=void 0;var multimacro$0=void 0;var inject__minus__tools$0=void 0;var $3$0=void 0;var camelCase$0=void 0;$0$0=require("../location");__lt____lt____colon__$0=getProperty($0$0,"<<:","../location");$1$0=require("../expand");Env$0=getProperty($1$0,"Env","../expand");topscope$0=getProperty($1$0,"topscope","../expand");$2$0=require("./helpers");ctx_mac$0=getProperty($2$0,"ctx_mac","./helpers");expr_mac2$0=getProperty($2$0,"expr_mac2","./helpers");multimacro$0=getProperty($2$0,"multimacro","./helpers");inject__minus__tools$0=getProperty($2$0,"injectTools","./helpers");$3$0=require("../util");camelCase$0=getProperty($3$0,"camelCase","../util");if(typeof module==="undefined"){$targ$1=undefined;global["module"]=$targ$1;void 0;}$targ$0=function $targ$0(mac$0){var t0$3=void 0;var t0$7=void 0;var t0$11=void 0;var mak$0=void 0;var t0$16=void 0;var wrap_macro$0=void 0;var wrap_macro_func$0=void 0;var $targ$2=void 0;var imacro_mac$0=void 0;var $targ$3=void 0;var icmacro_mac$0=void 0;var $targ$4=void 0;var macros_mac$0=void 0;var $targ$5=void 0;var macro_mac$0=void 0;var exports$0=void 0;exports$0={};wrap_macro$0=function wrap_macro(info$0,mac$1){var mac2$0=void 0;mac2$0=function mac2(c$0,s$0,f$0,e$0){var bindings$0=void 0;var env$0=void 0;var $targ$6=void 0;var r$0=void 0;bindings$0=info$0.env.list_bindings(info$0.scope);env$0=Env$0();$targ$6=bindings$0;env$0.scopes[topscope$0.name]=$targ$6;r$0=mac$1.call(info$0,c$0,s$0,f$0,e$0);return env$0.mark(r$0);};return["macro",mac2$0];};wrap_macro_func$0=function wrap_macro_func(info$1,args$0,body$0){var it$0=void 0;it$0=info$1.env.mark(["symbol","@"]);return["send",["symbol","_lambda"],["data",args$0,["send",["symbol","="],["data",it$0,["symbol","this"]]],body$0,["value",null]]];};$targ$2=function $targ$2(context$0,info$2,form$0,ph$0$0){var t0$1=void 0;var t0$2=void 0;var mac$2=void 0;var s$1=void 0;var name$0=void 0;var sym$0=void 0;var arguments$1=void 0;var ast$0=void 0;var t0$0=void 0;var t1$0=void 0;var t2$0=void 0;var t3$0=void 0;var t4$0=void 0;var bridge$$13440$0=void 0;t0$0=ph$0$0;t1$0=t0$0.length;if(t1$0===3&&t0$0[0]==="data"&&(t2$0=t0$0[1],Array.isArray(t2$0)&&(t3$0=t2$0.length,t3$0===3&&t2$0[0]==="send"&&(t4$0=t2$0[1],name$0=t4$0,bridge$$13440$0=t4$0,Array.isArray(bridge$$13440$0)&&(t0$1=bridge$$13440$0.length,t0$1===2&&bridge$$13440$0[0]==="symbol"&&(sym$0=bridge$$13440$0[1],true))||Array.isArray(bridge$$13440$0)&&(t0$2=bridge$$13440$0.length,t0$2===2&&bridge$$13440$0[0]==="value"&&(sym$0=bridge$$13440$0[1],true)))))){arguments$1=t2$0[2];ast$0=t0$0[2];mac$2=info$2.go(wrap_macro_func$0(info$2,arguments$1,ast$0),"parse","eval");s$1=__lt____lt____colon__$0(info$2.mark(__amp____colon__(["symbol",sym$0],{"env":name$0.env})),name$0);return["declare_raw",s$1,wrap_macro$0(info$2,expr_mac2$0(mac$2))];}else{return ___match_error(ph$0$0,"#data{#send{name and [#symbol{sym} or #value{sym}], arguments}, ast}");}};t0$3=getProjector(mac$0("inlineMacro"))($targ$2);if(t0$3[0]){imacro_mac$0=t0$3[1];}else{___match_error($targ$2,"mac{\"inlineMacro\"}! imacro_mac{context, info, form, match}");}$targ$3=function $targ$3(context$1,info$3,form$1,ph$1$0){var t0$5=void 0;var t0$6=void 0;var mac$3=void 0;var s$2=void 0;var name$1=void 0;var sym$1=void 0;var arguments$2=void 0;var ast$1=void 0;var t0$4=void 0;var t1$1=void 0;var t2$1=void 0;var t3$1=void 0;var t4$1=void 0;var bridge$$13512$0=void 0;t0$4=ph$1$0;t1$1=t0$4.length;if(t1$1===3&&t0$4[0]==="data"&&(t2$1=t0$4[1],Array.isArray(t2$1)&&(t3$1=t2$1.length,t3$1===3&&t2$1[0]==="send"&&(t4$1=t2$1[1],name$1=t4$1,bridge$$13512$0=t4$1,Array.isArray(bridge$$13512$0)&&(t0$5=bridge$$13512$0.length,t0$5===2&&bridge$$13512$0[0]==="symbol"&&(sym$1=bridge$$13512$0[1],true))||Array.isArray(bridge$$13512$0)&&(t0$6=bridge$$13512$0.length,t0$6===2&&bridge$$13512$0[0]==="value"&&(sym$1=bridge$$13512$0[1],true)))))){arguments$2=t2$1[2];ast$1=t0$4[2];mac$3=info$3.go(wrap_macro_func$0(info$3,arguments$2,ast$1),"parse","eval");s$2=__lt____lt____colon__$0(info$3.mark(__amp____colon__(["symbol",sym$1],{"env":name$1.env})),name$1);return["declare_raw",s$2,wrap_macro$0(info$3,ctx_mac$0(mac$3))];}else{return ___match_error(ph$1$0,"#data{#send{name and [#symbol{sym} or #value{sym}], arguments}, ast}");}};t0$7=getProjector(mac$0("inlineCmacro"))($targ$3);if(t0$7[0]){icmacro_mac$0=t0$7[1];}else{___match_error($targ$3,"mac{\"inlineCmacro\"}! icmacro_mac{context, info, form, match}");}$targ$4=function $targ$4(context$2,info$4,temp$0$0,temp$1$0){var t0$8=void 0;var t0$9=void 0;var t1$2=void 0;var m$0=void 0;var acc$0=void 0;var temp$2=void 0;var macs$0=void 0;var the_macros$0=void 0;var form$2=void 0;var env$1=void 0;var body$1=void 0;t0$8=temp$0$0;form$2=t0$8;if(___hasprop(t0$8,"env")){env$1=t0$8.env;}else{___match_error(temp$0$0);}t0$9=temp$1$0;if(Array.isArray(t0$9)&&(t1$2=t0$9.length,t1$2===2&&t0$9[0]==="data")){body$1=t0$9[1];}else{___match_error(temp$1$0);}the_macros$0=info$4.go(body$1,"parse","eval");acc$0=[];temp$2=null;m$0=null;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{var _loop=function _loop(){m$0=_step.value;var f$1=void 0;var k$0=void 0;var v$0=void 0;var t0$10=void 0;var t1$3=void 0;t0$10=m$0;if(Array.isArray(t0$10)&&(t1$3=t0$10.length,t1$3===2)){k$0=t0$10[0];v$0=t0$10[1];f$1=function f(ctx$0,info$5,form$3,expr$0){return v$0.call(inject__minus__tools$0(info$5),expr$0);};temp$2=["declare_raw",__amp____colon__(["symbol",k$0],{"env":env$1}),["macro",f$1]];acc$0.push(temp$2);}else{___match_error(m$0);}};$4:for(var _iterator=items(the_macros$0)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){_loop();}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}macs$0=acc$0;return["splice"].concat(macs$0);};t0$11=getProjector(mac$0("macros"))($targ$4);if(t0$11[0]){macros_mac$0=t0$11[1];}else{___match_error($targ$4,"mac{\"macros\"}! macros_mac{context, info, form and {=> env}, #data{body}}");}mak$0=function mak(tosave$0){return function(ph$2$0,info$6,form$4,expr$1){var x$0=void 0;var mac$4=void 0;var tosave$1=void 0;var t0$15=void 0;var t1$7=void 0;var ph$3$0=void 0;if(equal(expr$1,["void"])){return["nostep",form$4];}else{if(x$0=ph$2$0,x$0 instanceof Array&&x$0[0]==="pattern"){mac$4=function mac(){var m$2=void 0;var acc$1=void 0;var temp$3=void 0;var provides$0=void 0;var e$1=void 0;var args$1=void 0;var body$2=void 0;var env$2=void 0;var x$1=void 0;var $$13704$0=void 0;var $$13705$0=void 0;var $$13706$0=void 0;var t0$13=void 0;var t1$5=void 0;var t2$3=void 0;var t3$2=void 0;var t4$2=void 0;var t5$0=void 0;var ph$5$0=void 0;var blah$0=void 0;var t0$12=void 0;var t1$4=void 0;var t2$2=void 0;var m$1$0=void 0;m$1$0=arguments;t0$12=m$1$0.length;if(t0$12>=1&&(blah$0=Array.prototype.slice.call(m$1$0,0,-1),t1$4=m$1$0[t0$12-1],Array.isArray(t1$4)&&(t2$2=t1$4.length,t2$2===2&&t1$4[0]==="data"))){ph$5$0=t1$4[1];t0$13=ph$5$0;t1$5=t0$13.length;if(($$13706$0=t1$5===3)&&t0$13[0]==="use"){env$2=t0$13[1];x$1=t0$13[2];return["use",env$2,mac$4.call(this,["data",x$1])];}else{if($$13706$0&&t0$13[0]==="send"&&(t2$3=t0$13[1],Array.isArray(t2$3)&&(t3$2=t2$3.length,t3$2===2&&t2$3[0]==="symbol"&&t2$3[1]==="->"&&(t4$2=t0$13[2],Array.isArray(t4$2)&&(t5$0=t4$2.length,t5$0===3&&t4$2[0]==="data"))))){args$1=t4$2[1];body$2=t4$2[2];e$1=wrap_macro_func$0(info$6,args$1,body$2);acc$1=[];temp$3=null;m$2=null;var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{$5:for(var _iterator2=tosave$0[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){m$2=_step2.value;var expn$0=void 0;var exp$0=void 0;var sym$2=void 0;var name$2=void 0;var t0$14=void 0;var t1$6=void 0;var t2$4=void 0;t0$14=m$2;sym$2=t0$14;if(Array.isArray(t0$14)&&(t1$6=t0$14.length,t1$6===2&&t0$14[0]==="symbol"&&(t2$4=getProjector(camelCase$0)(t0$14[1]),t2$4[0]))){name$2=t2$4[1];expn$0="__mdep_"+name$2;exp$0=["symbol",expn$0];temp$3=["multi",["send",["symbol","provide"],["data",["send",["symbol","as"],["data",sym$2,exp$0]]]],["send",["symbol","="],["data",["send",["symbol","deps"],["value",name$2]],["value",expn$0]]]];acc$1.push(temp$3);}else{___match_error(m$2);}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}provides$0=acc$1;return["multi",["send",["symbol","="],["data",["symbol","tmp"],e$1]],["send",["symbol","="],["data",["send",["symbol","and"],["data",["send",["symbol","tmp"],["send",["symbol","."],["data",["void"],["symbol","__deps"]]]],["symbol","deps"]]],["data",["symbol","="]]]]].concat(provides$0).concat([["send",["symbol","="],["data",["send",["symbol","tmp"],["send",["symbol","."],["data",["void"],["symbol","__path"]]]],["symbol","__filename"]]],["symbol","tmp"]]);}else{return ___match_error(ph$5$0,"`^args -> ^body`");}}}else{return ___match_error(m$1$0,"{*blah, #data{match}}");}};return["project",["macro",mac$4],expr$1,true];}else{ph$3$0=expr$1;t0$15=ph$3$0;t1$7=t0$15.length;if(t1$7>=1&&t0$15[0]==="data"){tosave$1=Array.prototype.slice.call(t0$15,1);return["macro",mak$0(tosave$1)];}else{return ___match_error(ph$3$0,"#data{*tosave}");}}}};};$targ$5=mak$0([]);t0$16=getProjector(mac$0("macro"))($targ$5);if(t0$16[0]){macro_mac$0=t0$16[1];}else{___match_error($targ$5,"mac{\"macro\"}! macro_mac");}return exports$0;};module["exports"]=$targ$0;void 0; //# sourceMappingURL=macrodef.js.map