UNPKG

earlgrey

Version:

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

5 lines (2 loc) 16.5 kB
'use strict';require('earlgrey-runtime/6');let $targ$3;let accum$0;let $targ$4;let accum$1;let $targ$18;let accum$2;let $targ$19;let accum$3;let $targ$20;let $targ$21;let $targ$22;let $targ$23;let $targ$24;let $targ$25;let $targ$26;let $targ$27;let $targ$28;let $0$0;let Source$0;let Location$0;let highlight_locations$0;let __lt____lt____colon__$0;let $1$0;let tokenize$0;let $2$0;let parse$0;let $3$0;let Translator$0;let std$0;let exp$0;let opt$0;let $7$0;let Body$0;let GenSym$0;let vm$0;let module$0;let path$0;let smap$0;let SourceNode$0;let $9$0;let transfer$0;let $10$0;let version$0;let $11$0;let evaluator$0;let es5Transform$0;let globalizer$0;let Pipeline$0;let collapse$0;let makeAnnotatedAST$0;let toCodeAndSourceMap$0;let Generator$0;let compile$0;$0$0=require("./location");Source$0=getProperty($0$0,"Source","./location");Location$0=getProperty($0$0,"Location","./location");highlight_locations$0=getProperty($0$0,"highlight_locations","./location");__lt____lt____colon__$0=getProperty($0$0,"<<:","./location");$1$0=require("./lex");tokenize$0=getProperty($1$0,"tokenize","./lex");$2$0=require("./parse");parse$0=getProperty($2$0,"parse","./parse");$3$0=require("./translate-js");Translator$0=getProperty($3$0,"Translator","./translate-js");std$0=require("./stdenv");exp$0=require("./expand");opt$0=require("./opt");$7$0=require("./util");Body$0=getProperty($7$0,"Body","./util");GenSym$0=getProperty($7$0,"GenSym","./util");vm$0=require("vm");module$0=require("module");path$0=require("path");smap$0=require("source-map");SourceNode$0=getProperty(smap$0,"SourceNode","smap");$9$0=require("multi-stage-sourcemap");transfer$0=getProperty($9$0,"transfer","multi-stage-sourcemap");$10$0=require("./version");version$0=getProperty($10$0,"version","./version");$11$0=require("./evaluator");evaluator$0=getProperty($11$0,"evaluator","./evaluator");es5Transform$0=(function es5Transform(){let babel__minus__core$0;let babel__minus__preset__minus__es2015$0;let x$0;let opts$0;let t0$0;let m$0$0;m$0$0=arguments;t0$0=m$0$0.length;if(((t0$0>=1)&&(t0$0<=2))){x$0=m$0$0[0];if((1>=t0$0)){opts$0=({});}else{opts$0=m$0$0[1];}babel__minus__core$0=require("babel-core");babel__minus__preset__minus__es2015$0=require("babel-preset-es2015");return babel__minus__core$0.transform(x$0,__amp__(opts$0,({"babelrc":false,"compact":true,"presets":[babel__minus__preset__minus__es2015$0]})));}else{return ___match_error(m$0$0,"{x, opts = {=}}");}});globalizer$0=GenSym$0("_$$_");Pipeline$0=(function Pipeline(temp$0$0){let $targ$0;let $targ$1;let $targ$2;let __at___$0;if((!getChecker(Pipeline$0)(this))){__at___$0=Object.create(Pipeline$0.prototype);}else{__at___$0=this;}(__at___$0["opts"]=temp$0$0);$targ$0=globalizer$0;(__at___$0["gensym"]=$targ$0);$targ$1=std$0.make_expander(__at___$0);(__at___$0["_expander"]=$targ$1);$targ$2=__at___$0._expander.mkenv();(__at___$0["env"]=$targ$2);return __at___$0;});(Pipeline$0.prototype["parse"]=(function parse(source$0){let t$0;let __at___$1;let self$0;__at___$1=this;self$0=this;t$0=tokenize$0(source$0);return parse$0(t$0);}));(Pipeline$0.prototype["expand"]=(function expand(ast$0){let __at___$2;let self$1;__at___$2=this;self$1=this;return __at___$2._expander.expand(["top"],exp$0.topscope,__at___$2.env.mark(ast$0));}));(Pipeline$0.prototype["translate"]=(function translate(ast$1){let r$0;let res$0;let globvar$0;let tr$0;let rval$0;let prep$0;let __at___$3;let self$2;__at___$3=this;self$2=this;res$0=opt$0.hoist(ast$1);globvar$0=__at___$3.gensym("global");tr$0=Translator$0(null,globvar$0);rval$0=collapse$0(tr$0.translate(res$0,"expr"));prep$0=tr$0.dump_store();r$0=(((("\"use strict\";"+prep$0)+";(")+rval$0)+")");return ({"code":(__at___$3.opts["es5"]?es5Transform$0(r$0).code:r$0),"globvar":globvar$0,"global":Object.create(global),"location":ast$1.location});}));(Pipeline$0.prototype["evaluate"]=(function evaluate(src$0){let tmp$1;let tmp$0;let ev$0;let url$0;let __at___$4;let self$3;__at___$4=this;self$3=this;tmp$1=send(src$0,"location", true);if(((tmp$1===undefined)||(tmp$1===null))){tmp$0=tmp$1;}else{tmp$0=tmp$1.source;}if(((tmp$0===undefined)||(tmp$0===null))){url$0=tmp$0;}else{url$0=tmp$0.url;}ev$0=evaluator$0(({"globvar":src$0.globvar,"global":src$0.global,"filename":(url$0||"<eval>"),"showname":(url$0||"<eval>"),"cwd":url$0}));return ev$0(src$0.code);}));(Pipeline$0.prototype["go"]=(function go(x$1,temp$1$0,end$0){let t0$1;let start$0;let ph$0$0;let __at___$5;let self$4;__at___$5=this;self$4=this;t0$1=temp$1$0;start$0=t0$1;ph$0$0=t0$1;if(((start$0===end$0)||(start$0==="eval"))){return x$1;}else{if((ph$0$0==="source")){return __at___$5.go(__at___$5.parse(x$1),"parse",end$0);}else{if((ph$0$0==="parse")){return __at___$5.go(__at___$5.expand(x$1),"expand",end$0);}else{if((ph$0$0==="expand")){return __at___$5.go(__at___$5.translate(x$1),"translate",end$0);}else{if((ph$0$0==="translate")){return __at___$5.go(__at___$5.evaluate(x$1),"eval",end$0);}else{throw ErrorFactory(["pipeline"]).create(("Unknown pipeline stage: "+start$0));}}}}}}));__amp____colon__(Pipeline$0,__amp____colon__((($targ$3="Pipeline"),(accum$0=({})),(accum$0["::name"]=$targ$3),accum$0),(($targ$4=true),(accum$1=({})),(accum$1["::egclass"]=$targ$4),accum$1)));collapse$0=(function collapse(temp$2$0){let t0$2;let acc$0;let parts$0;let t$1;let s$1;let tags$0;let props$0;let children$0;let $$363$0;let t0$3;let node$0;let ph$1$0;t0$2=temp$2$0;node$0=t0$2;ph$1$0=t0$2;t0$3=ph$1$0;if((getChecker(ENode)(t0$3)&&(___hasprop(t0$3,"tags")&&((tags$0=t0$3.tags),(___hasprop(t0$3,"props")&&((props$0=t0$3.props),___hasprop(t0$3,"children"))))))){children$0=t0$3.children;parts$0=[];acc$0=(function acc(ph$2$0){let m$1;let acc$1;let temp$3;let n$0;let xs$0$0;let s$0;let $$397$0;let t0$4;t0$4=ph$2$0;if((typeof(t0$4)==="string")){s$0=t0$4;return parts$0.push(s$0);}else{if(Array.isArray(t0$4)){xs$0$0=t0$4;acc$1=[];temp$3=null;m$1=null;$12:for(m$1 of xs$0$0){let x$2;x$2=m$1;temp$3=acc$0(x$2);acc$1.push(temp$3);}return acc$1;}else{if(getChecker(ENode)(t0$4)){n$0=t0$4;return parts$0.push(collapse$0(n$0));}else{return ___match_error(ph$2$0,"ENode? n");}}}});acc$0(children$0);return parts$0.join("");}else{if((typeof(t0$3)==="string")){s$1=t0$3;return s$1;}else{t$1=node$0;console.log(t$1);throw ErrorFactory(["invalid_translation_node"]).create(node$0);}}});makeAnnotatedAST$0=(function makeAnnotatedAST(temp$4$0){let t0$5;let acc$2;let t0$8;let t1$0;let t2$0;let t3$0;let loc$0;let $targ$5;let l$0;let c$0;let src$1;let rval$1;let parts$1;let t$2;let s$3;let tags$1;let props$1;let children$1;let $$460$0;let t0$6;let node$1;let ph$3$0;t0$5=temp$4$0;node$1=t0$5;ph$3$0=t0$5;t0$6=ph$3$0;if((getChecker(ENode)(t0$6)&&(___hasprop(t0$6,"tags")&&((tags$1=t0$6.tags),(___hasprop(t0$6,"props")&&((props$1=t0$6.props),___hasprop(t0$6,"children"))))))){children$1=t0$6.children;parts$1=[];acc$2=(function acc(ph$4$0){let m$2;let acc$3;let temp$5;let n$1;let xs$1$0;let s$2;let $$494$0;let t0$7;t0$7=ph$4$0;if((typeof(t0$7)==="string")){s$2=t0$7;return parts$1.push(s$2);}else{if(Array.isArray(t0$7)){xs$1$0=t0$7;acc$3=[];temp$5=null;m$2=null;$13:for(m$2 of xs$1$0){let x$3;x$3=m$2;temp$5=acc$2(x$3);acc$3.push(temp$5);}return acc$3;}else{if(getChecker(ENode)(t0$7)){n$1=t0$7;return parts$1.push(makeAnnotatedAST$0(n$1));}else{return ___match_error(ph$4$0,"ENode? n");}}}});acc$2(children$1);if((props$1.origin&&props$1.origin.location)){loc$0=props$1.origin.location;$targ$5=loc$0.linecol();t0$8=$targ$5;if((Array.isArray(t0$8)&&((t1$0=t0$8.length),((t1$0===2)&&((t2$0=t0$8[0]),(Array.isArray(t2$0)&&((t3$0=t2$0.length),(t3$0===2)))))))){l$0=t2$0[0];c$0=t2$0[1];t0$8[1];}else{___match_error($targ$5,"{{var l, var c}, _}");}[l$0,c$0];src$1=loc$0.source.url;rval$1=(new SourceNode$0(l$0,c$0,(src$1||"<unknown>"),parts$1));return rval$1;}else{return parts$1;}}else{if((typeof(t0$6)==="string")){s$3=t0$6;return s$3;}else{t$2=node$1;console.log(t$2);throw ErrorFactory(["invalid_translation_node"]).create(node$1);}}});toCodeAndSourceMap$0=(function toCodeAndSourceMap(node$2,url$1){let ast$2;let obj$0;ast$2=makeAnnotatedAST$0(node$2);if((!getChecker(SourceNode$0)(ast$2))){ast$2=(new SourceNode$0(1,0,null,ast$2));ast$2;}obj$0=ast$2.toStringWithSourceMap(({"file":url$1}));return obj$0;});Generator$0=(function Generator(){let $targ$12;let m$4;let $targ$13;let m$5$0;let $14$0;let install$0;let $targ$6;let $targ$7;let $targ$8;let $targ$9;let use__minus__es6$0;let $targ$10;let $targ$11;let t0$9;let m$3$0;let __at___$6;if((!getChecker(Generator$0)(this))){__at___$6=Object.create(Generator$0.prototype);}else{__at___$6=this;}m$3$0=arguments;t0$9=m$3$0.length;if(((t0$9>=0)&&(t0$9<=1))){(__at___$6["opts"]=((0>=t0$9)?({}):m$3$0[0]));if((__at___$6.opts.runtime===undefined)){$targ$12="earlgrey-runtime";(__at___$6.opts["runtime"]=$targ$12);(void 0);}$14$0=require("./register");install$0=getProperty($14$0,"install","./register")(__at___$6.opts);$targ$6=Translator$0(null,__at___$6.opts.globvar);(__at___$6["tr"]=$targ$6);$targ$7=std$0.stdenv.fork();(__at___$6["env"]=$targ$7);m$4=null;$15:for(m$4 of items((__at___$6.opts.parameters||({})))){let k$0;let v$0;let t0$10;let t1$1;t0$10=m$4;if((Array.isArray(t0$10)&&((t1$1=t0$10.length),(t1$1===2)))){k$0=t0$10[0];v$0=t0$10[1];__at___$6.env.setopt(exp$0.topscope,k$0,v$0);}else{___match_error(m$4);}}$targ$8=__at___$6.opts.interactive;(__at___$6["interactive"]=$targ$8);if(__at___$6.interactive){$targ$13=null;(__at___$6.opts["runtime"]=$targ$13);(void 0);}$targ$9=null;(__at___$6["_eval"]=$targ$9);m$5$0=process.title;if((m$5$0==="node")){use__minus__es6$0=(parseInt(process.version.split(".")[0].slice(1))>=4);}else{if((m$5$0==="iojs")){use__minus__es6$0=true;}else{use__minus__es6$0=false;}}$targ$10=Pipeline$0(__amp__(({"es5":(!use__minus__es6$0)}),__at___$6.opts));(__at___$6["pipeline"]=$targ$10);$targ$11=std$0.make_expander(__at___$6.pipeline);(__at___$6["expander"]=$targ$11);(void 0);}else{___match_error(m$3$0,"{@opts = {=}}");}return __at___$6;});(Generator$0.prototype["generateInteractive"]=(function generateInteractive(){let t0$12;let t1$2;let t2$1;let $targ$14;let args$0;let stmt$0;let body$2;let vars$0;let body$1;let t0$13;let m$7$0;let rt$1;let rt$0;let m$8$0;let t$3;let p$0;let ex$0;let wrap$0;let result$0;let source$1;let opts$1;let t0$11;let m$6$0;let __at___$7;let self$5;__at___$7=this;self$5=this;m$6$0=arguments;t0$11=m$6$0.length;if(((t0$11>=1)&&(t0$11<=2))){source$1=m$6$0[0];if((1>=t0$11)){opts$1=({});}else{opts$1=m$6$0[1];}opts$1=__amp__(__at___$7.opts,opts$1);t$3=tokenize$0(source$1);p$0=parse$0(t$3);if(__at___$7.interactive){$targ$14=p$0;t0$12=getProjector(Body$0)($targ$14);if((t0$12[0]&&((t1$2=t0$12[1]),(t2$1=t1$2.length),(t2$1>=0)))){args$0=Array.prototype.slice.call(t1$2,0);}else{___match_error($targ$14,"Body! {*args}");}stmt$0=["interactive"].concat(args$0);}else{stmt$0=["multi",p$0];}ex$0=__at___$7.expander.expand(["top"],(opts$1.scope||exp$0.topscope),__at___$7.env.mark(stmt$0));wrap$0=(function wrap(body$0){return ["send",["variable","spawn"],["array",["lambda",[],body$0,["value",true]]]];});m$7$0=ex$0;if((Array.isArray(m$7$0)&&((t0$13=m$7$0.length),((t0$13===3)&&(m$7$0[0]==="scope"))))){vars$0=m$7$0[1];body$1=m$7$0[2];ex$0=["scope",vars$0,wrap$0(body$1)];}else{body$2=m$7$0;ex$0=wrap$0(body$2);}ex$0=opt$0.hoist(ex$0);result$0=__at___$7.tr.translate(ex$0,"stmt");result$0=ENode(["splice"],({}),["\n'use strict';",((m$8$0=opts$1.runtime),((m$8$0===null)?"":((rt$0=m$8$0),(opts$1["es5"]?(("require('"+rt$0)+"/5');"):((rt$1=m$8$0),(("require('"+rt$1)+"/6');")))))),result$0]);result$0=collapse$0(result$0);if(opts$1["es5"]){result$0=es5Transform$0(result$0,({})).code;result$0;}return result$0;}else{return ___match_error(m$6$0,"{source, var opts = {=}}");}}));(Generator$0.prototype["generate"]=(function generate(){let t0$15;let t1$3;let t2$2;let $targ$15;let args$1;let stmt$1;let rt$3;let rt$2;let m$10$0;let t0$16;let $targ$16;let code$0;let map$0;let newmap$0;let parts$2;let smname$0;let m$11$0;let t$4;let p$1;let ex$1;let result$1;let source$2;let opts$2;let t0$14;let m$9$0;let __at___$8;let self$6;__at___$8=this;self$6=this;m$9$0=arguments;t0$14=m$9$0.length;if(((t0$14>=1)&&(t0$14<=2))){source$2=m$9$0[0];if((1>=t0$14)){opts$2=({});}else{opts$2=m$9$0[1];}opts$2=__amp__(__at___$8.opts,opts$2);t$4=tokenize$0(source$2);p$1=parse$0(t$4);if(__at___$8.interactive){$targ$15=p$1;t0$15=getProjector(Body$0)($targ$15);if((t0$15[0]&&((t1$3=t0$15[1]),(t2$2=t1$3.length),(t2$2>=0)))){args$1=Array.prototype.slice.call(t1$3,0);}else{___match_error($targ$15,"Body! {*args}");}stmt$1=["interactive"].concat(args$1);}else{stmt$1=["multi",p$1];}ex$1=__at___$8.expander.expand(["top"],(opts$2.scope||exp$0.topscope),__at___$8.env.mark(stmt$1));ex$1=opt$0.hoist(ex$1);result$1=__at___$8.tr.translate(ex$1,"stmt");result$1=ENode(["splice"],({}),["\n'use strict';",((m$10$0=opts$2.runtime),((m$10$0===null)?"":((rt$2=m$10$0),(opts$2["es5"]?(("require('"+rt$2)+"/5');"):((rt$3=m$10$0),(("require('"+rt$3)+"/6');")))))),__at___$8.tr.dump_store(),result$1]);if((!opts$2.sourceMap)){result$1=collapse$0(result$1);if(opts$2["es5"]){result$1=es5Transform$0(result$1,({})).code;result$1;}return ({"code":result$1,"map":null});}else{result$1=toCodeAndSourceMap$0(result$1,source$2.url);if(opts$2["es5"]){$targ$16=es5Transform$0(result$1.code,({"sourceMaps":true}));t0$16=$targ$16;if((___hasprop(t0$16,"code")&&((code$0=t0$16.code),___hasprop(t0$16,"map")))){map$0=t0$16.map;}else{___match_error($targ$16,"{=> code, => map}");}[code$0,map$0];newmap$0=transfer$0(({"fromSourceMap":map$0,"toSourceMap":result$1.map.toString()}));result$1=({"code":code$0,"map":newmap$0});result$1;}m$11$0=opts$2.sourceMap;if((m$11$0==="inline")){return ((((result$1.code+"\n/")+"/# sourceMappingURL=data:application/json;base64,")+(new Buffer(result$1.map.toString()).toString("base64")))+".map\n");}else{if((m$11$0==="compute")){return result$1;}else{parts$2=source$2.url.split("/");smname$0=send(parts$2,(parts$2.length-1)).replace(RegExp(".eg$",""),".js");(result$1["code"]=(result$1.code+((("\n/"+"/# sourceMappingURL=")+smname$0)+".map\n")));return result$1;}}}}else{return ___match_error(m$9$0,"{source, var opts = {=}}");}}));(Generator$0.prototype["getEval"]=(function getEval(file$0){let $targ$17;let __at___$9;let self$7;__at___$9=this;self$7=this;if((!__at___$9._eval)){$targ$17=evaluator$0(({"globvar":__at___$9.tr.globvar,"global":null,"filename":file$0,"showname":file$0,"cwd":file$0}));(__at___$9["_eval"]=$targ$17);(void 0);}return __at___$9._eval;}));(Generator$0.prototype["evaluate"]=(function evaluate(source$3){let __at___$10;let self$8;__at___$10=this;self$8=this;return __at___$10.getEval(source$3.url)(__at___$10.generate(source$3,({"runtime":null})).code);}));(Generator$0.prototype["evaluateInteractive"]=(function evaluateInteractive(){let source$4;let opts$3;let t0$17;let m$12$0;let __at___$11;let self$9;__at___$11=this;self$9=this;m$12$0=arguments;t0$17=m$12$0.length;if(((t0$17>=1)&&(t0$17<=2))){source$4=m$12$0[0];if((1>=t0$17)){opts$3=({});}else{opts$3=m$12$0[1];}return __at___$11.getEval(source$4.url)(__at___$11.generateInteractive(source$4,__amp__(opts$3,({"runtime":null}))));}else{return ___match_error(m$12$0,"{source, opts = {=}}");}}));__amp____colon__(Generator$0,__amp____colon__((($targ$18="Generator"),(accum$2=({})),(accum$2["::name"]=$targ$18),accum$2),(($targ$19=true),(accum$3=({})),(accum$3["::egclass"]=$targ$19),accum$3)));compile$0=(function compile(){let source$5;let ph$6$0;let options$0;let t0$18;let t1$4;let m$13$0;m$13$0=arguments;t0$18=m$13$0.length;if(((t0$18>=1)&&(t0$18<=2))){t1$4=m$13$0[0];source$5=t1$4;ph$6$0=t1$4;if((1>=t0$18)){options$0=({});}else{options$0=m$13$0[1];}if((typeof(ph$6$0)==="string")){return Generator$0(options$0).generate(Source$0(source$5,(options$0.path||"<file>")));}else{if(getChecker(Source$0)(ph$6$0)){return Generator$0(options$0).generate(source$5);}else{return ___match_error(ph$6$0,"Source? ");}}}else{return ___match_error(m$13$0,"{match source, options = {=}}");}});$targ$20=evaluator$0;(exports["evaluator"]=$targ$20);$targ$21=Source$0;(exports["Source"]=$targ$21);$targ$22=Location$0;(exports["Location"]=$targ$22);$targ$23=highlight_locations$0;(exports["highlight_locations"]=$targ$23);$targ$24=tokenize$0;(exports["tokenize"]=$targ$24);$targ$25=parse$0;(exports["parse"]=$targ$25);$targ$26=Generator$0;(exports["Generator"]=$targ$26);$targ$27=version$0;(exports["version"]=$targ$27);$targ$28=compile$0;(exports["compile"]=$targ$28);(void 0); //# sourceMappingURL=earl-grey.js.map