earlgrey
Version:
Programming language compiling to JavaScript, featuring macros, dynamic typing annotations and pattern matching.
5 lines (2 loc) • 22.4 kB
JavaScript
'use strict';require('earlgrey-runtime/6');let $targ$1;let $targ$0;let $0$0;let Body$0;let inject__minus__tools$0;let $1$0;let __lt____lt____colon__$0;let $2$0;let camelCase$0;$0$0=require("./helpers");Body$0=getProperty($0$0,"Body","./helpers");inject__minus__tools$0=getProperty($0$0,"injectTools","./helpers");$1$0=require("../location");__lt____lt____colon__$0=getProperty($1$0,"<<:","../location");$2$0=require("../util");camelCase$0=getProperty($2$0,"camelCase","../util");if((typeof(module)==="undefined")){$targ$1=undefined;(global["module"]=$targ$1);(void 0);}$targ$0=(function(mac$0){let t0$0;let t0$1;let t0$25;let t0$35;let t0$42;let t0$44;let t0$47;let $targ$2;let __require_mac$0;let $targ$3;let __requirem_mac$0;let getreqs$0;let $targ$4;let require_mac$0;let $targ$5;let requiremac_mac$0;let $targ$6;let provide_mac$0;let $targ$7;let inject_mac$0;let $targ$8;let globals_mac$0;let exports$0;exports$0=({});$targ$2=(function(context$0,info$0,form$0,expr$0){let req$0;req$0=__amp____colon__(["variable","require"],({"top":true}));return ["send",req$0,expr$0];});t0$0=getProjector(mac$0("__require"))($targ$2);if(t0$0[0]){__require_mac$0=t0$0[1];}else{___match_error($targ$2,"mac{\"__require\"}! __require_mac{context, info, form, expr}");}$targ$3=(function(context$1,info$1,form$1,expr$1){let req$1;req$1=__amp____colon__(["variable","require"],({"top":true}));return ["send",req$1,expr$1];});t0$1=getProjector(mac$0("__require-m"))($targ$3);if(t0$1[0]){__requirem_mac$0=t0$1[1];}else{___match_error($targ$3,"mac{\"__require-m\"}! __requirem_mac{context, info, form, expr}");}getreqs$0=(function getreqs(){let stmts$0;let names$0;let curpkg$0;let pkgs$0;let w$0;let logName$0;let unlogName$0;let topfetch$0;let produce$0;let info$2;let req$2;let expr$2;let prefix$0;let t0$2;let m$0$0;m$0$0=arguments;t0$2=m$0$0.length;if(((t0$2>=3)&&(t0$2<=4))){info$2=m$0$0[0];req$2=m$0$0[1];expr$2=m$0$0[2];if((3>=t0$2)){prefix$0=null;}else{prefix$0=m$0$0[3];}stmts$0=[];names$0=[];curpkg$0=null;pkgs$0=({});w$0=(function w(){let x$0;let args$0;let wrap$0;let t0$3;let m$1$0;m$1$0=arguments;t0$3=m$1$0.length;if(((t0$3>=1)&&(t0$3<=3))){x$0=m$1$0[0];if((1>=t0$3)){args$0=null;}else{args$0=m$1$0[1];}if((2>=t0$3)){wrap$0=null;}else{wrap$0=m$1$0[2];}if(args$0){x$0=["send",x$0,args$0];x$0;}if(wrap$0){x$0=wrap$0(x$0);x$0;}return x$0;}else{return ___match_error(m$1$0,"{var x, args = null, wrap = null}");}});logName$0=(function logName(temp$0$0){let t0$5;let t1$0;let t0$6;let bridge$$16295$0;let t0$7;let t1$1;let t0$4;let bridge$$16294$0;let s$2;let s$1;let s$0;let $$16361$0;let $$16362$0;let $$16363$0;let t0$8;let m$2$0;let res$0;let $targ$10;let $targ$9;let name$0;let n$0;t0$4=temp$0$0;name$0=t0$4;bridge$$16294$0=t0$4;if((((bridge$$16295$0=bridge$$16294$0),((Array.isArray(bridge$$16295$0)&&((t0$5=bridge$$16295$0.length),((t0$5===2)&&((bridge$$16295$0[0]==="symbol")&&((t1$0=getProjector(camelCase$0)(bridge$$16295$0[1])),(t1$0[0]&&((n$0=t1$0[1]),true)))))))||(Array.isArray(bridge$$16295$0)&&((t0$6=bridge$$16295$0.length),((t0$6===2)&&((bridge$$16295$0[0]==="variable")&&((n$0=bridge$$16295$0[1]),true)))))))||(Array.isArray(bridge$$16294$0)&&((t0$7=bridge$$16294$0.length),((t0$7===2)&&((bridge$$16294$0[0]==="value")&&((t1$1=bridge$$16294$0[1]),((t1$1==="'")&&((n$0=t1$1),true))))))))){}else{___match_error(temp$0$0);}names$0.push(name$0);$targ$9=curpkg$0;(pkgs$0[n$0]=$targ$9);if((prefix$0===null)){return name$0;}else{m$2$0=name$0;if((($$16361$0=Array.isArray(m$2$0))&&((t0$8=m$2$0.length),(($$16363$0=(t0$8===2))&&(m$2$0[0]==="symbol"))))){s$0=m$2$0[1];res$0=__lt____lt____colon__$0(["symbol",(prefix$0+s$0)],name$0);}else{if(($$16363$0&&(m$2$0[0]==="variable"))){s$1=m$2$0[1];res$0=__lt____lt____colon__$0(["symbol",(prefix$0+s$1)],name$0);}else{if(($$16363$0&&(m$2$0[0]==="value"))){s$2=m$2$0[1];res$0=__lt____lt____colon__$0(["symbol",(prefix$0+s$2)],name$0);}else{res$0=___match_error(m$2$0,"#value{s}");}}}$targ$10=name$0;(res$0["other"]=$targ$10);return res$0;}});unlogName$0=(function unlogName(name$1){let n$1;let m$3$0;m$3$0=names$0.indexOf((name$1.other||name$1));if((m$3$0===-1)){return undefined;}else{n$1=m$3$0;return names$0.splice(n$1,1);}});topfetch$0=(function topfetch(){let imp$0;let pkg$0;let v$0;let args$1;let wrap$1;let t0$9;let m$4$0;m$4$0=arguments;t0$9=m$4$0.length;if(((t0$9>=2)&&(t0$9<=4))){pkg$0=m$4$0[0];v$0=m$4$0[1];if((2>=t0$9)){args$1=null;}else{args$1=m$4$0[2];}if((3>=t0$9)){wrap$1=null;}else{wrap$1=m$4$0[3];}curpkg$0=pkg$0;imp$0=w$0(["send",req$2,["data",pkg$0]],args$1,wrap$1);stmts$0.push(["send",["symbol","="],["data",["send",["symbol","let"],v$0],imp$0]]);return v$0;}else{return ___match_error(m$4$0,"{pkg, v, args = null, wrap = null}");}});produce$0=(function produce(temp$1$0,fetch$0){let t0$10;let t0$12;let t0$13;let m$5;let pkgv$0;let rqn$0;let t0$17;let t1$4;let $targ$11;let projector$0;let subp$2;let m$11;let acc$0;let temp$2;let dotdots$0;let text$0;let pfx$0;let ph$2$0;let rest$0;let x$4;let t0$19;let t1$5;let t2$1;let t3$1;let m$10$0;let other$0;let name$6;let $$16875$0;let $$16876$0;let $$16877$0;let $$16878$0;let t0$20;let t1$6;let m$12$0;let s$7;let name$5;let sym$1;let name$7;let s$8;let args$6;let operator$0;let ph$1$0;let args$4;let pkg$2;let subp$1;let pkg$1;let s$5;let name$3;let sym$0;let name$2;let subp$0;let s$4;let s$3;let $$16458$0;let $$16459$0;let $$16460$0;let $$16461$0;let $$16462$0;let $$16463$0;let $$16464$0;let $$16465$0;let $$16466$0;let t0$11;let t1$2;let t2$0;let bridge$$16449$0;let t3$0;let t4$0;let t5$0;let t6$0;let t7$0;let t8$0;let t9$0;let expr$3;let ph$0$0;t0$10=temp$1$0;expr$3=t0$10;ph$0$0=t0$10;t0$11=ph$0$0;t1$2=t0$11.length;if((($$16460$0=(t1$2===2))&&(t0$11[0]==="symbol"))){s$3=t0$11[1];return fetch$0(["value",s$3],logName$0(expr$3));}else{if(($$16460$0&&((t0$11[0]==="value")&&((t2$0=t0$11[1]),(typeof(t2$0)==="string"))))){s$4=t2$0;return fetch$0(expr$3,__amp____colon__(["symbol",info$2.gensym()],({"reqname":s$4})));}else{bridge$$16449$0=ph$0$0;if(((Array.isArray(bridge$$16449$0)&&((t0$12=bridge$$16449$0.length),((t0$12>=1)&&((bridge$$16449$0[0]==="multi")&&((subp$0=Array.prototype.slice.call(bridge$$16449$0,1)),true)))))||(Array.isArray(bridge$$16449$0)&&((t0$13=bridge$$16449$0.length),((t0$13>=1)&&((bridge$$16449$0[0]==="data")&&((subp$0=Array.prototype.slice.call(bridge$$16449$0,1)),true))))))){m$5=null;$3:for(m$5 of subp$0){let p$0;p$0=m$5;produce$0(p$0,fetch$0);}return null;}else{t0$11=ph$0$0;t1$2=t0$11.length;if((($$16460$0=(t1$2===3))&&(($$16461$0=(t0$11[0]==="send"))&&((t2$0=t0$11[1]),(($$16463$0=Array.isArray(t2$0))&&((t3$0=t2$0.length),(($$16465$0=(t3$0===2))&&(($$16466$0=(t2$0[0]==="symbol"))&&((t2$0[1]==="/")&&((t4$0=t0$11[2]),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0===3)&&((t4$0[0]==="data")&&((t6$0=t4$0[1]),(Array.isArray(t6$0)&&((t7$0=t6$0.length),((t7$0===1)&&((t6$0[0]==="void")&&((t8$0=t4$0[2]),(sym$0=t8$0),(Array.isArray(t8$0)&&((t9$0=t8$0.length),((t9$0===2)&&(t8$0[0]==="symbol")))))))))))))))))))))))){name$2=t8$0[1];return fetch$0(["value",("earlgrey-runtime/std/"+name$2)],sym$0);}else{if(($$16466$0&&((t2$0[1]==="^")&&((t4$0=t0$11[2]),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0===3)&&((t4$0[0]==="data")&&((t6$0=t4$0[1]),(Array.isArray(t6$0)&&((t7$0=t6$0.length),((t7$0===1)&&(t6$0[0]==="void"))))))))))))){name$3=t4$0[2];return fetch$0(name$3,__amp____colon__(["symbol",info$2.gensym()],({"reqname":name$3})));}else{if(($$16466$0&&((t2$0[1]==="as")&&((t4$0=t0$11[2]),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0===3)&&(t4$0[0]==="data")))))))){pkg$1=t4$0[1];s$5=t4$0[2];return produce$0(pkg$1,(function(){let the_pkg$0;let ignore$0;let args$2;let wrap$2;let t0$14;let m$6$0;m$6$0=arguments;t0$14=m$6$0.length;if(((t0$14>=2)&&(t0$14<=4))){the_pkg$0=m$6$0[0];ignore$0=m$6$0[1];if((2>=t0$14)){args$2=null;}else{args$2=m$6$0[2];}if((3>=t0$14)){wrap$2=null;}else{wrap$2=m$6$0[3];}unlogName$0(ignore$0);return fetch$0(the_pkg$0,logName$0(s$5),args$2,wrap$2);}else{return ___match_error(m$6$0,"{the_pkg, ignore, args = null, wrap = null}");}}));}else{if(($$16466$0&&((t2$0[1]==="->")&&((t4$0=t0$11[2]),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0===3)&&(t4$0[0]==="data")))))))){pkg$2=t4$0[1];subp$1=t4$0[2];pkgv$0=produce$0(pkg$2,fetch$0);rqn$0=(pkgv$0.reqname||pkgv$0[1]);return produce$0(subp$1,(function(){let x$1;let s$6;let t0$16;let t1$3;let m$8$0;let pkg$3;let imp$1;let _pkg$0;let v$1;let args$3;let wrap$3;let t0$15;let m$7$0;m$7$0=arguments;t0$15=m$7$0.length;if(((t0$15>=2)&&(t0$15<=4))){_pkg$0=m$7$0[0];v$1=m$7$0[1];if((2>=t0$15)){args$3=null;}else{args$3=m$7$0[2];}if((3>=t0$15)){wrap$3=null;}else{wrap$3=m$7$0[3];}m$8$0=_pkg$0;if((Array.isArray(m$8$0)&&((t0$16=m$8$0.length),((t0$16===2)&&((m$8$0[0]==="value")&&((t1$3=getProjector(camelCase$0)(m$8$0[1])),t1$3[0])))))){s$6=t1$3[1];pkg$3=["value",s$6];}else{x$1=m$8$0;pkg$3=x$1;}imp$1=w$0(["send",["symbol","getProperty"],["data",pkgv$0,pkg$3,["value",rqn$0]]],args$3,wrap$3);stmts$0.push(["send",["symbol","="],["data",["send",["symbol","let"],v$1],imp$1]]);return v$1;}else{return ___match_error(m$7$0,"{_pkg, v, args = null, wrap = null}");}}));}else{if((Array.isArray(t0$11)&&((t1$2=t0$11.length),((t1$2===3)&&((t0$11[0]==="send")&&((t2$0=t0$11[1]),(Array.isArray(t2$0)&&((t3$0=t2$0.length),((t3$0===2)&&((t2$0[0]==="symbol")&&((t4$0=t2$0[1]),(operator$0=t4$0),(ph$1$0=t4$0),(args$4=t0$11[2]),expr$3.fromop))))))))))){if((ph$1$0==="!")){$targ$11=args$4;t0$17=$targ$11;if((Array.isArray(t0$17)&&((t1$4=t0$17.length),((t1$4===3)&&(t0$17[0]==="data"))))){projector$0=t0$17[1];subp$2=t0$17[2];}else{___match_error($targ$11,"#data{projector, subp}");}[projector$0,subp$2];return produce$0(subp$2,(function(){let wrap2$0;let the_pkg$1;let name$4;let args$5;let wrap$4;let t0$18;let m$9$0;m$9$0=arguments;t0$18=m$9$0.length;if(((t0$18>=2)&&(t0$18<=4))){the_pkg$1=m$9$0[0];name$4=m$9$0[1];if((2>=t0$18)){args$5=null;}else{args$5=m$9$0[2];}if((3>=t0$18)){wrap$4=null;}else{wrap$4=m$9$0[3];}wrap$4=(wrap$4||(function(x$2){return x$2;}));wrap2$0=(function wrap2(x$3){return ["send",projector$0,["data",wrap$4(x$3)]];});return fetch$0(the_pkg$1,name$4,args$5,wrap2$0);}else{return ___match_error(m$9$0,"{the_pkg, name, args = null, var wrap = null}");}}));}else{m$10$0=info$2.raw(expr$3).trim().replace(RegExp("^,+|,+$",""),"");if(getChecker(RegExp("^\\.*/",""))(m$10$0)){x$4=m$10$0;s$7=x$4;}else{t0$19=getProjector(RegExp("^(\\.+)(.*)",""))(m$10$0);if((t0$19[0]&&((t1$5=t0$19[1]),(t2$1=t1$5.length),(t2$1===3)))){t1$5[0];t3$1=t1$5[1];pfx$0=t3$1;ph$2$0=t3$1;rest$0=t1$5[2];if((ph$2$0===".")){s$7=(((""+pfx$0)+"/")+rest$0);}else{acc$0=[];temp$2=null;m$11=null;$4:for(m$11 of range(2,pfx$0.length)){temp$2="../";acc$0.push(temp$2);}dotdots$0=acc$0;s$7=((""+dotdots$0.join(""))+rest$0);}}else{text$0=m$10$0;s$7=text$0;}}m$12$0=s$7.split("/");if((($$16875$0=Array.isArray(m$12$0))&&((t0$20=m$12$0.length),(($$16877$0=(t0$20>=1))&&(Array.prototype.slice.call(m$12$0,0,-1),(t1$6=m$12$0[(t0$20-1)]),getChecker(RegExp("^[a-zA-Z0-9_\\-]+$",""))(t1$6)))))){name$6=t1$6;name$5=name$6;}else{if($$16877$0){other$0=m$12$0[(t0$20-1)];throw ErrorFactory(["syntax","module"]).create((((("`"+other$0)+"` is not a valid symbol; use `require: \"")+s$7)+"\" as xyz` instead"),({"node":expr$3}));}else{name$5=___match_error(m$12$0,"{*, other}");}}sym$1=info$2.mark(["symbol",name$5]);return fetch$0(["value",s$7],logName$0(sym$1));}}else{t1$2=t0$11.length;if(((t1$2===3)&&((t0$11[0]==="send")&&((t2$0=t0$11[1]),(name$7=t2$0),(Array.isArray(t2$0)&&((t3$0=t2$0.length),((t3$0===2)&&((t2$0[0]==="symbol")&&((s$8=t2$0[1]),(t4$0=t0$11[2]),(args$6=t4$0),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0>=1)&&(t4$0[0]==="data"))))))))))))){Array.prototype.slice.call(t4$0,1);return fetch$0(["value",s$8],logName$0(name$7),args$6);}else{return ___match_error(ph$0$0,"#send{name and #symbol{s}, args and #data{*_}}");}}}}}}}}}});produce$0(expr$2,topfetch$0);return [stmts$0,names$0,pkgs$0];}else{return ___match_error(m$0$0,"{info, req, expr, prefix = null}");}});$targ$4=(function(context$2,info$3,form$2,temp$3$0){let t0$21;let t0$23;let t0$24;let t1$8;let $targ$12;let stmts$1;let expr$4;let field$0;let req$3;let $$16950$0;let $$16951$0;let t0$22;let t1$7;let bridge$$16949$0;let arg$0;let ph$3$0;t0$21=temp$3$0;arg$0=t0$21;ph$3$0=t0$21;req$3=info$3.mark(["symbol","__require"]);t0$22=ph$3$0;t1$7=t0$22.length;if(((t1$7===1)&&(t0$22[0]==="void"))){return ["variable","require"];}else{if(((t1$7===2)&&(t0$22[0]==="value"))){field$0=t0$22[1];return ["send",req$3,arg$0];}else{bridge$$16949$0=ph$3$0;if(((Array.isArray(bridge$$16949$0)&&((t0$23=bridge$$16949$0.length),((t0$23===2)&&((bridge$$16949$0[0]==="data")&&((expr$4=bridge$$16949$0[1]),true)))))||((expr$4=arg$0),true))){$targ$12=getreqs$0(info$3,req$3,expr$4);t0$24=$targ$12;if((Array.isArray(t0$24)&&((t1$8=t0$24.length),(t1$8===3)))){stmts$1=t0$24[0];t0$24[1];t0$24[2];}else{___match_error($targ$12,"{stmts, _, _}");}return ["splice"].concat(stmts$1);}else{return ___match_error(ph$3$0,"#data{expr} or expr is arg");}}}});t0$25=getProjector(mac$0("require"))($targ$4);if(t0$25[0]){require_mac$0=t0$25[1];}else{___match_error($targ$4,"mac{\"require\"}! require_mac{context, info, form, match arg}");}$targ$5=(function(context$3,info$4,form$3,temp$4$0){let t0$26;let t0$27;let t0$28;let t1$9;let m$13;let acc$1;let temp$5;let vs$0;let m$14;let acc$2;let temp$6;let macs$0;let req$4;let $targ$13;let stmts$2;let vars$0;let pkgs$1;let body$0;let the_macros$0;let user__minus__req$0;let declarations$0;let expr$5;let bridge$$17024$0;let arg$1;let ph$4$0;t0$26=temp$4$0;arg$1=t0$26;ph$4$0=t0$26;bridge$$17024$0=ph$4$0;if(((Array.isArray(bridge$$17024$0)&&((t0$27=bridge$$17024$0.length),((t0$27===2)&&((bridge$$17024$0[0]==="data")&&((expr$5=bridge$$17024$0[1]),true)))))||((expr$5=arg$1),true))){req$4=info$4.mark(["symbol","__require-m"]);$targ$13=getreqs$0(info$4,req$4,expr$5,"$MAC$");t0$28=$targ$13;if((Array.isArray(t0$28)&&((t1$9=t0$28.length),(t1$9===3)))){stmts$2=t0$28[0];vars$0=t0$28[1];pkgs$1=t0$28[2];}else{___match_error($targ$13,"{stmts, vars, pkgs}");}[stmts$2,vars$0,pkgs$1];acc$1=[];temp$5=null;m$13=null;$5:for(m$13 of vars$0){let t0$30;let t0$31;let bridge$$17083$0;let t0$32;let v$2;let s$9;let t0$29;let bridge$$17082$0;t0$29=m$13;v$2=t0$29;bridge$$17082$0=t0$29;if((((bridge$$17083$0=bridge$$17082$0),((Array.isArray(bridge$$17083$0)&&((t0$30=bridge$$17083$0.length),((t0$30===2)&&((bridge$$17083$0[0]==="symbol")&&((s$9=bridge$$17083$0[1]),true)))))||(Array.isArray(bridge$$17083$0)&&((t0$31=bridge$$17083$0.length),((t0$31===2)&&((bridge$$17083$0[0]==="variable")&&((s$9=bridge$$17083$0[1]),true)))))))||(Array.isArray(bridge$$17082$0)&&((t0$32=bridge$$17082$0.length),((t0$32===2)&&((bridge$$17082$0[0]==="value")&&((s$9=bridge$$17082$0[1]),true))))))){temp$5=["send",["symbol","="],["data",v$2,["symbol",("$MAC$"+s$9)]]];acc$1.push(temp$5);}else{___match_error(m$13);}}vs$0=acc$1;body$0=["multi"].concat(stmts$2).concat([["data"].concat(vs$0)]);__lt____lt____colon__$0(body$0,arg$1);the_macros$0=info$4.go(body$0,"parse","eval");user__minus__req$0=info$4.mark(["symbol","require"]);acc$2=[];temp$6=null;m$14=null;$6:for(m$14 of items(the_macros$0)){let m$15;let acc$3;let temp$7;let r$0;let deps$0;let f$0;let k$0;let v$3;let t0$33;let t1$10;let bridge$$17160$0;t0$33=m$14;if((Array.isArray(t0$33)&&((t1$10=t0$33.length),((t1$10===2)&&((k$0=t0$33[0]),(bridge$$17160$0=t0$33[1]),(((___hasprop(bridge$$17160$0,"macro")&&((v$3=bridge$$17160$0.macro),true))||((v$3=bridge$$17160$0),true))&&(typeof(v$3)==="function"))))))){r$0=["splice"];if(v$3.__deps){deps$0=clone(v$3.__deps);}else{deps$0=({});}r$0=r$0.concat(((acc$3=[]),(temp$7=null),(m$15=null),(function(){$7:for(m$15 of items((v$3.__deps||({})))){let mangled__minus__name$0;let mangled$0;let $targ$14;let name$8;let ename$0;let t0$34;let t1$11;t0$34=m$15;if((Array.isArray(t0$34)&&((t1$11=t0$34.length),(t1$11===2)))){name$8=t0$34[0];ename$0=t0$34[1];mangled__minus__name$0=info$4.gensym(("_mdep_"+name$8));mangled$0=["variable",mangled__minus__name$0];$targ$14=mangled$0;(deps$0[name$8]=$targ$14);temp$7=["splice",__amp____colon__(["send",user__minus__req$0,["data",["send",["symbol","->"],["data",send(pkgs$1,k$0),["send",["symbol","as"],["data",["symbol",ename$0],mangled$0]]]]]],({"env":info$4.env})),["send",["symbol","="],["data",["send",["symbol","global"],["value",mangled__minus__name$0]],mangled$0]]];acc$3.push(temp$7);}else{___match_error(m$15);}}})(),acc$3));f$0=(function f(ctx$0,info$5,form$4,expr$6){let $targ$15;$targ$15=deps$0;(info$5["deps"]=$targ$15);return v$3.call(inject__minus__tools$0(info$5),expr$6);});r$0.push(["declare_raw",__amp____colon__(["symbol",k$0],({"env":info$4.env})),["macro",f$0]]);temp$6=r$0;acc$2.push(temp$6);}else{false;}}macs$0=acc$2;declarations$0=["splice"].concat(macs$0);return ["restmacro",(function(stmts$3){return [declarations$0,["multi"].concat(stmts$3)];})];}else{return ___match_error(ph$4$0,"#data{expr} or expr is arg");}});t0$35=getProjector(mac$0("requireMacros"))($targ$5);if(t0$35[0]){requiremac_mac$0=t0$35[1];}else{___match_error($targ$5,"mac{\"requireMacros\"}! requiremac_mac{context, info, form, match arg}");}$targ$6=(function(temp$8$0,temp$9$0,form$5,e$0){let t0$36;let x$5;let t0$37;let m$16$0;let t0$38;let t1$12;let t2$2;let t3$2;let t4$1;let m$17;let acc$4;let temp$10;let $targ$16;let expr$7;let exp$0;let context$4;let ph$5$0;t0$36=temp$8$0;context$4=t0$36;ph$5$0=t0$36;if(((x$5=ph$5$0),((x$5 instanceof Array)&&(x$5[0]==="pattern")))){m$16$0=e$0;if((Array.isArray(m$16$0)&&((t0$37=m$16$0.length),((t0$37===1)&&(m$16$0[0]==="void"))))){return ["send",["symbol","and"],["data",["send",["symbol","module"],["send",["symbol","."],["data",["void"],["symbol","exports"]]]],["send",["symbol","set-var"],["variable","exports"]]]];}else{return ["send",["send",["symbol","and"],["data",["send",["symbol","module"],["send",["symbol","."],["data",["void"],["symbol","exports"]]]],["send",["symbol","set-var"],["variable","exports"]]]],e$0];}}else{$targ$16=e$0;t0$38=$targ$16;if((Array.isArray(t0$38)&&((t1$12=t0$38.length),((t1$12===2)&&((t0$38[0]==="data")&&((t2$2=getProjector(Body$0)(t0$38[1])),(t2$2[0]&&((t3$2=t2$2[1]),(t4$1=t3$2.length),(t4$1>=0))))))))){expr$7=Array.prototype.slice.call(t3$2,0);}else{___match_error($targ$16,"#data{Body! {*expr}}");}exp$0=form$5.env.mark(["symbol","exports"]);return ["sink",["multi"].concat(((acc$4=[]),(temp$10=null),(m$17=null),(function(){$8:for(m$17 of expr$7){let t0$40;let t0$41;let other$1;let s$11;let name$10;let s$10;let name$9;let $$17373$0;let t0$39;let t1$13;let t2$3;let t3$3;let t4$2;let t5$1;let bridge$$17371$0;t0$39=m$17;s$10=t0$39;if((Array.isArray(t0$39)&&((t1$13=t0$39.length),((t1$13===2)&&(t0$39[0]==="symbol"))))){name$9=t0$39[1];temp$10=["send",["symbol","="],["data",["send",exp$0,["value",camelCase$0(name$9)]],s$10]];acc$4.push(temp$10);}else{if((Array.isArray(t0$39)&&((t1$13=t0$39.length),((t1$13===3)&&((t0$39[0]==="send")&&((t2$3=t0$39[1]),(Array.isArray(t2$3)&&((t3$3=t2$3.length),((t3$3===2)&&((t2$3[0]==="symbol")&&((t2$3[1]==="as")&&((t4$2=t0$39[2]),(Array.isArray(t4$2)&&((t5$1=t4$2.length),((t5$1===3)&&((t4$2[0]==="data")&&((s$11=t4$2[1]),(bridge$$17371$0=t4$2[2]),((Array.isArray(bridge$$17371$0)&&((t0$40=bridge$$17371$0.length),((t0$40===2)&&((bridge$$17371$0[0]==="symbol")&&((name$10=bridge$$17371$0[1]),true)))))||(Array.isArray(bridge$$17371$0)&&((t0$41=bridge$$17371$0.length),((t0$41===2)&&((bridge$$17371$0[0]==="value")&&((name$10=bridge$$17371$0[1]),true))))))))))))))))))))))){temp$10=["send",["symbol","="],["data",["send",exp$0,["value",camelCase$0(name$10)]],s$11]];acc$4.push(temp$10);}else{other$1=m$17;throw ErrorFactory(["syntax","provide"]).create("Each clause of provide must be 'sym' or 'sym as name'");acc$4.push(temp$10);}}}})(),acc$4))];}});t0$42=getProjector(mac$0("provide"))($targ$6);if(t0$42[0]){provide_mac$0=t0$42[1];}else{___match_error($targ$6,"mac{\"provide\"}! provide_mac{match context, _, form, e}");}$targ$7=(function(context$5,temp$11$0,form$6,temp$12$0){let t0$43;let t1$14;let t2$4;let t3$4;let t4$3;let expr$8;t0$43=temp$12$0;if((Array.isArray(t0$43)&&((t1$14=t0$43.length),((t1$14===2)&&((t0$43[0]==="data")&&((t2$4=getProjector(Body$0)(t0$43[1])),(t2$4[0]&&((t3$4=t2$4[1]),(t4$3=t3$4.length),(t4$3>=0))))))))){expr$8=Array.prototype.slice.call(t3$4,0);}else{___match_error(temp$12$0);}return ["restmacro",(function(stmts$4){let exp$1;exp$1=form$6.env.mark(["symbol","exports"]);return [["multi",["send",["symbol","globals"],["data",["symbol","module"]]],["send",["symbol","="],["data",["send",["send",["symbol","module"],["send",["symbol","."],["data",["void"],["symbol","exports"]]]],["data"].concat(expr$8)],["multi",["send",["symbol","="],["data",["send",["symbol","var"],exp$1],["data",["symbol","="]]]],["multi"].concat(stmts$4),exp$1]]]]];})];});t0$44=getProjector(mac$0("inject"))($targ$7);if(t0$44[0]){inject_mac$0=t0$44[1];}else{___match_error($targ$7,"mac{\"inject\"}! inject_mac{context, _, form, #data{Body! {*expr}}}");}$targ$8=(function(context$6,temp$13$0,form$7,temp$14$0){let t0$45;let t1$15;let t2$5;let t3$5;let t4$4;let m$18;let acc$5;let temp$15;let globs$0;let vars$1;t0$45=temp$14$0;if((Array.isArray(t0$45)&&((t1$15=t0$45.length),((t1$15===2)&&((t0$45[0]==="data")&&((t2$5=getProjector(Body$0)(t0$45[1])),(t2$5[0]&&((t3$5=t2$5[1]),(t4$4=t3$5.length),(t4$4>=0))))))))){vars$1=Array.prototype.slice.call(t3$5,0);}else{___match_error(temp$14$0);}acc$5=[];temp$15=null;m$18=null;$9:for(m$18 of vars$1){let variable$0;let s$12;let t0$46;let t1$16;t0$46=m$18;variable$0=t0$46;if((Array.isArray(t0$46)&&((t1$16=t0$46.length),((t1$16===2)&&(t0$46[0]==="symbol"))))){s$12=t0$46[1];temp$15=["splice",["declare_raw",variable$0,__amp____colon__(["variable",camelCase$0(s$12)],({"top":true,"mutable":true}))],["send",["symbol","if"],["data",["send",["symbol","==="],["data",["send",["symbol","typeof"],["data",variable$0]],["value","undefined"]]],["send",["symbol","="],["data",["send",["symbol","global"],["value",s$12]],["symbol","undefined"]]]]]];acc$5.push(temp$15);}else{___match_error(m$18);}}globs$0=acc$5;return ["splice"].concat(globs$0).concat([["symbol","undefined"]]);});t0$47=getProjector(mac$0("globals"))($targ$8);if(t0$47[0]){globals_mac$0=t0$47[1];}else{___match_error($targ$8,"mac{\"globals\"}! globals_mac{context, _, form, #data{Body! {*vars}}}");}return exports$0;});(module["exports"]=$targ$0);(void 0);
//# sourceMappingURL=modularity.js.map