earlgrey
Version:
Programming language compiling to JavaScript, featuring macros, dynamic typing annotations and pattern matching.
5 lines (2 loc) • 34.1 kB
JavaScript
'use strict';require('earlgrey-runtime/6');let $targ$1;let $targ$0;let $0$0;let camelCase$0;let $1$0;let __lt____lt____colon__$0;let $2$0;let expr_mac$0;let pattern_handlers$0;let ctx_mac$0;let named_statement_matcher$0;let flatmacro$0;let match_error$0;let Body$0;let AssignmentHandler$0;let $3$0;let PatternCompiler$0;let parse_clauses$0;$0$0=require("../util");camelCase$0=getProperty($0$0,"camelCase","../util");$1$0=require("../location");__lt____lt____colon__$0=getProperty($1$0,"<<:","../location");$2$0=require("./helpers");expr_mac$0=getProperty($2$0,"expr_mac","./helpers");pattern_handlers$0=getProperty($2$0,"pattern_handlers","./helpers");ctx_mac$0=getProperty($2$0,"ctx_mac","./helpers");named_statement_matcher$0=getProperty($2$0,"named_statement_matcher","./helpers");flatmacro$0=getProperty($2$0,"flatmacro","./helpers");match_error$0=getProperty($2$0,"match_error","./helpers");Body$0=getProperty($2$0,"Body","./helpers");AssignmentHandler$0=getProperty($2$0,"AssignmentHandler","./helpers");$3$0=require("../pattern");PatternCompiler$0=getProperty($3$0,"PatternCompiler","../pattern");parse_clauses$0=getProperty($3$0,"parse_clauses","../pattern");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$4;let t0$7;let t1$4;let t0$9;let t0$11;let t0$14;let t0$16;let t0$24;let t0$29;let t0$39;let t0$41;let t0$44;let t0$47;let _catch$0;let _finally$0;let t0$55;let t0$58;let t0$59;let t1$33;let t0$60;let t0$63;let t0$64;let t1$34;let t0$67;let t0$69;let t0$74;let t0$76;let $targ$2;let var_mac$0;let $targ$3;let setvar_mac$0;let $targ$4;let let_mac$0;let $targ$5;let letrec_mac$0;let $targ$6;let where_mac$0;let $targ$7;let rawsym_mac$0;let $targ$8;let dot_mac$0;let $targ$9;let as_mac$0;let $targ$10;let equal_mac$0;let $targ$11;let fat_arrow_mac$0;let $targ$12;let _lambda_mac$0;let $targ$13;let genarrow_mac$0;let $targ$14;let metharrow_mac$0;let $targ$15;let arrow_mac$0;let try_pattern$0;let $targ$16;let try_mac$0;let $targ$17;let tryop_mac$0;let $targ$18;let throw_mac$0;let $targ$19;let exprvalue_mac$0;let $targ$20;let return_mac$0;let $targ$21;let new_mac$0;let $targ$22;let delete_mac$0;let $targ$23;let splice_mac$0;let $targ$24;let hash_mac$0;let $targ$25;let placeholder_mac$0;let exports$0;exports$0=({});$targ$2=(function(temp$0$0,temp$1$0,form$0,argument$0){let x$0;if(((x$0=temp$0$0),((x$0 instanceof Array)&&(x$0[0]==="pattern")))){}else{___match_error(temp$0$0);}return ["mode","var",argument$0];});t0$0=getProjector(mac$0("var"))($targ$2);if(t0$0[0]){var_mac$0=t0$0[1];}else{___match_error($targ$2,"mac{\"var\"}! var_mac{#pattern, _, form, argument}");}$targ$3=(function(temp$2$0,temp$3$0,form$1,argument$1){let x$1;if(((x$1=temp$2$0),((x$1 instanceof Array)&&(x$1[0]==="pattern")))){}else{___match_error(temp$2$0);}return ["mode","set",argument$1];});t0$1=getProjector(mac$0("set-var"))($targ$3);if(t0$1[0]){setvar_mac$0=t0$1[1];}else{___match_error($targ$3,"mac{\"set-var\"}! setvar_mac{#pattern, _, form, argument}");}$targ$4=(function(ph$0$0,temp$4$0,form$2,argument$2){let x$2;let construct$0;let bindings$0;let body$0;let t0$2;let t1$0;let t2$0;let t3$0;let m$0$0;let other$0;if(((x$2=ph$0$0),((x$2 instanceof Array)&&(x$2[0]==="pattern")))){return ["mode","let",argument$2];}else{other$0=ph$0$0;m$0$0=argument$2;if((Array.isArray(m$0$0)&&((t0$2=m$0$0.length),((t0$2===3)&&((m$0$0[0]==="data")&&((t1$0=getProjector(Body$0)(m$0$0[1])),(t1$0[0]&&((t2$0=t1$0[1]),(t3$0=t2$0.length),(t3$0>=0))))))))){bindings$0=Array.prototype.slice.call(t2$0,0);body$0=m$0$0[2];construct$0=(function construct(ph$1$0){let bind$0;let val$0;let xs$0;let $$7224$0;let $$7225$0;let t0$3;let t1$1;let t2$1;let t3$1;let t4$0;let t5$0;let t6$0;let t7$0;t0$3=ph$1$0;t1$1=t0$3.length;if((t1$1===0)){return body$0;}else{if(((t1$1>=1)&&((t2$1=t0$3[0]),(Array.isArray(t2$1)&&((t3$1=t2$1.length),((t3$1===3)&&((t2$1[0]==="send")&&((t4$0=t2$1[1]),(Array.isArray(t4$0)&&((t5$0=t4$0.length),((t5$0===2)&&((t4$0[0]==="symbol")&&((t4$0[1]==="=")&&((t6$0=t2$1[2]),(Array.isArray(t6$0)&&((t7$0=t6$0.length),((t7$0===3)&&(t6$0[0]==="data")))))))))))))))))){bind$0=t6$0[1];val$0=t6$0[2];xs$0=Array.prototype.slice.call(t0$3,1);return __amp__(["multi",["send",["symbol","="],["data",["send",["symbol","let"],bind$0],val$0]],construct$0(xs$0)],({"nonrecursive":true}));}else{return ___match_error(ph$1$0,"{`^bind = ^val`, *xs}");}}});return construct$0(bindings$0);}else{return ___match_error(m$0$0,"#data{Body! {*bindings}, body}");}}});t0$4=getProjector(mac$0("let"))($targ$4);if(t0$4[0]){let_mac$0=t0$4[1];}else{___match_error($targ$4,"mac{\"let\"}! let_mac{match, _, form, argument}");}$targ$5=(function(temp$5$0,form$3,temp$6$0){let t0$5;let t1$2;let t2$2;let t3$2;let t4$1;let m$1;let acc$0;let temp$7;let let_bindings$0;let bindings$1;let body$1;t0$5=temp$6$0;if((Array.isArray(t0$5)&&((t1$2=t0$5.length),((t1$2===3)&&((t0$5[0]==="data")&&((t2$2=getProjector(Body$0)(t0$5[1])),(t2$2[0]&&((t3$2=t2$2[1]),(t4$1=t3$2.length),(t4$1>=0))))))))){bindings$1=Array.prototype.slice.call(t3$2,0);body$1=t0$5[2];}else{___match_error(temp$6$0);}acc$0=[];temp$7=null;m$1=null;$4:for(m$1 of bindings$1){let b$0;let v$0;let t0$6;let t1$3;let t2$3;let t3$3;let t4$2;let t5$1;t0$6=m$1;if((Array.isArray(t0$6)&&((t1$3=t0$6.length),((t1$3===3)&&((t0$6[0]==="send")&&((t2$3=t0$6[1]),(Array.isArray(t2$3)&&((t3$3=t2$3.length),((t3$3===2)&&((t2$3[0]==="symbol")&&((t2$3[1]==="=")&&((t4$2=t0$6[2]),(Array.isArray(t4$2)&&((t5$1=t4$2.length),((t5$1===3)&&(t4$2[0]==="data")))))))))))))))){b$0=t4$2[1];v$0=t4$2[2];temp$7=["send",["symbol","="],["data",["send",["symbol","let"],b$0],v$0]];acc$0.push(temp$7);}else{___match_error(m$1);}}let_bindings$0=acc$0;return ["multi"].concat(let_bindings$0).concat([body$1]);});t0$7=getProjector(expr_mac$0)($targ$5);if((t0$7[0]&&((t1$4=getProjector(mac$0("letrec"))(t0$7[1])),t1$4[0]))){letrec_mac$0=t1$4[1];}else{___match_error($targ$5,"expr_mac! mac{\"letrec\"}! letrec_mac{_, form, #data{Body! {*bindings}, body}}");}$targ$6=(function(context$0,temp$8$0,form$4,temp$9$0){let t0$8;let t1$5;let body$2;let bindings$2;t0$8=temp$9$0;if((Array.isArray(t0$8)&&((t1$5=t0$8.length),((t1$5===3)&&(t0$8[0]==="data"))))){body$2=t0$8[1];bindings$2=t0$8[2];}else{___match_error(temp$9$0);}return ["send",["symbol","letrec"],["data",bindings$2,body$2]];});t0$9=getProjector(mac$0("where"))($targ$6);if(t0$9[0]){where_mac$0=t0$9[1];}else{___match_error($targ$6,"mac{\"where\"}! where_mac{context, _, form, #data{body, bindings}}");}$targ$7=(function(context$1,info$0,form$5,temp$10$0){let t0$10;let t1$6;let t2$4;let t3$4;let sym$0;let name$0;t0$10=temp$10$0;if((Array.isArray(t0$10)&&((t1$6=t0$10.length),((t1$6===2)&&((t0$10[0]==="data")&&((t2$4=t0$10[1]),(sym$0=t2$4),(Array.isArray(t2$4)&&((t3$4=t2$4.length),((t3$4===2)&&(t2$4[0]==="symbol")))))))))){name$0=t2$4[1];}else{___match_error(temp$10$0);}return sym$0.env.mark(["raw-symbol",name$0]);});t0$11=getProjector(mac$0("raw-symbol"))($targ$7);if(t0$11[0]){rawsym_mac$0=t0$11[1];}else{___match_error($targ$7,"mac{\"raw-symbol\"}! rawsym_mac{context, info, form, #data{sym and #symbol{name}}}");}$targ$8=(function(context$2,temp$11$0,form$6,temp$12$0){let t0$12;let t1$7;let t2$5;let t3$5;let f$0;let expr$0;t0$12=temp$12$0;if((Array.isArray(t0$12)&&((t1$7=t0$12.length),((t1$7===3)&&((t0$12[0]==="data")&&((t2$5=t0$12[1]),(Array.isArray(t2$5)&&((t3$5=t2$5.length),((t3$5===1)&&(t2$5[0]==="void")))))))))){expr$0=t0$12[2];}else{___match_error(temp$12$0);}f$0=(function f(ph$2$0){let m$2;let acc$1;let temp$13;let other$1;let args$0;let x$3;let $$7494$0;let $$7495$0;let t0$13;let t1$8;let t2$6;t0$13=ph$2$0;t1$8=t0$13.length;if(((t1$8===2)&&((t0$13[0]==="symbol")&&((t2$6=getProjector(camelCase$0)(t0$13[1])),t2$6[0])))){x$3=t2$6[1];return ["value",x$3];}else{if(((t1$8>=1)&&(t0$13[0]==="data"))){args$0=Array.prototype.slice.call(t0$13,1);return ["data"].concat(((acc$1=[]),(temp$13=null),(m$2=null),(function(){$5:for(m$2 of args$0){let arg$0;arg$0=m$2;temp$13=f$0(arg$0);acc$1.push(temp$13);}})(),acc$1));}else{other$1=ph$2$0;throw ErrorFactory(["syntax","dot"]).create("Argument to '.' must be a symbol or an array",({"argument":other$1}));}}});return f$0(expr$0);});t0$14=getProjector(mac$0("."))($targ$8);if(t0$14[0]){dot_mac$0=t0$14[1];}else{___match_error($targ$8,"mac{\".\"}! dot_mac{context, _, form, #data{#void{}, expr}}");}$targ$9=(function(ctx$0,info$1,form$7,temp$14$0){let t0$15;let t1$9;let rhs$0;let lhs$0;t0$15=temp$14$0;if((Array.isArray(t0$15)&&((t1$9=t0$15.length),((t1$9===3)&&(t0$15[0]==="data"))))){rhs$0=t0$15[1];lhs$0=t0$15[2];}else{___match_error(temp$14$0);}return ["send",["symbol","="],["data",lhs$0,rhs$0]];});t0$16=getProjector(mac$0("as"))($targ$9);if(t0$16[0]){as_mac$0=t0$16[1];}else{___match_error($targ$9,"mac{\"as\"}! as_mac{ctx, info, form, #data{rhs, lhs}}");}$targ$10=(function(ph$3$0,info$2,form$8,expr$1){let x$4;let t0$18;let t1$11;let $targ$26;let lhs$1;let rhs$1;let t0$20;let t1$13;let t2$8;let t3$6;let t4$3;let t0$21;let t1$14;let t2$9;let t3$7;let t4$4;let opt$0;let rhs2$0;let lhs$2;let rhs$3;let s$1;let rhs$2;let x$5;let s$0;let $$7625$0;let $$7626$0;let $$7627$0;let $$7628$0;let t0$19;let bridge$$7622$0;let t1$12;let t2$7;let m$3$0;let opt$1;let rhs2$1;let vs$0;let v$1;let $$7782$0;let $$7783$0;let t0$23;let m$5$0;let expr$2;let pc$0;let assignment$0;let rval$0;let lhs$3;let rhs$4;let t0$22;let m$4$0;let other$2;let t0$17;let t1$10;if(((x$4=ph$3$0),((x$4 instanceof Array)&&(x$4[0]==="pattern")))){$targ$26=expr$1;t0$18=$targ$26;if((Array.isArray(t0$18)&&((t1$11=t0$18.length),((t1$11===3)&&(t0$18[0]==="data"))))){lhs$1=t0$18[1];rhs$1=t0$18[2];}else{___match_error($targ$26,"#data{lhs, rhs}");}[lhs$1,rhs$1];return ["default",lhs$1,rhs$1];}else{t0$17=ph$3$0;t1$10=t0$17.length;if(((t1$10===2)&&((t0$17[0]==="expr")&&(t0$17[1]==="data")))){m$3$0=expr$1;if((Array.isArray(m$3$0)&&((t0$19=m$3$0.length),((t0$19===1)&&(m$3$0[0]==="void"))))){return ["assoc"];}else{bridge$$7622$0=m$3$0;if(((Array.isArray(bridge$$7622$0)&&((t0$20=bridge$$7622$0.length),((t0$20===3)&&((bridge$$7622$0[0]==="data")&&((t1$13=bridge$$7622$0[1]),(x$5=t1$13),(Array.isArray(t1$13)&&((t2$8=t1$13.length),((t2$8===2)&&((t1$13[0]==="symbol")&&((s$0=t1$13[1]),(t3$6=bridge$$7622$0[2]),(Array.isArray(t3$6)&&((t4$3=t3$6.length),((t4$3===1)&&(t3$6[0]==="void"))))))))))))))||(Array.isArray(bridge$$7622$0)&&((t0$21=bridge$$7622$0.length),((t0$21===3)&&((bridge$$7622$0[0]==="data")&&((t1$14=bridge$$7622$0[1]),(Array.isArray(t1$14)&&((t2$9=t1$14.length),((t2$9===1)&&((t1$14[0]==="void")&&((t3$7=bridge$$7622$0[2]),(x$5=t3$7),(Array.isArray(t3$7)&&((t4$4=t3$7.length),((t4$4===2)&&((t3$7[0]==="symbol")&&((s$0=t3$7[1]),true))))))))))))))))){return ["assoc",["value",camelCase$0(s$0)],x$5];}else{if((($$7625$0=Array.isArray(m$3$0))&&((t0$19=m$3$0.length),(($$7627$0=(t0$19===3))&&(($$7628$0=(m$3$0[0]==="data"))&&((t1$12=m$3$0[1]),(Array.isArray(t1$12)&&((t2$7=t1$12.length),((t2$7===2)&&(t1$12[0]==="symbol")))))))))){s$1=t1$12[1];rhs$2=m$3$0[2];return ["assoc",["value",camelCase$0(s$1)],rhs$2];}else{if($$7628$0){lhs$2=m$3$0[1];rhs$3=m$3$0[2];return ["objsplice",["multi",((opt$0=pattern_handlers$0.build_object),(rhs2$0=__lt____lt____colon__$0(["use",info$2.scope,rhs$3],rhs$3)),PatternCompiler$0(lhs$2,info$2,opt$0).extract_from_rhs(rhs2$0))]];}else{return ___match_error(m$3$0,"#data{lhs, rhs}");}}}}}else{other$2=ph$3$0;m$4$0=expr$1;if((Array.isArray(m$4$0)&&((t0$22=m$4$0.length),((t0$22===3)&&(m$4$0[0]==="data"))))){lhs$3=m$4$0[1];rhs$4=m$4$0[2];opt$1=pattern_handlers$0.declare_variables;pc$0=PatternCompiler$0(lhs$3,info$2,opt$1);rhs2$1=__lt____lt____colon__$0(["use",info$2.scope,rhs$4],rhs$4);assignment$0=pc$0.extract_from_rhs(rhs2$1);m$5$0=pc$0.vars;if((($$7782$0=Array.isArray(m$5$0))&&((t0$23=m$5$0.length),(t0$23===0)))){rval$0=["value",undefined];}else{if(($$7782$0&&(t0$23===1))){v$1=m$5$0[0];rval$0=v$1;}else{vs$0=m$5$0;rval$0=["data"].concat(vs$0);}}expr$2=["splice",assignment$0,rval$0];return pc$0.wrapAssignment(expr$2);}else{return ___match_error(m$4$0,"#data{lhs, rhs}");}}}});t0$24=getProjector(mac$0("="))($targ$10);if(t0$24[0]){equal_mac$0=t0$24[1];}else{___match_error($targ$10,"mac{\"=\"}! equal_mac{match, info, form, expr}");}$targ$11=(function(ph$4$0,temp$15$0,temp$16$0,temp$17$0){let t0$25;let t0$26;let t1$15;let x$6;let x$7;let rhs$6;let t0$27;let m$6$0;let x$8;let t0$28;let t1$16;let t2$10;let $targ$27;let stmts$0;let other$3;let env$0;let lhs$4;let rhs$5;t0$25=temp$15$0;if(___hasprop(t0$25,"env")){env$0=t0$25.env;}else{___match_error(temp$15$0);}t0$26=temp$17$0;if((Array.isArray(t0$26)&&((t1$15=t0$26.length),((t1$15===3)&&(t0$26[0]==="data"))))){lhs$4=t0$26[1];rhs$5=t0$26[2];}else{___match_error(temp$17$0);}if(((x$6=ph$4$0),((x$6 instanceof Array)&&(x$6[0]==="pattern")))){m$6$0=[lhs$4,rhs$5];if((Array.isArray(m$6$0)&&((t0$27=m$6$0.length),((t0$27===2)&&((x$7=m$6$0[0]),((x$7 instanceof Array)&&(x$7[0]==="void"))))))){rhs$6=m$6$0[1];return ["assoc",rhs$6];}else{return ["assoc",lhs$4,rhs$5];}}else{if(((x$8=ph$4$0),((x$8 instanceof Array)&&(x$8[0]==="test")))){$targ$27=rhs$5;t0$28=getProjector(Body$0)($targ$27);if((t0$28[0]&&((t1$16=t0$28[1]),(t2$10=t1$16.length),(t2$10>=0)))){stmts$0=Array.prototype.slice.call(t1$16,0);}else{___match_error($targ$27,"Body! {*stmts}");}return ["blocktest",lhs$4,stmts$0];}else{other$3=ph$4$0;return ["assoc",lhs$4,rhs$5];}}});t0$29=getProjector(mac$0("=>"))($targ$11);if(t0$29[0]){fat_arrow_mac$0=t0$29[1];}else{___match_error($targ$11,"mac{\"=>\"}! fat_arrow_mac{match, {=> env}, _, #data{lhs, rhs}}");}$targ$12=(function(context$3,info$3,form$9,ph$5$0){let t0$31;let t0$32;let bridge$$7926$0;let t0$33;let bridge$$7925$0;let accum$0;let m$8;let acc$2;let temp$18;let decls$0;let newargs$0;let _body$0;let x$9;let body2$1;let newp$0;let body2$2;let a$0;let pc2$1;let body2$3;let a$1;let other$5;let fw$1;let bw$0;let defaults$0;let rest$0;let objp$1;let i$0;let objp$0;let fw$0;let t0$34;let t1$18;let t2$11;let t3$8;let t4$5;let m$7$0;let wrap$0;let pc$1;let cpattern$0;let arg$1;let args$1;let pre$0;let body$3;let post$0;let generator$0;let t0$30;let t1$17;let bridge$$7924$0;t0$30=ph$5$0;t1$17=t0$30.length;if((((t1$17>=5)&&(t1$17<=6))&&((t0$30[0]==="data")&&((bridge$$7924$0=t0$30[1]),(((bridge$$7925$0=bridge$$7924$0),(((bridge$$7926$0=bridge$$7925$0),(((arg$1=bridge$$7926$0),(Array.isArray(bridge$$7926$0)&&((t0$31=bridge$$7926$0.length),((t0$31>=1)&&((bridge$$7926$0[0]==="data")&&((args$1=Array.prototype.slice.call(bridge$$7926$0,1)),true))))))||(Array.isArray(bridge$$7926$0)&&((t0$32=bridge$$7926$0.length),((t0$32>=1)&&((bridge$$7926$0[0]==="multi")&&((args$1=Array.prototype.slice.call(bridge$$7926$0,1)),(arg$1=["data"].concat(args$1)),true)))))))||(Array.isArray(bridge$$7925$0)&&((t0$33=bridge$$7925$0.length),((t0$33===1)&&((bridge$$7925$0[0]==="void")&&((args$1=[]),(arg$1=["data"]),true)))))))||((arg$1=["data",arg$1]),(args$1=[arg$1]),true)))))){pre$0=t0$30[2];body$3=t0$30[3];post$0=t0$30[4];if((5>=t1$17)){generator$0=["value",false];}else{generator$0=t0$30[5];}wrap$0=(function wrap(body2$0){let body3$0;if(equal(post$0,["value",null])){body3$0=body2$0;}else{body3$0=["multi",body2$0,post$0];}if(equal(pre$0,["value",null])){return body3$0;}else{return ["multi",pre$0,body3$0];}});pc$1=PatternCompiler$0(arg$1,info$3,__amp__(pattern_handlers$0.declare_variables,__amp____colon__(({"indexable":true,"allow_nested":true}),__amp____colon__(((accum$0=({})),(accum$0["fallback"]=(function fallback(target$0,pattern$0){return match_error$0(target$0,pattern$0);})),accum$0),({"tags":({"declare_mode":"let"}),"insert_object_argument":true})))));cpattern$0=pc$1.compile();m$7$0=cpattern$0;if((Array.isArray(m$7$0)&&((t0$34=m$7$0.length),((t0$34===5)&&((m$7$0[0]==="array_pattern")&&((fw$0=m$7$0[1]),(t1$18=m$7$0[2]),(Array.isArray(t1$18)&&((t2$11=t1$18.length),((t2$11===0)&&((t3$8=m$7$0[3]),(Array.isArray(t3$8)&&((t4$5=t3$8.length),((t4$5===0)&&(m$7$0[4]===(void 0))))))))))))))){decls$0=[];acc$2=[];temp$18=null;m$8=null;$6:for(m$8 of zip(fw$0,args$1)){let t0$37;let t0$38;let bridge$$8140$0;let m$9$0;let newv$0;let pc2$0;let other$4;let expr$3;let v$2;let t0$36;let t1$20;let t2$12;let bridge$$8065$0;let ph$6$0;let arg$2;let t0$35;let t1$19;t0$35=m$8;if((Array.isArray(t0$35)&&((t1$19=t0$35.length),(t1$19===2)))){ph$6$0=t0$35[0];arg$2=t0$35[1];t0$36=ph$6$0;if((Array.isArray(t0$36)&&((t1$20=t0$36.length),((t1$20===2)&&((t0$36[0]==="assign")&&((t2$12=t0$36[1]),(expr$3=t2$12),(bridge$$8065$0=t2$12),(((Array.isArray(bridge$$8065$0)&&((t0$37=bridge$$8065$0.length),((t0$37===2)&&((bridge$$8065$0[0]==="symbol")&&((v$2=bridge$$8065$0[1]),true)))))||(Array.isArray(bridge$$8065$0)&&((t0$38=bridge$$8065$0.length),((t0$38===2)&&((bridge$$8065$0[0]==="variable")&&((v$2=bridge$$8065$0[1]),true))))))&&nequal(expr$3.declare_mode,"set")))))))){m$9$0=expr$3.declare_mode;if((m$9$0==="let")){temp$18=__amp____colon__(expr$3,({"mutable":false}));}else{if((m$9$0==="var")){temp$18=__amp____colon__(expr$3,({"mutable":true}));}else{bridge$$8140$0=m$9$0;if(((bridge$$8140$0==="unqualified")||(bridge$$8140$0===(void 0)))){temp$18=__amp____colon__(expr$3,({"mutable":false}));}else{temp$18=___match_error(m$9$0,".unqualified or undefined? ");}}}}else{other$4=ph$6$0;newv$0=__amp__(["symbol",info$3.gensym("temp")],({"env":info$3.mkenv(),"location":arg$2.location}));pc2$0=pc$1.fork(other$4);decls$0.push(pc2$0.extract_from_rhs(newv$0));temp$18=newv$0;}acc$2.push(temp$18);}else{___match_error(m$8);}}newargs$0=acc$2;_body$0=pc$1.wrapBody(body$3);return ["lambda",newargs$0,wrap$0(["multi"].concat(decls$0).concat([_body$0])),generator$0];}else{objp$0=m$7$0;if(((x$9=m$7$0),((x$9 instanceof Array)&&(x$9[0]==="object_pattern")))){body2$1=["send",["symbol","match"],["data",["send",["symbol","arguments"],["value",0]],["send",["symbol","->"],["data",arg$1,body$3]]]];return ["lambda",[],wrap$0(body2$1),generator$0];}else{if((Array.isArray(m$7$0)&&((t0$34=m$7$0.length),((t0$34===3)&&((m$7$0[0]==="all")&&((t1$18=m$7$0[1]),(Array.isArray(t1$18)&&((t2$11=t1$18.length),((t2$11===5)&&((t1$18[0]==="array_pattern")&&((fw$1=t1$18[1]),(bw$0=t1$18[2]),(defaults$0=t1$18[3]),(rest$0=t1$18[4]),(objp$1=m$7$0[2]),___hasprop(m$7$0,"insertion_index")))))))))))){i$0=m$7$0.insertion_index;a$0=__lt____lt____colon__$0(["symbol","arguments"],arg$1);fw$1.splice(i$0,0,objp$1);newp$0=["array_pattern",fw$1,bw$0,defaults$0,rest$0];pc2$1=pc$1.fork(newp$0);body2$2=["multi",pc2$1.extract_from_rhs(a$0),pc$1.wrapBody(body$3)];return ["lambda",[],wrap$0(body2$2),generator$0];}else{other$5=m$7$0;a$1=__lt____lt____colon__$0(["symbol","arguments"],arg$1);body2$3=["send",["send",["symbol","match"],["send",["symbol","."],["data",["void"],["symbol","indexable"]]]],["data",a$1,["send",["symbol","->"],["data",arg$1,body$3]]]];return ["lambda",[],wrap$0(body2$3),generator$0];}}}}else{return ___match_error(ph$5$0,"#data{[arg and #data{*args}\n \\ or #multi{*args} and arg is #data{*args}\n \\ or #void{} and args is {} and arg is #data{}\n \\ or arg is #data{arg} and args is {arg}]\n pre, body, post, generator = #value{false}}");}});t0$39=getProjector(mac$0("_lambda"))($targ$12);if(t0$39[0]){_lambda_mac$0=t0$39[1];}else{___match_error($targ$12,"mac{\"_lambda\"}! _lambda_mac{context, info, form, match}");}$targ$13=(function(ctx$1,temp$19$0,form$10,ph$7$0){let other$6;let args$2;let body$4;let t0$40;let t1$21;t0$40=ph$7$0;t1$21=t0$40.length;if(((t1$21===3)&&(t0$40[0]==="data"))){args$2=t0$40[1];body$4=t0$40[2];return ["send",["symbol","_lambda"],["data",args$2,["value",null],body$4,["value",null],["value",true]]];}else{other$6=ph$7$0;throw ErrorFactory(["syntax","lambda"]).create("Bad lambda syntax",({"node":other$6}));}});t0$41=getProjector(mac$0("*->"))($targ$13);if(t0$41[0]){genarrow_mac$0=t0$41[1];}else{___match_error($targ$13,"mac{\"*->\"}! genarrow_mac{ctx, _, form, match}");}$targ$14=(function(ctx$2,info$4,form$11,temp$20$0){let t0$42;let t1$22;let t0$43;let t1$23;let $targ$28;let at$0;let self$0;let args$3;let body$5;t0$42=temp$20$0;if((Array.isArray(t0$42)&&((t1$22=t0$42.length),((t1$22===3)&&(t0$42[0]==="data"))))){args$3=t0$42[1];body$5=t0$42[2];}else{___match_error(temp$20$0);}$targ$28=info$4.mark(["symbol","@"],["symbol","self"]);t0$43=$targ$28;if((Array.isArray(t0$43)&&((t1$23=t0$43.length),(t1$23===2)))){at$0=t0$43[0];self$0=t0$43[1];}else{___match_error($targ$28,"{at, self}");}[at$0,self$0];return ["send",["symbol","_lambda"],["data",args$3,["send",["symbol","="],["data",["send",["symbol","let"],["send",["symbol","and"],["data",at$0,self$0]]],["symbol","this"]]],body$5,["value",null]]];});t0$44=getProjector(mac$0("@->"))($targ$14);if(t0$44[0]){metharrow_mac$0=t0$44[1];}else{___match_error($targ$14,"mac{\"@->\"}! metharrow_mac{ctx, info, form, #data{args, body}}");}$targ$15=(function(ph$8$0,temp$21$0,form$12,expr$4){let x$10;let t0$45;let t1$24;let $targ$29;let lhs$5;let rhs$7;let other$8;let args$4;let body$6;let t0$46;let m$10$0;let other$7;if(((x$10=ph$8$0),((x$10 instanceof Array)&&(x$10[0]==="clause")))){$targ$29=expr$4;t0$45=$targ$29;if((Array.isArray(t0$45)&&((t1$24=t0$45.length),((t1$24===3)&&(t0$45[0]==="data"))))){lhs$5=t0$45[1];rhs$7=t0$45[2];}else{___match_error($targ$29,"#data{lhs, rhs}");}[lhs$5,rhs$7];return ["clause",lhs$5,rhs$7];}else{other$7=ph$8$0;m$10$0=expr$4;if((Array.isArray(m$10$0)&&((t0$46=m$10$0.length),((t0$46===3)&&(m$10$0[0]==="data"))))){args$4=m$10$0[1];body$6=m$10$0[2];return ["send",["symbol","_lambda"],["data",args$4,["value",null],body$6,["value",null]]];}else{other$8=m$10$0;throw ErrorFactory(["syntax","lambda"]).create("Bad lambda syntax",({"node":other$8}));}}});t0$47=getProjector(mac$0("->"))($targ$15);if(t0$47[0]){arrow_mac$0=t0$47[1];}else{___match_error($targ$15,"mac{\"->\"}! arrow_mac{match, _, form, expr}");}_catch$0=named_statement_matcher$0("catch");_finally$0=named_statement_matcher$0("finally");try_pattern$0=["seq",["multiple",_catch$0],["multiple",_finally$0,0,1]];$targ$16=(function(temp$22$0,info$5,form$13,temp$23$0){let t0$48;let t1$25;let t0$49;let t1$26;let body$7;t0$48=temp$22$0;if((Array.isArray(t0$48)&&((t1$25=t0$48.length),((t1$25===2)&&((t0$48[0]==="expr")&&(t0$48[1]==="multi")))))){}else{___match_error(temp$22$0);}t0$49=temp$23$0;if((Array.isArray(t0$49)&&((t1$26=t0$49.length),((t1$26===2)&&(t0$49[0]==="data"))))){body$7=t0$49[1];}else{___match_error(temp$23$0);}return flatmacro$0(try_pattern$0,(function(temp$24$0){let t0$50;let t1$27;let t2$13;let t3$9;let t4$6;let t5$2;let m$11;let m$12;let t0$54;let $targ$30;let m$13;let env$1;let clauses$0;let finally$1;let make_ebody$0;let catches$0;let finallies$0;t0$50=temp$24$0;if((Array.isArray(t0$50)&&((t1$27=t0$50.length),((t1$27===3)&&((t0$50[0]==="seq")&&((t2$13=t0$50[1]),(Array.isArray(t2$13)&&((t3$9=t2$13.length),((t3$9>=1)&&((t2$13[0]==="multiple")&&((catches$0=Array.prototype.slice.call(t2$13,1)),(t4$6=t0$50[2]),(Array.isArray(t4$6)&&((t5$2=t4$6.length),((t5$2>=1)&&(t4$6[0]==="multiple"))))))))))))))){finallies$0=Array.prototype.slice.call(t4$6,1);}else{___match_error(temp$24$0);}env$1=info$5.mkenv();clauses$0=[];finally$1=["void"];m$11=null;$7:for(m$11 of catches$0){let p$0;let body$8;let t0$51;let t1$28;let t2$14;let t3$10;let t4$7;let t5$3;t0$51=m$11;if((Array.isArray(t0$51)&&((t1$28=t0$51.length),((t1$28===3)&&((t0$51[0]==="send")&&((t2$14=t0$51[1]),(Array.isArray(t2$14)&&((t3$10=t2$14.length),((t3$10===2)&&((t2$14[0]==="symbol")&&((t2$14[1]==="catch")&&((t4$7=t0$51[2]),(Array.isArray(t4$7)&&((t5$3=t4$7.length),((t5$3===3)&&(t4$7[0]==="data")))))))))))))))){p$0=t4$7[1];body$8=t4$7[2];clauses$0.push(env$1.mark(["send",["symbol","->"],["data",p$0,body$8]]));}else{___match_error(m$11);}}m$12=null;$8:for(m$12 of finallies$0){let body$9;let t0$52;let t1$29;let t2$15;let t3$11;let t4$8;let t5$4;t0$52=m$12;if((Array.isArray(t0$52)&&((t1$29=t0$52.length),((t1$29===3)&&((t0$52[0]==="send")&&((t2$15=t0$52[1]),(Array.isArray(t2$15)&&((t3$11=t2$15.length),((t3$11===2)&&((t2$15[0]==="symbol")&&((t2$15[1]==="finally")&&((t4$8=t0$52[2]),(Array.isArray(t4$8)&&((t5$4=t4$8.length),((t5$4===2)&&(t4$8[0]==="data")))))))))))))))){body$9=t4$8[1];finally$1=body$9;finally$1;}else{___match_error(m$12);}}clauses$0.push(env$1.mark(["send",["symbol","->"],["data",["symbol","e"],["send",["symbol","throw"],["symbol","e"]]]]));make_ebody$0=(function make_ebody(wrap$1){return parse_clauses$0(info$5,["symbol","excv"],clauses$0,({"wrap":wrap$1}));});$targ$30=(function(ph$9$0,e$0){let trystmt$0;let $$8582$0;let $$8583$0;let $$8584$0;let $$8585$0;let t0$53;let t1$30;t0$53=ph$9$0;t1$30=t0$53.length;if((($$8584$0=(t1$30===2))&&(($$8585$0=(t0$53[0]==="expr"))&&(t0$53[1]==="multi")))){return ["nostep",this.form];}else{if(($$8585$0&&(t0$53[1]==="ignore"))){return ["js_try",body$7,["send",["symbol","->"],["data",["data",["symbol","excv"]],make_ebody$0((function(x$11){return x$11;}))]],finally$1];}else{if(($$8585$0&&(t0$53[1]==="expr"))){trystmt$0=["js_try",["send",["symbol","="],["data",["send",["symbol","set-var"],["symbol","rval"]],body$7]],["send",["symbol","->"],["data",["data",["symbol","excv"]],make_ebody$0((function(x$12){return ["send",["symbol","="],["data",["send",["symbol","set-var"],["symbol","rval"]],x$12]];}))]],finally$1];return ["multi",["send",["symbol","="],["data",["send",["symbol","var"],["symbol","rval"]],["symbol","false"]]],trystmt$0,["symbol","rval"]];}else{return ___match_error(ph$9$0,"#expr{.expr}");}}}});t0$54=getProjector(ctx_mac$0)($targ$30);if(t0$54[0]){m$13=t0$54[1];}else{___match_error($targ$30);}return ["macro",m$13];}));});t0$55=getProjector(mac$0("try"))($targ$16);if(t0$55[0]){try_mac$0=t0$55[1];}else{___match_error($targ$16,"mac{\"try\"}! try_mac{#expr{.multi}, info, form, #data{body}}");}$targ$17=(function(ph$10$0,info$6,form$14,temp$25$0){let t0$56;let t1$31;let t2$16;let t3$12;let t4$9;let parsed_clauses$0;let parsed_clauses$1;let trystmt$1;let other$9;let $$8640$0;let $$8641$0;let $$8642$0;let $$8643$0;let t0$57;let t1$32;let expr$5;let clauses$1;t0$56=temp$25$0;if((Array.isArray(t0$56)&&((t1$31=t0$56.length),((t1$31===3)&&((t0$56[0]==="data")&&((expr$5=t0$56[1]),(t2$16=getProjector(Body$0)(t0$56[2])),(t2$16[0]&&((t3$12=t2$16[1]),(t4$9=t3$12.length),(t4$9>=0))))))))){clauses$1=Array.prototype.slice.call(t3$12,0);}else{___match_error(temp$25$0);}t0$57=ph$10$0;t1$32=t0$57.length;if((($$8642$0=(t1$32===2))&&(($$8643$0=(t0$57[0]==="expr"))&&(t0$57[1]==="multi")))){return ["nostep",form$14];}else{if(($$8643$0&&(t0$57[1]==="ignore"))){clauses$1.push(info$6.mkenv().mark(["send",["symbol","->"],["data",["symbol","e"],["send",["symbol","throw"],["symbol","e"]]]]));parsed_clauses$0=parse_clauses$0(info$6,["symbol","excv"],clauses$1,({"wrap":(function(x$13){return x$13;})}));return ["js_try",expr$5,["send",["symbol","->"],["data",["data",["symbol","excv"]],parsed_clauses$0]],["void"]];}else{other$9=ph$10$0;clauses$1.push(info$6.mkenv().mark(["send",["symbol","->"],["data",["symbol","e"],["send",["symbol","throw"],["symbol","e"]]]]));parsed_clauses$1=parse_clauses$0(info$6,["symbol","excv"],clauses$1,({"wrap":(function(x$14){return ["send",["symbol","="],["data",["send",["symbol","set-var"],["symbol","rval"]],x$14]];})}));trystmt$1=["js_try",["send",["symbol","="],["data",["send",["symbol","set-var"],["symbol","rval"]],expr$5]],["send",["symbol","->"],["data",["data",["symbol","excv"]],parsed_clauses$1]],["void"]];return ["send",["symbol","let"],["data",["send",["symbol","="],["data",["send",["symbol","var"],["symbol","rval"]],["symbol","false"]]],["multi",trystmt$1,["symbol","rval"]]]];}}});t0$58=getProjector(mac$0("!!"))($targ$17);if(t0$58[0]){tryop_mac$0=t0$58[1];}else{___match_error($targ$17,"mac{\"!!\"}! tryop_mac{match, info, form, #data{expr, Body! {*clauses}}}");}$targ$18=(function(temp$26$0,form$15,arg$3){return ["js_throw",arg$3];});t0$59=getProjector(expr_mac$0)($targ$18);if((t0$59[0]&&((t1$33=getProjector(mac$0("throw"))(t0$59[1])),t1$33[0]))){throw_mac$0=t1$33[1];}else{___match_error($targ$18,"expr_mac! mac{\"throw\"}! throw_mac{_, form, arg}");}$targ$19=(function(ph$11$0,temp$27$0,form$16,arg$4){let x$15;let subp$0;let w$0;if(((x$15=ph$11$0),((x$15 instanceof Array)&&(x$15[0]==="pattern")))){if(equal(arg$4,["void"])){subp$0=null;}else{subp$0=arg$4;}w$0=(function w(ph$12){return ph$12;});return ["special",AssignmentHandler$0(subp$0,w$0)];}else{return ___match_error(ph$11$0,"#pattern");}});t0$60=getProjector(mac$0("expr-value"))($targ$19);if(t0$60[0]){exprvalue_mac$0=t0$60[1];}else{___match_error($targ$19,"mac{\"expr-value\"}! exprvalue_mac{match, _, form, arg}");}$targ$20=(function(ph$13$0,temp$28$0,form$17,arg$5){let x$16;let subp$1;let w$1;let t0$61;let t0$62;let otherwise$0;let bridge$$8782$0;if(((x$16=ph$13$0),((x$16 instanceof Array)&&(x$16[0]==="pattern")))){if(equal(arg$5,["void"])){subp$1=null;}else{subp$1=arg$5;}w$1=(function w(ph$14){return ["send",["symbol","return"],ph$14];});return ["special",AssignmentHandler$0(subp$1,w$1)];}else{bridge$$8782$0=ph$13$0;if(((Array.isArray(bridge$$8782$0)&&((t0$61=bridge$$8782$0.length),((t0$61===2)&&((bridge$$8782$0[0]==="expr")&&(bridge$$8782$0[1]==="expr")))))||(Array.isArray(bridge$$8782$0)&&((t0$62=bridge$$8782$0.length),((t0$62===2)&&((bridge$$8782$0[0]==="expr")&&(bridge$$8782$0[1]==="head"))))))){return ["js_return",arg$5];}else{otherwise$0=ph$13$0;return ["nostep",form$17];}}});t0$63=getProjector(mac$0("return"))($targ$20);if(t0$63[0]){return_mac$0=t0$63[1];}else{___match_error($targ$20,"mac{\"return\"}! return_mac{match, _, form, arg}");}$targ$21=(function(temp$29$0,form$18,arg$6){return ["js_new",arg$6];});t0$64=getProjector(expr_mac$0)($targ$21);if((t0$64[0]&&((t1$34=getProjector(mac$0("new"))(t0$64[1])),t1$34[0]))){new_mac$0=t1$34[1];}else{___match_error($targ$21,"expr_mac! mac{\"new\"}! new_mac{_, form, arg}");}$targ$22=(function(context$4,temp$30$0,form$19,temp$31$0){let t0$65;let other$10;let s$2;let t0$66;let t1$35;let arg$7;let ph$15$0;t0$65=temp$31$0;arg$7=t0$65;ph$15$0=t0$65;t0$66=ph$15$0;t1$35=t0$66.length;if(((t1$35===2)&&(t0$66[0]==="symbol"))){s$2=t0$66[1];return ["undeclare",arg$7];}else{other$10=ph$15$0;return ["js_delete",other$10];}});t0$67=getProjector(mac$0("delete"))($targ$22);if(t0$67[0]){delete_mac$0=t0$67[1];}else{___match_error($targ$22,"mac{\"delete\"}! delete_mac{context, _, form, match arg}");}$targ$23=(function(context$5,temp$32$0,form$20,temp$33$0){let t0$68;let t1$36;let t2$17;let t3$13;let t4$10;let stmts$1;t0$68=temp$33$0;if((Array.isArray(t0$68)&&((t1$36=t0$68.length),((t1$36===2)&&((t0$68[0]==="data")&&((t2$17=getProjector(Body$0)(t0$68[1])),(t2$17[0]&&((t3$13=t2$17[1]),(t4$10=t3$13.length),(t4$10>=0))))))))){stmts$1=Array.prototype.slice.call(t3$13,0);}else{___match_error(temp$33$0);}return ["splice"].concat(stmts$1);});t0$69=getProjector(mac$0("splice"))($targ$23);if(t0$69[0]){splice_mac$0=t0$69[1];}else{___match_error($targ$23,"mac{\"splice\"}! splice_mac{context, _, form, #data{Body! {*stmts}}}");}$targ$24=(function(context$6,temp$34$0,form$21,temp$35$0){let t0$70;let t1$37;let t2$18;let t3$14;let t4$11;let t5$5;let f$1;let tag$0;t0$70=temp$35$0;if((Array.isArray(t0$70)&&((t1$37=t0$70.length),((t1$37===3)&&((t0$70[0]==="data")&&((t2$18=t0$70[1]),(Array.isArray(t2$18)&&((t3$14=t2$18.length),((t3$14===1)&&((t2$18[0]==="void")&&((t4$11=t0$70[2]),(Array.isArray(t4$11)&&((t5$5=t4$11.length),((t5$5===2)&&(t4$11[0]==="symbol"))))))))))))))){tag$0=t4$11[1];}else{___match_error(temp$35$0);}tag$0=["value",tag$0];f$1=(function f(ph$16$0,temp$36$0,form$22,expr$6){let x$17;let other$11;let subp$2;let $$9012$0;let $$9013$0;let t0$72;let m$14$0;let checker_mac$0;let x$18;let x$19;let other$12;let args$5;let $$9077$0;let $$9078$0;let t0$73;let m$15$0;if(((x$17=ph$16$0),((x$17 instanceof Array)&&(x$17[0]==="pattern")))){checker_mac$0=["macro",(function(context$7,temp$37$0,form$23,temp$38$0){let t0$71;let t1$38;let expr$7;t0$71=temp$38$0;if((Array.isArray(t0$71)&&((t1$38=t0$71.length),((t1$38===2)&&(t0$71[0]==="data"))))){expr$7=t0$71[1];}else{___match_error(temp$38$0);}return ["send",["symbol","let"],["data",["send",["symbol","="],["data",["symbol","x"],expr$7]],["send",["symbol","and"],["data",["send",["symbol","instanceof"],["data",["symbol","x"],["symbol","Array"]]],["send",["symbol","==="],["data",["send",["symbol","x"],["value",0]],tag$0]]]]]];})];m$14$0=expr$6;if((($$9012$0=Array.isArray(m$14$0))&&((t0$72=m$14$0.length),((t0$72>=1)&&(m$14$0[0]==="data"))))){subp$2=Array.prototype.slice.call(m$14$0,1);return ["data",tag$0].concat(subp$2);}else{if(($$9012$0&&((t0$72===1)&&(m$14$0[0]==="void")))){return ["check",checker_mac$0,["ignore"]];}else{other$11=m$14$0;return ["check",checker_mac$0,expr$6];}}}else{if(((x$18=ph$16$0),((x$18 instanceof Array)&&(x$18[0]==="check")))){return ["send",["symbol","getChecker"],["data",["data",tag$0]]];}else{if(((x$19=ph$16$0),((x$19 instanceof Array)&&(x$19[0]==="project")))){return ["send",["symbol","getProjector"],["data",["data",tag$0]]];}else{m$15$0=expr$6;if((($$9077$0=Array.isArray(m$15$0))&&((t0$73=m$15$0.length),((t0$73===1)&&(m$15$0[0]==="void"))))){return ["data",tag$0];}else{if(($$9077$0&&((t0$73>=1)&&(m$15$0[0]==="data")))){args$5=Array.prototype.slice.call(m$15$0,1);return ["data",tag$0].concat(args$5);}else{other$12=m$15$0;return ["send",["data",tag$0],other$12];}}}}}});return ["macro",f$1];});t0$74=getProjector(mac$0("#"))($targ$24);if(t0$74[0]){hash_mac$0=t0$74[1];}else{___match_error($targ$24,"mac{\"#\"}! hash_mac{context, _, form, #data{#void{}, #symbol{var tag}}}");}$targ$25=(function(temp$39$0,temp$40$0,form$24,temp$41$0){let x$20;let t0$75;let t1$39;if(((x$20=temp$39$0),((x$20 instanceof Array)&&(x$20[0]==="pattern")))){}else{___match_error(temp$39$0);}t0$75=temp$41$0;if((Array.isArray(t0$75)&&((t1$39=t0$75.length),((t1$39===1)&&(t0$75[0]==="void"))))){}else{___match_error(temp$41$0);}return ["ignore"];});t0$76=getProjector(mac$0("_"))($targ$25);if(t0$76[0]){placeholder_mac$0=t0$76[1];}else{___match_error($targ$25,"mac{\"_\"}! placeholder_mac{#pattern, _, form, #void{}}");}return exports$0;});(module["exports"]=$targ$0);(void 0);
//# sourceMappingURL=core.js.map