UNPKG

earlgrey

Version:

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

1 lines 52.7 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 camelCase$0=void 0;var $2$0=void 0;var expr_mac$0=void 0;var var_operator$0=void 0;var overridable$0=void 0;var pattern_handlers$0=void 0;var Body$0=void 0;var multimacro$0=void 0;var $3$0=void 0;var PatternCompiler$0=void 0;$0$0=require("../location");__lt____lt____colon__$0=getProperty($0$0,"<<:","../location");$1$0=require("../util");camelCase$0=getProperty($1$0,"camelCase","../util");$2$0=require("./helpers");expr_mac$0=getProperty($2$0,"expr_mac","./helpers");var_operator$0=getProperty($2$0,"var_operator","./helpers");overridable$0=getProperty($2$0,"overridable","./helpers");pattern_handlers$0=getProperty($2$0,"pattern_handlers","./helpers");Body$0=getProperty($2$0,"Body","./helpers");multimacro$0=getProperty($2$0,"multimacro","./helpers");$3$0=require("../pattern");PatternCompiler$0=getProperty($3$0,"PatternCompiler","../pattern");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$0=void 0;var defns$0=void 0;var t0$3=void 0;var $targ$21=void 0;var accum$0=void 0;var $targ$22=void 0;var accum$1=void 0;var t0$9=void 0;var t0$11=void 0;var t1$6=void 0;var t0$14=void 0;var t1$9=void 0;var t0$29=void 0;var t1$17=void 0;var t0$32=void 0;var t0$34=void 0;var t0$38=void 0;var t0$56=void 0;var t0$75=void 0;var errf_macro$0=void 0;var t0$77=void 0;var t0$80=void 0;var t0$82=void 0;var t0$84=void 0;var t0$89=void 0;var t0$90=void 0;var $targ$2=void 0;var parameterize_mac$0=void 0;var ChainHandler$0=void 0;var $targ$3=void 0;var chain_mac$0=void 0;var $targ$4=void 0;var using_mac$0=void 0;var $targ$5=void 0;var do_mac$0=void 0;var $targ$6=void 0;var buildnode_mac$0=void 0;var $targ$7=void 0;var S_mac$0=void 0;var $targ$8=void 0;var print_mac$0=void 0;var $targ$9=void 0;var method_mac$0=void 0;var $targ$10=void 0;var class_mac$0=void 0;var $targ$11=void 0;var jsclass_mac$0=void 0;var $targ$12=void 0;var E_mac$0=void 0;var $targ$13=void 0;var outer_mac$0=void 0;var $targ$14=void 0;var tagscope_mac$0=void 0;var $targ$15=void 0;var usescope_mac$0=void 0;var $targ$16=void 0;var maysend_mac$0=void 0;var $targ$17=void 0;var maybe_mac$0=void 0;var exports$0=void 0;exports$0={};defns$0={"@":var_operator$0("@_")};acc$0=[];temp$0=null;m$0=null;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{$4: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$0=void 0;var t0$0=void 0;var t1$0=void 0;t0$0=m$0;if(Array.isArray(t0$0)&&(t1$0=t0$0.length,t1$0===2)){k$0=t0$0[0];v$0=t0$0[1];temp$0=mac$0(k$0)(v$0);acc$0.push(temp$0);}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(ctx$0,info$0,form$0,expr$0){var t0$1=void 0;var t1$1=void 0;var t2$0=void 0;var t3$0=void 0;var t4$0=void 0;var m$1=void 0;var acc$1=void 0;var temp$1=void 0;var xs$0=void 0;var $targ$18=void 0;var instructions$0=void 0;$targ$18=expr$0;t0$1=$targ$18;if(Array.isArray(t0$1)&&(t1$1=t0$1.length,t1$1===2&&t0$1[0]==="data"&&(t2$0=getProjector(["multi"])(t0$1[1]),t2$0[0]&&(t3$0=t2$0[1],t4$0=t3$0.length,t4$0>=1&&t3$0[0]==="multi")))){instructions$0=Array.prototype.slice.call(t3$0,1);}else{___match_error($targ$18,"#data{#multi! #multi{*instructions}}");}acc$1=[];temp$1=null;m$1=null;var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{$5:for(var _iterator2=instructions$0[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){m$1=_step2.value;var stmt$0=void 0;var k$1=void 0;var v$1=void 0;var name$0=void 0;var t0$2=void 0;var t1$2=void 0;var t2$1=void 0;var t3$1=void 0;var t4$1=void 0;var t5$0=void 0;var t6$0=void 0;var t7$0=void 0;t0$2=m$1;if(Array.isArray(t0$2)&&(t1$2=t0$2.length,t1$2===3&&t0$2[0]==="send"&&(t2$1=t0$2[1],Array.isArray(t2$1)&&(t3$1=t2$1.length,t3$1===2&&t2$1[0]==="symbol"&&t2$1[1]==="="&&(t4$1=t0$2[2],Array.isArray(t4$1)&&(t5$0=t4$1.length,t5$0===3&&t4$1[0]==="data"&&(k$1=t4$1[1],v$1=t4$1[2],t6$0=k$1,Array.isArray(t6$0)&&(t7$0=t6$0.length,t7$0===2&&t6$0[0]==="symbol")))))))){name$0=t6$0[1];info$0.setopt(name$0,info$0.go(v$1,"parse","eval"));temp$1=["multi"];acc$1.push(temp$1);}else{stmt$0=m$1;throw send(send(ErrorFactory(["syntax","parameterize"]),"create",true),__amp____colon__(["Invalid parametrization"],{"node":stmt$0,"::objinsert":1}));acc$1.push(temp$1);}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}xs$0=acc$1;return["splice"].concat(xs$0);};t0$3=getProjector(mac$0("parameterize"))($targ$2);if(t0$3[0]){parameterize_mac$0=t0$3[1];}else{___match_error($targ$2,"mac{\"parameterize\"}! parameterize_mac{ctx, info, form, expr}");}ChainHandler$0=function ChainHandler(temp$2$0){var $targ$19=void 0;var __at___$0=void 0;if(!getChecker(ChainHandler$0)(this)){__at___$0=Object.create(ChainHandler$0.prototype);}else{__at___$0=this;}__at___$0["env"]=temp$2$0;$targ$19=2;__at___$0["wrapOrder"]=$targ$19;return __at___$0;};ChainHandler$0.prototype["expand"]=function expand(info$1){var $targ$20=void 0;var __at___$1=void 0;var self$0=void 0;__at___$1=this;self$0=this;$targ$20=__at___$1.env.mark(["symbol",info$1.gensym("ph")]);__at___$1["placeholder"]=$targ$20;return __at___$1.placeholder;};ChainHandler$0.prototype["wrap"]=function wrap(expr$1,info$2,opt$0){var __at___$2=void 0;var self$1=void 0;__at___$2=this;self$1=this;return["send",["symbol","chain"],["data",__at___$2.placeholder,expr$1]];};__amp____colon__(ChainHandler$0,__amp____colon__(($targ$21="ChainHandler",accum$0={},accum$0["::name"]=$targ$21,accum$0),($targ$22=true,accum$1={},accum$1["::egclass"]=$targ$22,accum$1)));$targ$3=function $targ$3(ph$0$0,info$3,form$1,expr$2){var x$0=void 0;var other$0=void 0;var t0$4=void 0;var m$2$0=void 0;var t0$5=void 0;var t0$6=void 0;var t0$7=void 0;var t1$3=void 0;var t2$2=void 0;var t3$2=void 0;var t4$2=void 0;var t5$1=void 0;var $targ$23=void 0;var defn$0=void 0;var env$0=void 0;var body$0=void 0;var it$0=void 0;var construct$0=void 0;var bridge$$14177$0=void 0;if(x$0=ph$0$0,x$0 instanceof Array&&x$0[0]==="pattern"){m$2$0=expr$2;if(Array.isArray(m$2$0)&&(t0$4=m$2$0.length,t0$4===1&&m$2$0[0]==="void")){return["special",ChainHandler$0(form$1.env)];}else{other$0=m$2$0;return["all",__lt____lt____colon__$0(other$0,expr$2),__lt____lt____colon__$0(["special",ChainHandler$0(form$1.env)],form$1)];}}else{bridge$$14177$0=ph$0$0;if(Array.isArray(bridge$$14177$0)&&(t0$5=bridge$$14177$0.length,t0$5===2&&bridge$$14177$0[0]==="expr"&&bridge$$14177$0[1]==="expr")||Array.isArray(bridge$$14177$0)&&(t0$6=bridge$$14177$0.length,t0$6===2&&bridge$$14177$0[0]==="expr"&&bridge$$14177$0[1]==="head")){$targ$23=expr$2;t0$7=$targ$23;if(Array.isArray(t0$7)&&(t1$3=t0$7.length,t1$3===3&&t0$7[0]==="data"&&(t2$2=t0$7[1],defn$0=t2$2,___hasprop(t2$2,"env")&&(env$0=t2$2.env,t3$2=getProjector(Body$0)(t0$7[2]),t3$2[0]&&(t4$2=t3$2[1],t5$1=t4$2.length,t5$1>=0))))){body$0=Array.prototype.slice.call(t4$2,0);}else{___match_error($targ$23,"#data{defn and {=> env}, Body! {*body}}");}[defn$0,env$0,body$0];it$0=__amp__(["symbol","@"],{"env":env$0});construct$0=function construct(ph$1$0){var x$2=void 0;var rest$0=void 0;var x$1=void 0;var $$14276$0=void 0;var $$14277$0=void 0;var t0$8=void 0;var t1$4=void 0;t0$8=ph$1$0;t1$4=t0$8.length;if(t1$4===1){x$1=t0$8[0];return x$1;}else{if(t1$4>=1){x$2=t0$8[0];rest$0=Array.prototype.slice.call(t0$8,1);return["send",["symbol","let"],["data",["send",["symbol","="],["data",it$0,x$2]],construct$0(rest$0)]];}else{return ___match_error(ph$1$0,"{x, *rest}");}}};return construct$0([defn$0].concat(body$0));}else{return["nostep",form$1];}}};t0$9=getProjector(mac$0("chain"))($targ$3);if(t0$9[0]){chain_mac$0=t0$9[1];}else{___match_error($targ$3,"mac{\"chain\"}! chain_mac{match, info, form, expr}");}$targ$4=function $targ$4(temp$3$0,form$2,temp$4$0){var t0$10=void 0;var t1$5=void 0;var t2$3=void 0;var it$1=void 0;var defn$1=void 0;var env$1=void 0;var body$1=void 0;t0$10=temp$4$0;if(Array.isArray(t0$10)&&(t1$5=t0$10.length,t1$5===3&&t0$10[0]==="data"&&(t2$3=t0$10[1],defn$1=t2$3,___hasprop(t2$3,"env")))){env$1=t2$3.env;body$1=t0$10[2];}else{___match_error(temp$4$0);}it$1=__amp__(["symbol","@"],{"env":env$1});return["send",["symbol","let"],["data",["send",["symbol","="],["data",it$1,defn$1]],body$1]];};t0$11=getProjector(expr_mac$0)($targ$4);if(t0$11[0]&&(t1$6=getProjector(mac$0("using"))(t0$11[1]),t1$6[0])){using_mac$0=t1$6[1];}else{___match_error($targ$4,"expr_mac! mac{\"using\"}! using_mac{_, form, #data{defn and {=> env}, body}}");}$targ$5=function $targ$5(ph$2$0,temp$5$0,form$3,temp$6$0){var t0$12=void 0;var t1$7=void 0;var x$3=void 0;var x$4=void 0;var t0$13=void 0;var t1$8=void 0;var t2$4=void 0;var $targ$24=void 0;var stmts$0=void 0;var x$5=void 0;var body$2=void 0;t0$12=temp$6$0;if(Array.isArray(t0$12)&&(t1$7=t0$12.length,t1$7===2&&t0$12[0]==="data")){body$2=t0$12[1];}else{___match_error(temp$6$0);}if(x$3=ph$2$0,x$3 instanceof Array&&x$3[0]==="clause"){return["block",body$2];}else{if(x$4=ph$2$0,x$4 instanceof Array&&x$4[0]==="test"){$targ$24=body$2;t0$13=getProjector(Body$0)($targ$24);if(t0$13[0]&&(t1$8=t0$13[1],t2$4=t1$8.length,t2$4>=0)){stmts$0=Array.prototype.slice.call(t1$8,0);}else{___match_error($targ$24,"Body! {*stmts}");}return["do",["splice"].concat(stmts$0)];}else{if(x$5=ph$2$0,x$5 instanceof Array&&x$5[0]==="expr"){return["multi",body$2];}else{return ___match_error(ph$2$0,"#expr");}}}};t0$14=getProjector(overridable$0)($targ$5);if(t0$14[0]&&(t1$9=getProjector(mac$0("do"))(t0$14[1]),t1$9[0])){do_mac$0=t1$9[1];}else{___match_error($targ$5,"overridable! mac{\"do\"}! do_mac{match, _, form, #data{body}}");}$targ$6=function $targ$6(context$0,temp$7$0,form$4,temp$8$0){var t0$15=void 0;var t0$16=void 0;var t1$10=void 0;var x$6=void 0;var x$7=void 0;var bridge$$14461$0=void 0;var m$3$0=void 0;var m$4=void 0;var m$9=void 0;var x$13=void 0;var t0$28=void 0;var m$8$0=void 0;var xs$1=void 0;var x$14=void 0;var pair$1=void 0;var k$3=void 0;var v$3=void 0;var args$1=void 0;var $$14801$0=void 0;var $$14802$0=void 0;var t0$26=void 0;var t1$15=void 0;var t2$7=void 0;var t3$4=void 0;var t4$4=void 0;var m$7$0=void 0;var inner__minus__scope$0=void 0;var wrap$0=void 0;var tags$0=void 0;var kv$0=void 0;var parse$0=void 0;var node$0=void 0;var info$4=void 0;var env$2=void 0;var descr$0=void 0;var contents$0=void 0;t0$15=temp$7$0;info$4=t0$15;if(___hasprop(t0$15,"env")){env$2=t0$15.env;}else{___match_error(temp$7$0);}t0$16=temp$8$0;if(Array.isArray(t0$16)&&(t1$10=t0$16.length,t1$10===3&&t0$16[0]==="data")){descr$0=t0$16[1];contents$0=t0$16[2];}else{___match_error(temp$8$0);}m$3$0=context$0;bridge$$14461$0=m$3$0;if((x$6=bridge$$14461$0,x$6 instanceof Array&&x$6[0]==="check")||(x$7=bridge$$14461$0,x$7 instanceof Array&&x$7[0]==="project")){return["nostep",form$4];}else{undefined;}inner__minus__scope$0=info$4.scope.fork();m$4=function m(){var x$8=void 0;var t0$17=void 0;var t1$11=void 0;var t2$5=void 0;var m$5$0=void 0;m$5$0=arguments;t0$17=m$5$0.length;if(t0$17>=1&&(Array.prototype.slice.call(m$5$0,0,-1),t1$11=m$5$0[t0$17-1],Array.isArray(t1$11)&&(t2$5=t1$11.length,t2$5===2&&t1$11[0]==="data"))){x$8=t1$11[1];return x$8;}else{return ___match_error(m$5$0,"{*, `{^x}`}");}};env$2.bind(inner__minus__scope$0,"wrap-quote",["macro",m$4]);wrap$0=function wrap(x$9){return["use",inner__minus__scope$0,x$9];};tags$0=["data"];kv$0=["data",["symbol","="]];parse$0=function parse(temp$9$0){var t0$18=void 0;var t0$20=void 0;var t0$21=void 0;var t1$13=void 0;var t0$22=void 0;var t0$23=void 0;var t1$14=void 0;var t0$24=void 0;var t0$25=void 0;var m$6=void 0;var acc$2=void 0;var temp$10=void 0;var args$0=void 0;var expr$4=void 0;var rest$1=void 0;var expr$3=void 0;var x$12=void 0;var x$11=void 0;var x$10=void 0;var s$0=void 0;var $$14561$0=void 0;var $$14562$0=void 0;var $$14563$0=void 0;var $$14564$0=void 0;var $$14565$0=void 0;var $$14566$0=void 0;var $$14567$0=void 0;var $$14568$0=void 0;var $$14569$0=void 0;var t0$19=void 0;var t1$12=void 0;var t2$6=void 0;var t3$3=void 0;var t4$3=void 0;var t5$2=void 0;var t6$1=void 0;var t7$1=void 0;var bridge$$14553$0=void 0;var bridge$$14555$0=void 0;var bridge$$14560$0=void 0;var whole$0=void 0;var ph$3$0=void 0;t0$18=temp$9$0;whole$0=t0$18;ph$3$0=t0$18;t0$19=ph$3$0;t1$12=t0$19.length;if(t1$12===1&&t0$19[0]==="void"){return null;}else{if(($$14563$0=t1$12===2)&&t0$19[0]==="symbol"){s$0=t0$19[1];return tags$0.push(["value",s$0]);}else{if($$14563$0&&t0$19[0]==="value"&&(t2$6=[true,String(t0$19[1])],t2$6[0])){x$10=t2$6[1];return tags$0.push(["value",x$10]);}else{if(($$14563$0=t1$12===3)&&($$14564$0=t0$19[0]==="send")&&(t2$6=t0$19[1],($$14566$0=Array.isArray(t2$6))&&(t3$3=t2$6.length,($$14568$0=t3$3===2)&&($$14569$0=t2$6[0]==="symbol")&&t2$6[1]==="."&&(t4$3=t0$19[2],Array.isArray(t4$3)&&(t5$2=t4$3.length,t5$2===3&&t4$3[0]==="data"&&(t6$1=t4$3[1],Array.isArray(t6$1)&&(t7$1=t6$1.length,t7$1===1&&t6$1[0]==="void"&&(bridge$$14553$0=t4$3[2],Array.isArray(bridge$$14553$0)&&(t0$20=bridge$$14553$0.length,t0$20===2&&bridge$$14553$0[0]==="symbol"&&(x$11=bridge$$14553$0[1],true))||Array.isArray(bridge$$14553$0)&&(t0$21=bridge$$14553$0.length,t0$21===2&&bridge$$14553$0[0]==="value"&&(t1$13=[true,String(bridge$$14553$0[1])],t1$13[0]&&(x$11=t1$13[1],true))))))))))){return tags$0.push(["value","."+x$11]);}else{if($$14569$0&&t2$6[1]==="#"&&(t4$3=t0$19[2],Array.isArray(t4$3)&&(t5$2=t4$3.length,t5$2===3&&t4$3[0]==="data"&&(t6$1=t4$3[1],Array.isArray(t6$1)&&(t7$1=t6$1.length,t7$1===1&&t6$1[0]==="void"&&(bridge$$14555$0=t4$3[2],Array.isArray(bridge$$14555$0)&&(t0$22=bridge$$14555$0.length,t0$22===2&&bridge$$14555$0[0]==="symbol"&&(x$12=bridge$$14555$0[1],true))||Array.isArray(bridge$$14555$0)&&(t0$23=bridge$$14555$0.length,t0$23===2&&bridge$$14555$0[0]==="value"&&(t1$14=[true,String(bridge$$14555$0[1])],t1$14[0]&&(x$12=t1$14[1],true))))))))){return tags$0.push(["value","#"+x$12]);}else{if($$14569$0&&t2$6[1]==="^"&&(t4$3=t0$19[2],Array.isArray(t4$3)&&(t5$2=t4$3.length,t5$2===3&&t4$3[0]==="data"&&(t6$1=t4$3[1],Array.isArray(t6$1)&&(t7$1=t6$1.length,t7$1===1&&t6$1[0]==="void"))))){expr$3=t4$3[2];return tags$0.push(expr$3);}else{if($$14569$0&&t2$6[1]==="="&&(t4$3=t0$19[2],Array.isArray(t4$3)&&(t5$2=t4$3.length,t5$2===3&&t4$3[0]==="data"))){t4$3[1];t4$3[2];return kv$0.push(whole$0);}else{if($$14564$0){expr$4=t0$19[1];rest$1=t0$19[2];parse$0(expr$4);return parse$0(rest$1);}else{bridge$$14560$0=ph$3$0;if(Array.isArray(bridge$$14560$0)&&(t0$24=bridge$$14560$0.length,t0$24>=1&&bridge$$14560$0[0]==="multi"&&(args$0=Array.prototype.slice.call(bridge$$14560$0,1),true))||Array.isArray(bridge$$14560$0)&&(t0$25=bridge$$14560$0.length,t0$25>=1&&bridge$$14560$0[0]==="data"&&(args$0=Array.prototype.slice.call(bridge$$14560$0,1),true))){acc$2=[];temp$10=null;m$6=null;var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{$6:for(var _iterator3=args$0[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){m$6=_step3.value;var arg$0=void 0;arg$0=m$6;temp$10=parse$0(arg$0);acc$2.push(temp$10);}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}return acc$2;}else{return ___match_error(ph$3$0,"#multi{*args} or #data{*args}");}}}}}}}}}};parse$0(descr$0);m$7$0=contents$0;if(($$14801$0=Array.isArray(m$7$0))&&(t0$26=m$7$0.length,t0$26===1&&m$7$0[0]==="void")){contents$0=["array"];}else{if($$14801$0&&t0$26>=1&&m$7$0[0]==="multi"){args$1=Array.prototype.slice.call(m$7$0,1);xs$1=[];m$9=null;var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{$7:for(var _iterator4=args$1[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){m$9=_step4.value;var other$1=void 0;var spl$0=void 0;var pair$0=void 0;var k$2=void 0;var v$2=void 0;var $$14829$0=void 0;var t0$27=void 0;var t1$16=void 0;var t2$8=void 0;var t3$5=void 0;var t4$5=void 0;var t5$3=void 0;var t6$2=void 0;var t7$2=void 0;t0$27=m$9;pair$0=t0$27;if(Array.isArray(t0$27)&&(t1$16=t0$27.length,t1$16===3&&t0$27[0]==="send"&&(t2$8=t0$27[1],Array.isArray(t2$8)&&(t3$5=t2$8.length,t3$5===2&&t2$8[0]==="symbol"&&t2$8[1]==="="&&(t4$5=t0$27[2],Array.isArray(t4$5)&&(t5$3=t4$5.length,t5$3===3&&t4$5[0]==="data")))))){k$2=t4$5[1];v$2=t4$5[2];kv$0.push(pair$0);}else{spl$0=t0$27;if(Array.isArray(t0$27)&&(t1$16=t0$27.length,t1$16===3&&t0$27[0]==="send"&&(t2$8=t0$27[1],Array.isArray(t2$8)&&(t3$5=t2$8.length,t3$5===2&&t2$8[0]==="symbol"&&t2$8[1]==="**"&&(t4$5=t0$27[2],Array.isArray(t4$5)&&(t5$3=t4$5.length,t5$3===3&&t4$5[0]==="data"&&(t6$2=t4$5[1],Array.isArray(t6$2)&&(t7$2=t6$2.length,t7$2===1&&t6$2[0]==="void")))))))){t4$5[2];kv$0.push(spl$0);}else{other$1=m$9;xs$1.push(wrap$0(other$1));}}}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}m$8$0=xs$1;if(Array.isArray(m$8$0)&&(t0$28=m$8$0.length,t0$28===1)){x$13=m$8$0[0];contents$0=x$13;}else{contents$0=["array"].concat(xs$1);}}else{pair$1=m$7$0;if(Array.isArray(m$7$0)&&(t0$26=m$7$0.length,t0$26===3&&m$7$0[0]==="send"&&(t1$15=m$7$0[1],Array.isArray(t1$15)&&(t2$7=t1$15.length,t2$7===2&&t1$15[0]==="symbol"&&t1$15[1]==="="&&(t3$4=m$7$0[2],Array.isArray(t3$4)&&(t4$4=t3$4.length,t4$4===3&&t3$4[0]==="data")))))){k$3=t3$4[1];v$3=t3$4[2];kv$0.push(pair$1);contents$0=["array"];}else{x$14=m$7$0;contents$0=wrap$0(x$14);}}}node$0=form$4.env.mark(["symbol","ENode"]);return["send",node$0,["data",tags$0,kv$0,contents$0]];};t0$29=getProjector(overridable$0)($targ$6);if(t0$29[0]&&(t1$17=getProjector(mac$0("%"))(t0$29[1]),t1$17[0])){buildnode_mac$0=t1$17[1];}else{___match_error($targ$6,"overridable! mac{\"%\"}! buildnode_mac{context\n info and {=> env}\n form\n #data{descr, var contents}}");}$targ$7=function $targ$7(context$1,info$5,form$5,temp$11$0){var t0$30=void 0;var text$1=void 0;var text$0=void 0;var m$10$0=void 0;var t0$31=void 0;var t1$18=void 0;var t2$9=void 0;var t3$6=void 0;var arg$1=void 0;var ph$4$0=void 0;t0$30=temp$11$0;arg$1=t0$30;ph$4$0=t0$30;t0$31=ph$4$0;t1$18=t0$31.length;if(t1$18===3&&t0$31[0]==="send"&&(t2$9=t0$31[1],Array.isArray(t2$9)&&(t3$6=t2$9.length,t3$6===2&&t2$9[0]==="symbol"&&t2$9[1]==="'"))){t0$31[2];return["send",["symbol","String"],["data",arg$1]];}else{return["value",(m$10$0=info$5.gettext(arg$1),getChecker(RegExp("^\\[(.|\\n)*\\]$",""))(m$10$0)?(text$0=m$10$0,text$0.substring(1,text$0.length-1)):(text$1=m$10$0,text$1))];}};t0$32=getProjector(mac$0("S"))($targ$7);if(t0$32[0]){S_mac$0=t0$32[1];}else{___match_error($targ$7,"mac{\"S\"}! S_mac{context, info, form, match arg}");}$targ$8=function $targ$8(context$2,info$6,form$6,ph$5$0){var arg$2=void 0;var t0$33=void 0;var t1$19=void 0;t0$33=ph$5$0;t1$19=t0$33.length;if(t1$19===1&&t0$33[0]==="void"){return["send",["send",["symbol","console"],["send",["symbol","."],["data",["void"],["symbol","log"]]]],["data"]];}else{arg$2=ph$5$0;return["multi",["send",["symbol","="],["data",["symbol","t"],arg$2]],["send",["send",["symbol","console"],["send",["symbol","."],["data",["void"],["symbol","log"]]]],["data",["symbol","t"]]],["symbol","t"]];}};t0$34=getProjector(mac$0("print"))($targ$8);if(t0$34[0]){print_mac$0=t0$34[1];}else{___match_error($targ$8,"mac{\"print\"}! print_mac{context, info, form, match}");}$targ$9=function $targ$9(ctx$1,info$7,form$7,expr$5){var accum$2=void 0;var cases$0=void 0;accum$2={};accum$2["project"]=function project(temp$12$0){var t0$35=void 0;var t0$37=void 0;var t1$21=void 0;var $targ$25=void 0;var at$0=void 0;var self$2=void 0;var args$3=void 0;var body$4=void 0;var args$2=void 0;var pre$0=void 0;var body$3=void 0;var post$0=void 0;var gen$0=void 0;var $$15078$0=void 0;var $$15079$0=void 0;var $$15080$0=void 0;var $$15081$0=void 0;var $$15082$0=void 0;var $$15083$0=void 0;var $$15084$0=void 0;var $$15085$0=void 0;var $$15086$0=void 0;var t0$36=void 0;var t1$20=void 0;var t2$10=void 0;var t3$7=void 0;var t4$6=void 0;var t5$4=void 0;var expr$6=void 0;var ph$6$0=void 0;t0$35=temp$12$0;expr$6=t0$35;ph$6$0=t0$35;t0$36=ph$6$0;t1$20=t0$36.length;if(($$15080$0=t1$20===3)&&($$15081$0=t0$36[0]==="send")&&(t2$10=t0$36[1],($$15083$0=Array.isArray(t2$10))&&(t3$7=t2$10.length,($$15085$0=t3$7===2)&&($$15086$0=t2$10[0]==="symbol")&&t2$10[1]==="_lambda"&&(t4$6=t0$36[2],Array.isArray(t4$6)&&(t5$4=t4$6.length,t5$4===6&&t4$6[0]==="data"))))){args$2=t4$6[1];pre$0=t4$6[2];body$3=t4$6[3];post$0=t4$6[4];gen$0=t4$6[5];$targ$25=info$7.mark(["symbol","@"],["symbol","self"]);t0$37=$targ$25;if(Array.isArray(t0$37)&&(t1$21=t0$37.length,t1$21===2)){at$0=t0$37[0];self$2=t0$37[1];}else{___match_error($targ$25,"{at, self}");}[at$0,self$2];return["send",["symbol","_lambda"],["data",args$2,["multi",pre$0,["send",["symbol","="],["data",["send",["symbol","let"],["send",["symbol","and"],["data",at$0,self$2]]],["symbol","this"]]]],body$3,post$0,gen$0]];}else{if($$15086$0&&t2$10[1]==="->"&&(t4$6=t0$36[2],Array.isArray(t4$6)&&(t5$4=t4$6.length,t5$4===3&&t4$6[0]==="data"))){args$3=t4$6[1];body$4=t4$6[2];return info$7.mark(["send",["symbol","@->"],["data",args$3,body$4]]);}else{throw send(send(ErrorFactory(["syntax","invalidMethod"]),"create",true),__amp____colon__(["Invalid use of method"],{"node":expr$6,"::objinsert":1}));}}};cases$0=accum$2;return multimacro$0(cases$0)(ctx$1,info$7,form$7,expr$5);};t0$38=getProjector(mac$0("method"))($targ$9);if(t0$38[0]){method_mac$0=t0$38[1];}else{___match_error($targ$9,"mac{\"method\"}! method_mac{ctx, info, form, expr}");}$targ$10=function $targ$10(context$3,temp$13$0,form$8,expr$7){var t0$39=void 0;var t0$54=void 0;var t1$30=void 0;var t2$17=void 0;var t0$55=void 0;var name$4=void 0;var name$3=void 0;var super$3=void 0;var name$2=void 0;var super$2=void 0;var $$15186$0=void 0;var $$15187$0=void 0;var $$15188$0=void 0;var $$15189$0=void 0;var $$15190$0=void 0;var t0$53=void 0;var t1$29=void 0;var t2$16=void 0;var t3$13=void 0;var t4$11=void 0;var t5$9=void 0;var bridge$$15185$0=void 0;var stmts$3=void 0;var ph$7$0=void 0;var stmts$2=void 0;var $$15192$0=void 0;var $$15193$0=void 0;var t0$52=void 0;var t1$28=void 0;var t2$15=void 0;var t3$12=void 0;var m$11$0=void 0;var helper$0=void 0;var info$8=void 0;var env$3=void 0;t0$39=temp$13$0;info$8=t0$39;if(___hasprop(t0$39,"env")){env$3=t0$39.env;}else{___match_error(temp$13$0);}helper$0=function helper(name$1,super$1,stmts$1){var m$14=void 0;var acc$3=void 0;var temp$14=void 0;var t0$47=void 0;var t1$27=void 0;var t0$48=void 0;var $targ$28=void 0;var env2$0=void 0;var it$3=void 0;var cls$0=void 0;var name_str$0=void 0;var t0$49=void 0;var m$12$0=void 0;var t0$50=void 0;var t0$51=void 0;var other$3=void 0;var bridge$$15209$0=void 0;var m$13$0=void 0;var statics$0=void 0;var ctor$0=void 0;var new_stmts$0=void 0;var $targ$26=void 0;var ctor_args$0=void 0;var ctor_body$0=void 0;var ctor_expr$0=void 0;var node$1=void 0;statics$0=["data",["symbol","="]];ctor$0=[["data"],__amp__(["multi"],{"env":env$3})];acc$3=[];temp$14=null;m$14=null;var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{$8:for(var _iterator5=stmts$1[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){m$14=_step5.value;var t0$41=void 0;var t1$23=void 0;var t2$12=void 0;var t3$9=void 0;var t4$8=void 0;var t5$6=void 0;var t6$4=void 0;var t7$4=void 0;var t8$1=void 0;var t0$42=void 0;var t1$24=void 0;var t2$13=void 0;var t3$10=void 0;var t4$9=void 0;var t5$7=void 0;var t6$5=void 0;var t7$5=void 0;var t8$2=void 0;var t9$0=void 0;var t10$0=void 0;var t11$0=void 0;var t12$0=void 0;var accum$3=void 0;var accum$4=void 0;var accum$5=void 0;var accum$6=void 0;var opt$1=void 0;var stmt$1=void 0;var lhs$0=void 0;var rhs$0=void 0;var args$4=void 0;var body$5=void 0;var methods$0=void 0;var t0$40=void 0;var t1$22=void 0;var t2$11=void 0;var t3$8=void 0;var t4$7=void 0;var t5$5=void 0;var t6$3=void 0;var t7$3=void 0;var t8$0=void 0;var bridge$$15222$0=void 0;t0$40=m$14;if(Array.isArray(t0$40)&&(t1$22=t0$40.length,t1$22===3&&t0$40[0]==="send"&&(t2$11=t0$40[1],Array.isArray(t2$11)&&(t3$8=t2$11.length,t3$8===2&&t2$11[0]==="symbol"&&t2$11[1]==="static"&&(t4$7=t0$40[2],Array.isArray(t4$7)&&(t5$5=t4$7.length,t5$5===2&&t4$7[0]==="data"&&(t6$3=getProjector(Body$0)(t4$7[1]),t6$3[0]&&(t7$3=t6$3[1],t8$0=t7$3.length,t8$0>=0)))))))){methods$0=Array.prototype.slice.call(t7$3,0);temp$14=statics$0=statics$0.concat(methods$0);acc$3.push(temp$14);}else{bridge$$15222$0=m$14;if(Array.isArray(bridge$$15222$0)&&(t0$41=bridge$$15222$0.length,t0$41===3&&bridge$$15222$0[0]==="send"&&(t1$23=bridge$$15222$0[1],Array.isArray(t1$23)&&(t2$12=t1$23.length,t2$12===2&&t1$23[0]==="symbol"&&t1$23[1]==="="&&(t3$9=bridge$$15222$0[2],Array.isArray(t3$9)&&(t4$8=t3$9.length,t4$8===3&&t3$9[0]==="data"&&(t5$6=t3$9[1],Array.isArray(t5$6)&&(t6$4=t5$6.length,t6$4===3&&t5$6[0]==="send"&&(t7$4=t5$6[1],Array.isArray(t7$4)&&(t8$1=t7$4.length,t8$1===2&&t7$4[0]==="symbol"&&t7$4[1]==="constructor"&&(args$4=t5$6[2],body$5=t3$9[2],true))))))))))||Array.isArray(bridge$$15222$0)&&(t0$42=bridge$$15222$0.length,t0$42===3&&bridge$$15222$0[0]==="send"&&(t1$24=bridge$$15222$0[1],Array.isArray(t1$24)&&(t2$13=t1$24.length,t2$13===2&&t1$24[0]==="symbol"&&t1$24[1]==="="&&(t3$10=bridge$$15222$0[2],Array.isArray(t3$10)&&(t4$9=t3$10.length,t4$9===3&&t3$10[0]==="data"&&(t5$7=t3$10[1],Array.isArray(t5$7)&&(t6$5=t5$7.length,t6$5===2&&t5$7[0]==="symbol"&&t5$7[1]==="constructor"&&(t7$5=t3$10[2],Array.isArray(t7$5)&&(t8$2=t7$5.length,t8$2===3&&t7$5[0]==="send"&&(t9$0=t7$5[1],Array.isArray(t9$0)&&(t10$0=t9$0.length,t10$0===2&&t9$0[0]==="symbol"&&t9$0[1]==="->"&&(t11$0=t7$5[2],Array.isArray(t11$0)&&(t12$0=t11$0.length,t12$0===3&&t11$0[0]==="data"&&(args$4=t11$0[1],body$5=t11$0[2],true))))))))))))))){ctor$0=[args$4,body$5];temp$14=["splice"];acc$3.push(temp$14);}else{t0$40=m$14;if(Array.isArray(t0$40)&&(t1$22=t0$40.length,t1$22===3&&t0$40[0]==="send"&&(t2$11=t0$40[1],Array.isArray(t2$11)&&(t3$8=t2$11.length,t3$8===2&&t2$11[0]==="symbol"&&t2$11[1]==="="&&(t4$7=t0$40[2],Array.isArray(t4$7)&&(t5$5=t4$7.length,t5$5===3&&t4$7[0]==="data")))))){lhs$0=t4$7[1];rhs$0=t4$7[2];opt$1=__amp__(pattern_handlers$0.build_object,__amp____colon__({"allow_nested":false},__amp____colon__((accum$3={},accum$3["assign"]=function assign(ph$8$0,value$0){var t0$43=void 0;var t1$25=void 0;var t0$44=void 0;var v$5=void 0;var v$4=void 0;var bridge$$15476$0=void 0;bridge$$15476$0=ph$8$0;if(Array.isArray(bridge$$15476$0)&&(t0$43=bridge$$15476$0.length,t0$43===2&&bridge$$15476$0[0]==="symbol"&&(t1$25=getProjector(camelCase$0)(bridge$$15476$0[1]),t1$25[0]&&(v$4=t1$25[1],true)))||Array.isArray(bridge$$15476$0)&&(t0$44=bridge$$15476$0.length,t0$44===2&&bridge$$15476$0[0]==="value"&&(v$4=bridge$$15476$0[1],true))){return["do",__lt____lt____colon__$0(["assign",["send",["send",name$1,["send",["symbol","."],["data",["void"],["symbol","prototype"]]]],["value",v$4]],value$0],v$4)];}else{v$5=ph$8$0;return["do",__lt____lt____colon__$0(["assign",["send",["send",name$1,["send",["symbol","."],["data",["void"],["symbol","prototype"]]]],v$5],value$0],v$5)];}},accum$3),__amp____colon__((accum$4={},accum$4["declare"]=function declare(vars$0){return[];},accum$4),__amp____colon__((accum$5={},accum$5["wrap_target"]=function wrap_target(ph$9$0){var t0$46=void 0;var $targ$27=void 0;var other_env$0=void 0;var it$2=void 0;var it2$0=void 0;var other$2=void 0;var args$5=void 0;var body$6=void 0;var t0$45=void 0;var t1$26=void 0;var t2$14=void 0;var t3$11=void 0;var t4$10=void 0;var t5$8=void 0;t0$45=ph$9$0;t1$26=t0$45.length;if(t1$26===3&&t0$45[0]==="send"&&(t2$14=t0$45[1],Array.isArray(t2$14)&&(t3$11=t2$14.length,t3$11===2&&t2$14[0]==="symbol"&&t2$14[1]==="->"&&(t4$10=t0$45[2],Array.isArray(t4$10)&&(t5$8=t4$10.length,t5$8===3&&t4$10[0]==="data"))))){args$5=t4$10[1];body$6=t4$10[2];$targ$27=body$6;t0$46=$targ$27;if(___hasprop(t0$46,"env")){other_env$0=t0$46.env;}else{___match_error($targ$27,"{env => other_env}");}it$2=__amp__(["symbol","@"],{"env":other_env$0});it2$0=__amp__(["symbol","self"],{"env":other_env$0});return["send",["symbol","_lambda"],["data",args$5,["send",["symbol","splice"],["data",["multi",["send",["symbol","="],["data",["send",["symbol","let"],it$2],["symbol","this"]]],["send",["symbol","="],["data",["send",["symbol","let"],it2$0],["symbol","this"]]]]]],body$6,["value",null],["value",false]]];}else{other$2=ph$9$0;return other$2;}},accum$5),(accum$6={},accum$6["success"]=function success(temp$15$0){return["splice"];},accum$6))))));temp$14=PatternCompiler$0(lhs$0,info$8,opt$1).extract_from_rhs(rhs$0);acc$3.push(temp$14);}else{stmt$1=m$14;throw ErrorFactory(["syntax","class"]).create("Illegal statement in class",{"stmt":stmt$1});acc$3.push(temp$14);}}}}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}new_stmts$0=acc$3;$targ$26=ctor$0;t0$47=$targ$26;if(Array.isArray(t0$47)&&(t1$27=t0$47.length,t1$27===2)){ctor_args$0=t0$47[0];ctor_body$0=t0$47[1];}else{___match_error($targ$26,"{ctor_args, ctor_body}");}[ctor_args$0,ctor_body$0];$targ$28=ctor_body$0;t0$48=$targ$28;if(___hasprop(t0$48,"env")){env2$0=t0$48.env;}else{___match_error($targ$28,"{env => env2}");}it$3=__amp__(["symbol","@"],{"env":env2$0});cls$0=["send",["symbol","_lambda"],["data",ctor_args$0,["send",["symbol","="],["data",it$3,["send",["symbol","if"],["data",["send",["symbol","not"],["data",["void"],["send",["symbol","?"],["data",name$1,["symbol","this"]]]]],["send",["send",["symbol","Object"],["send",["symbol","."],["data",["void"],["symbol","create"]]]],["data",["send",name$1,["send",["symbol","."],["data",["void"],["symbol","prototype"]]]]]],["symbol","this"]]]]],ctor_body$0,it$3,["value",false]]];if(super$1){ctor_expr$0=["send",["symbol","___extend"],["data",cls$0,super$1]];}else{ctor_expr$0=cls$0;}m$12$0=name$1;if(Array.isArray(m$12$0)&&(t0$49=m$12$0.length,t0$49===2&&m$12$0[0]==="symbol")){name_str$0=m$12$0[1];statics$0.push(["send",["symbol","="],["data",["value","::name"],["value",name_str$0]]]);}else{undefined;}statics$0.push(["send",["symbol","="],["data",["value","::egclass"],["symbol","true"]]]);node$1=["splice",["send",["symbol","="],["data",["send",["symbol","let"],name$1],ctor_expr$0]]].concat(new_stmts$0).concat([["send",["symbol","&:"],["data",name$1,statics$0]],name$1]);m$13$0=context$3;bridge$$15209$0=m$13$0;if(Array.isArray(bridge$$15209$0)&&(t0$50=bridge$$15209$0.length,t0$50===2&&bridge$$15209$0[0]==="expr"&&bridge$$15209$0[1]==="multi")||Array.isArray(bridge$$15209$0)&&(t0$51=bridge$$15209$0.length,t0$51===2&&bridge$$15209$0[0]==="expr"&&bridge$$15209$0[1]==="ignore")){return node$1;}else{other$3=m$13$0;return["multi",node$1];}};m$11$0=expr$7;if(($$15192$0=Array.isArray(m$11$0))&&(t0$52=m$11$0.length,t0$52===3&&m$11$0[0]==="data"&&(ph$7$0=m$11$0[1],t1$28=getProjector(Body$0)(m$11$0[2]),t1$28[0]&&(t2$15=t1$28[1],t3$12=t2$15.length,t3$12>=0)))){stmts$2=Array.prototype.slice.call(t2$15,0);t0$53=ph$7$0;if(($$15187$0=Array.isArray(t0$53))&&(t1$29=t0$53.length,($$15189$0=t1$29===3)&&($$15190$0=t0$53[0]==="send")&&(t2$16=t0$53[1],Array.isArray(t2$16)&&(t3$13=t2$16.length,t3$13===2&&t2$16[0]==="symbol"&&t2$16[1]==="<"&&(t4$11=t0$53[2],Array.isArray(t4$11)&&(t5$9=t4$11.length,t5$9===3&&t4$11[0]==="data")))))){name$2=t4$11[1];super$2=t4$11[2];return helper$0(name$2,super$2,stmts$2);}else{if($$15190$0&&(name$3=t0$53[1],t2$16=t0$53[2],Array.isArray(t2$16)&&(t3$13=t2$16.length,t3$13===2&&t2$16[0]==="data"))){super$3=t2$16[1];return helper$0(name$3,super$3,stmts$2);}else{bridge$$15185$0=ph$7$0;if(Array.isArray(bridge$$15185$0)&&(t0$54=bridge$$15185$0.length,t0$54===3&&bridge$$15185$0[0]==="send"&&(name$4=bridge$$15185$0[1],t1$30=bridge$$15185$0[2],Array.isArray(t1$30)&&(t2$17=t1$30.length,t2$17===1&&t1$30[0]==="data")))||Array.isArray(bridge$$15185$0)&&(t0$55=bridge$$15185$0.length,t0$55===2&&bridge$$15185$0[0]==="symbol"&&(bridge$$15185$0[1],name$4=bridge$$15185$0,true))){return helper$0(name$4,null,stmts$2);}else{return ___match_error(ph$7$0,"`[^name {}]` or [#symbol{_} and name]");}}}}else{if($$15192$0&&t0$52===2&&m$11$0[0]==="data"&&(t1$28=getProjector(Body$0)(m$11$0[1]),t1$28[0]&&(t2$15=t1$28[1],t3$12=t2$15.length,t3$12>=0))){stmts$3=Array.prototype.slice.call(t2$15,0);return helper$0(["symbol",info$8.gensym()],null,stmts$3);}else{return ___match_error(m$11$0,"#data{Body! {*stmts}}");}}};t0$56=getProjector(mac$0("class"))($targ$10);if(t0$56[0]){class_mac$0=t0$56[1];}else{___match_error($targ$10,"mac{\"class\"}! class_mac{context, info and {=> env}, form, expr}");}$targ$11=function $targ$11(context$4,temp$16$0,form$9,expr$8){var t0$57=void 0;var t0$73=void 0;var t1$40=void 0;var t2$23=void 0;var t0$74=void 0;var name$9=void 0;var name$8=void 0;var super$6=void 0;var name$7=void 0;var super$5=void 0;var $$15839$0=void 0;var $$15840$0=void 0;var $$15841$0=void 0;var $$15842$0=void 0;var $$15843$0=void 0;var t0$72=void 0;var t1$39=void 0;var t2$22=void 0;var t3$18=void 0;var t4$15=void 0;var t5$13=void 0;var bridge$$15838$0=void 0;var stmts$6=void 0;var ph$10$0=void 0;var stmts$5=void 0;var $$15845$0=void 0;var $$15846$0=void 0;var t0$71=void 0;var t1$38=void 0;var t2$21=void 0;var t3$17=void 0;var m$15$0=void 0;var helper$1=void 0;var info$9=void 0;var env$4=void 0;t0$57=temp$16$0;info$9=t0$57;if(___hasprop(t0$57,"env")){env$4=t0$57.env;}else{___match_error(temp$16$0);}helper$1=function helper(name$5,super$4,stmts$4){var m$17=void 0;var acc$4=void 0;var temp$17=void 0;var m$19=void 0;var acc$5=void 0;var temp$20=void 0;var t0$68=void 0;var t1$37=void 0;var t0$69=void 0;var t0$70=void 0;var other$5=void 0;var bridge$$15861$0=void 0;var m$16$0=void 0;var statics$1=void 0;var ctor$1=void 0;var new_stmts$1=void 0;var methods$1=void 0;var $targ$29=void 0;var clsname$0=void 0;var cls$1=void 0;var node$2=void 0;statics$1=["data",["symbol","="]];ctor$1=[["data"],__amp__(["multi"],{"env":env$4})];acc$4=[];temp$17=null;m$17=null;var _iteratorNormalCompletion6=true;var _didIteratorError6=false;var _iteratorError6=undefined;try{var _loop=function _loop(){m$17=_step6.value;var process__minus__stmt$0=void 0;var stmt$2=void 0;stmt$2=m$17;process__minus__stmt$0=function processStmt(temp$18$0,is__minus__constructor$0){var t0$58=void 0;var accum$7=void 0;var accum$8=void 0;var accum$9=void 0;var accum$10=void 0;var opt$2=void 0;var stmt$4=void 0;var lhs$4=void 0;var rhs$5=void 0;var args$6=void 0;var rhs$4=void 0;var lhs$3=void 0;var rhs$3=void 0;var lhs$2=void 0;var rhs$2=void 0;var lhs$1=void 0;var rhs$1=void 0;var $$15905$0=void 0;var $$15906$0=void 0;var $$15907$0=void 0;var $$15908$0=void 0;var $$15909$0=void 0;var $$15910$0=void 0;var $$15911$0=void 0;var $$15912$0=void 0;var $$15913$0=void 0;var $$15914$0=void 0;var $$15915$0=void 0;var $$15916$0=void 0;var $$15917$0=void 0;var $$15918$0=void 0;var $$15919$0=void 0;var $$15920$0=void 0;var $$15921$0=void 0;var $$15922$0=void 0;var $$15923$0=void 0;var $$15924$0=void 0;var $$15925$0=void 0;var $$15926$0=void 0;var $$15927$0=void 0;var $$15928$0=void 0;var $$15929$0=void 0;var t0$59=void 0;var t1$31=void 0;var t2$18=void 0;var t3$14=void 0;var t4$12=void 0;var t5$10=void 0;var t6$6=void 0;var t7$6=void 0;var t8$3=void 0;var t9$1=void 0;var stmt$3=void 0;var ph$11$0=void 0;t0$58=temp$18$0;stmt$3=t0$58;ph$11$0=t0$58;t0$59=ph$11$0;t1$31=t0$59.length;if(($$15907$0=t1$31===3)&&($$15908$0=t0$59[0]==="send")&&(t2$18=t0$59[1],($$15910$0=Array.isArray(t2$18))&&(t3$14=t2$18.length,($$15912$0=t3$14===2)&&($$15913$0=t2$18[0]==="symbol")&&($$15914$0=t2$18[1]==="=")&&(t4$12=t0$59[2],($$15916$0=Array.isArray(t4$12))&&(t5$10=t4$12.length,($$15918$0=t5$10===3)&&($$15919$0=t4$12[0]==="data")&&(t6$6=t4$12[1],($$15921$0=Array.isArray(t6$6))&&(t7$6=t6$6.length,($$15923$0=t7$6===3)&&($$15924$0=t6$6[0]==="send")&&(t8$3=t6$6[1],($$15926$0=Array.isArray(t8$3))&&(t9$1=t8$3.length,($$15928$0=t9$1===2)&&($$15929$0=t8$3[0]==="symbol")&&t8$3[1]==="static"))))))))){lhs$1=t6$6[2];rhs$1=t4$12[2];return["static",process__minus__stmt$0(["send",["symbol","="],["data",lhs$1,rhs$1]],false)];}else{if($$15929$0&&t8$3[1]==="get"){lhs$2=t6$6[2];rhs$2=t4$12[2];return["getter",process__minus__stmt$0(["send",["symbol","="],["data",lhs$2,rhs$2]],false)];}else{if($$15929$0&&t8$3[1]==="set"){lhs$3=t6$6[2];rhs$3=t4$12[2];return["setter",process__minus__stmt$0(["send",["symbol","="],["data",lhs$3,rhs$3]],false)];}else{if(Array.isArray(t0$59)&&(t1$31=t0$59.length,t1$31===3&&t0$59[0]==="send"&&(t2$18=t0$59[1],Array.isArray(t2$18)&&(t3$14=t2$18.length,t3$14===2&&t2$18[0]==="symbol"&&t2$18[1]==="="&&(t4$12=t0$59[2],Array.isArray(t4$12)&&(t5$10=t4$12.length,t5$10===3&&t4$12[0]==="data"&&(t6$6=t4$12[1],Array.isArray(t6$6)&&(t7$6=t6$6.length,t7$6===3&&t6$6[0]==="send"&&(t8$3=t6$6[1],Array.isArray(t8$3)&&(t9$1=t8$3.length,t9$1===2&&t8$3[0]==="symbol"&&t8$3[1]==="constructor"&&(args$6=t6$6[2],rhs$4=t4$12[2],is__minus__constructor$0===false))))))))))){return process__minus__stmt$0(stmt$3,true);}else{t1$31=t0$59.length;if(t1$31===3&&t0$59[0]==="send"&&(t2$18=t0$59[1],Array.isArray(t2$18)&&(t3$14=t2$18.length,t3$14===2&&t2$18[0]==="symbol"&&t2$18[1]==="="&&(t4$12=t0$59[2],Array.isArray(t4$12)&&(t5$10=t4$12.length,t5$10===3&&t4$12[0]==="data"))))){lhs$4=t4$12[1];rhs$5=t4$12[2];opt$2=__amp__(pattern_handlers$0.build_object,__amp____colon__({"allow_nested":false},__amp____colon__((accum$7={},accum$7["assign"]=function assign(ph$12$0,value$1){var t0$60=void 0;var t1$32=void 0;var t0$61=void 0;var v$7=void 0;var v$6=void 0;var bridge$$16088$0=void 0;bridge$$16088$0=ph$12$0;if(Array.isArray(bridge$$16088$0)&&(t0$60=bridge$$16088$0.length,t0$60===2&&bridge$$16088$0[0]==="symbol"&&(t1$32=getProjector(camelCase$0)(bridge$$16088$0[1]),t1$32[0]&&(v$6=t1$32[1],true)))||Array.isArray(bridge$$16088$0)&&(t0$61=bridge$$16088$0.length,t0$61===2&&bridge$$16088$0[0]==="value"&&(v$6=bridge$$16088$0[1],true))){return["do",__lt____lt____colon__$0(["method",["value",v$6],value$1],v$6)];}else{v$7=ph$12$0;return["do",__lt____lt____colon__$0(["method",v$7,value$1],v$7)];}},accum$7),__amp____colon__((accum$8={},accum$8["declare"]=function declare(vars$1){return[];},accum$8),__amp____colon__((accum$9={},accum$9["wrap_target"]=function wrap_target(ph$13$0){var t0$63=void 0;var s$1=void 0;var rest$3=void 0;var t0$64=void 0;var m$18$0=void 0;var t0$65=void 0;var t1$34=void 0;var $targ$32=void 0;var super__minus__call$0=void 0;var rest$2=void 0;var t0$66=void 0;var t1$35=void 0;var $targ$30=void 0;var other_env$1=void 0;var it$4=void 0;var it2$1=void 0;var $targ$31=void 0;var pre$1=void 0;var meat$0=void 0;var other$4=void 0;var args$7=void 0;var body$7=void 0;var t0$62=void 0;var t1$33=void 0;var t2$19=void 0;var t3$15=void 0;var t4$13=void 0;var t5$11=void 0;t0$62=ph$13$0;t1$33=t0$62.length;if(t1$33===3&&t0$62[0]==="send"&&(t2$19=t0$62[1],Array.isArray(t2$19)&&(t3$15=t2$19.length,t3$15===2&&t2$19[0]==="symbol"&&t2$19[1]==="->"&&(t4$13=t0$62[2],Array.isArray(t4$13)&&(t5$11=t4$13.length,t5$11===3&&t4$13[0]==="data"))))){args$7=t4$13[1];body$7=t4$13[2];$targ$30=body$7;t0$63=$targ$30;if(___hasprop(t0$63,"env")){other_env$1=t0$63.env;}else{___match_error($targ$30,"{env => other_env}");}it$4=__amp__(["symbol","@"],{"env":other_env$1});it2$1=__amp__(["symbol","self"],{"env":other_env$1});if(is__minus__constructor$0){if(super$4){m$18$0=body$7;if(Array.isArray(m$18$0)&&(t0$64=m$18$0.length,t0$64>=2&&m$18$0[0]==="multi")){s$1=m$18$0[1];rest$3=Array.prototype.slice.call(m$18$0,2);$targ$32=[s$1,["multi"].concat(rest$3)];}else{$targ$32=[body$7,["splice"]];}}else{$targ$32=[["splice"],body$7];}t0$65=$targ$32;if(Array.isArray(t0$65)&&(t1$34=t0$65.length,t1$34===2)){super__minus__call$0=t0$65[0];rest$2=t0$65[1];}else{___match_error($targ$32,"{super-call, rest}");}[super__minus__call$0,rest$2];$targ$31=[["splice",super__minus__call$0,["send",["symbol","="],["data",["send",["symbol","let"],it$4],["symbol","this"]]],["send",["symbol","="],["data",["send",["symbol","let"],it2$1],["symbol","this"]]]],["splice",rest$2,["symbol","undefined"]]];}else{$targ$31=[["splice",["send",["symbol","="],["data",["send",["symbol","let"],it$4],["symbol","this"]]],["send",["symbol","="],["data",["send",["symbol","let"],it2$1],["symbol","this"]]]],body$7];}t0$66=$targ$31;if(Array.isArray(t0$66)&&(t1$35=t0$66.length,t1$35===2)){pre$1=t0$66[0];meat$0=t0$66[1];}else{___match_error($targ$31,"{pre, meat}");}[pre$1,meat$0];return["send",["symbol","_lambda"],["data",args$7,pre$1,meat$0,["value",null],["value",false]]];}else{other$4=ph$13$0;return other$4;}},accum$9),(accum$10={},accum$10["success"]=function success(temp$19$0){return["splice"];},accum$10))))));return PatternCompiler$0(lhs$4,info$9,opt$2).extract_from_rhs(rhs$5);}else{stmt$4=ph$11$0;throw ErrorFactory(["syntax","class"]).create("Illegal statement in class",{"stmt":stmt$4});}}}}}};temp$17=process__minus__stmt$0(stmt$2,false);acc$4.push(temp$17);};$9:for(var _iterator6=stmts$4[Symbol.iterator](),_step6;!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=true){_loop();}}catch(err){_didIteratorError6=true;_iteratorError6=err;}finally{try{if(!_iteratorNormalCompletion6&&_iterator6.return){_iterator6.return();}}finally{if(_didIteratorError6){throw _iteratorError6;}}}new_stmts$1=acc$4;acc$5=[];temp$20=null;m$19=null;var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{var _loop2=function _loop2(){m$19=_step7.value;var process__minus__stmt$1=void 0;var stmt$5=void 0;stmt$5=m$19;process__minus__stmt$1=function processStmt(ph$14$0){var rval$0=void 0;var $targ$33=void 0;var rval$1=void 0;var $targ$34=void 0;var rval$2=void 0;var $targ$35=void 0;var stmt$6=void 0;var name$6=void 0;var body$8=void 0;var spec$2=void 0;var spec$1=void 0;var spec$0=void 0;var $$16290$0=void 0;var $$16291$0=void 0;var $$16292$0=void 0;var t0$67=void 0;var t1$36=void 0;var t2$20=void 0;var t3$16=void 0;var t4$14=void 0;var t5$12=void 0;var t6$7=void 0;var t7$7=void 0;var t8$4=void 0;var t9$2=void 0;var t10$1=void 0;var t11$1=void 0;t0$67=ph$14$0;t1$36=t0$67.length;if(($$16292$0=t1$36===2)&&t0$67[0]==="getter"){spec$0=t0$67[1];rval$0=process__minus__stmt$1(spec$0);$targ$33="get";rval$0[1][1]=$targ$33;return rval$0;}else{if($$16292$0&&t0$67[0]==="setter"){spec$1=t0$67[1];rval$1=process__minus__stmt$1(spec$1);$targ$34="set";rval$1[1][1]=$targ$34;return rval$1;}else{if($$16292$0&&t0$67[0]==="static"){spec$2=t0$67[1];rval$2=process__minus__stmt$1(spec$2);$targ$35="static";rval$2[1][1]=$targ$35;return rval$2;}else{if(t1$36===3&&t0$67[0]==="splice"&&(t2$20=t0$67[1],Array.isArray(t2$20)&&(t3$16=t2$20.length,t3$16===1&&t2$20[0]==="splice"&&(t4$14=t0$67[2],Array.isArray(t4$14)&&(t5$12=t4$14.length,t5$12===2&&t4$14[0]==="multi"&&(t6$7=t4$14[1],Array.isArray(t6$7)&&(t7$7=t6$7.length,t7$7===3&&t6$7[0]==="multi"&&(t8$4=t6$7[1],Array.isArray(t8$4)&&(t9$2=t8$4.length,t9$2===3&&t8$4[0]==="method"&&(name$6=t8$4[1],body$8=t8$4[2],t10$1=t6$7[2],Array.isArray(t10$1)&&(t11$1=t10$1.length,t11$1===1&&t10$1[0]==="splice"))))))))))){return["data",["value",""],name$6,body$8];}else{stmt$6=ph$14$0;throw ErrorFactory(["syntax","class"]).create("Probably illegal statement in class",{"stmt":stmt$6});}}}}};temp$20=process__minus__stmt$1(stmt$5);acc$5.push(temp$20);};$10:for(var _iterator7=new_stmts$1[Symbol.iterator](),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){_loop2();}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}methods$1=acc$5;$targ$29=name$5;t0$68=$targ$29;if(Array.isArray(t0$68)&&(t1$37=t0$68.length,t1$37===2&&t0$68[0]==="symbol")){clsname$0=t0$68[1];}else{___match_error($targ$29,"#symbol{clsname}");}cls$1=["js_class",["value",clsname$0],super$4||["value",null],["data"].concat(methods$1)];node$2=["splice",["send",["symbol","="],["data",["send",["symbol","let"],name$5],cls$1]],name$5];m$16$0=context$4;bridge$$15861$0=m$16$0;if(Array.isArray(bridge$$15861$0)&&(t0$69=bridge$$15861$0.length,t0$69===2&&bridge$$15861$0[0]==="expr"&&bridge$$15861$0[1]==="multi")||Array.isArray(bridge$$15861$0)&&(t0$70=bridge$$15861$0.length,t0$70===2&&bridge$$15861$0[0]==="expr"&&bridge$$15861$0[1]==="ignore")){return node$2;}else{other$5=m$16$0;return["multi",node$2];}};m$15$0=expr$8;if(($$15845$0=Array.isArray(m$15$0))&&(t0$71=m$15$0.length,t0$71===3&&m$15$0[0]==="data"&&(ph$10$0=m$15$0[1],t1$38=getProjector(Body$0)(m$15$0[2]),t1$38[0]&&(t2$21=t1$38[1],t3$17=t2$21.length,t3$17>=0)))){stmts$5=Array.prototype.slice.call(t2$21,0);t0$72=ph$10$0;if(($$15840$0=Array.isArray(t0$72))&&(t1$39=t0$72.length,($$15842$0=t1$39===3)&&($$15843$0=t0$72[0]==="send")&&(t2$22=t0$72[1],Array.isArray(t2$22)&&(t3$18=t2$22.length,t3$18===2&&t2$22[0]==="symbol"&&t2$22[1]==="<"&&(t4$15=t0$72[2],Array.isArray(t4$15)&&(t5$13=t4$15.length,t5$13===3&&t4$15[0]==="data")))))){name$7=t4$15[1];super$5=t4$15[2];return helper$1(name$7,super$5,stmts$5);}else{if($$15843$0&&(name$8=t0$72[1],t2$22=t0$72[2],Array.isArray(t2$22)&&(t3$18=t2$22.length,t3$18===2&&t2$22[0]==="data"))){super$6=t2$22[1];return helper$1(name$8,super$6,stmts$5);}else{bridge$$15838$0=ph$10$0;if(Array.isArray(bridge$$15838$0)&&(t0$73=bridge$$15838$0.length,t0$73===3&&bridge$$15838$0[0]==="send"&&(name$9=bridge$$15838$0[1],t1$40=bridge$$15838$0[2],Array.isArray(t1$40)&&(t2$23=t1$40.length,t2$23===1&&t1$40[0]==="data")))||Array.isArray(bridge$$15838$0)&&(t0$74=bridge$$15838$0.length,t0$74===2&&bridge$$15838$0[0]==="symbol"&&(bridge$$15838$0[1],name$9=bridge$$15838$0,true))){return helper$1(name$9,null,stmts$5);}else{return ___match_error(ph$10$0,"`[^name {}]` or [#symbol{_} and name]");}}}}else{if($$15845$0&&t0$71===2&&m$15$0[0]==="data"&&(t1$38=getProjector(Body$0)(m$15$0[1]),t1$38[0]&&(t2$21=t1$38[1],t3$17=t2$21.length,t3$17>=0))){stmts$6=Array.prototype.slice.call(t2$21,0);return helper$1(["symbol",info$9.gensym()],null,stmts$6);}else{return ___match_error(m$15$0,"#data{Body! {*stmts}}");}}};t0$75=getProjector(mac$0("jsclass"))($targ$11);if(t0$75[0]){jsclass_mac$0=t0$75[1];}else{___match_error($targ$11,"mac{\"jsclass\"}! jsclass_mac{context, info and {=> env}, form, expr}");}errf_macro$0=function errf_macro(tags$1){return function(ph$15$0,temp$21$0,form$10,expr$9){var x$15=void 0;var x$16=void 0;var other$6=void 0;var args$8=void 0;var $$16630$0=void 0;var $$16631$0=void 0;var t0$76=void 0;var m$20$0=void 0;var ctx$2=void 0;var bridge$$16599$0=void 0;bridge$$16599$0=ph$15$0;if((x$15=bridge$$16599$0,x$15 instanceof Array&&x$15[0]==="check")||(x$16=bridge$$16599$0,x$16 instanceof Array&&x$16[0]==="project")){return["nostep",form$10];}else{ctx$2=ph$15$0;m$20$0=expr$9;if(($$16630$0=Array.isArray(m$20$0))&&(t0$76=m$20$0.length,t0$76===1&&m$20$0[0]==="void")){return["send",["symbol","ErrorFactory"],["data",["data"].concat(tags$1)]];}else{if($$16630$0&&t0$76>=1&&m$20$0[0]==="data"){args$8=Array.prototype.slice.call(m$20$0,1);return["send",["send",["send",["symbol","ErrorFactory"],["data",["data"].concat(tags$1)]],["send",["symbol","."],["data",["void"],["symbol","create"]]]],["data"].concat(args$8)];}else{other$6=m$20$0;return["macro",errf_macro$0(tags$1.concat([other$6]))];}}}};};$targ$12=errf_macro$0([]);t0$77=getProjector(mac$0("E"))($targ$12);if(t0$77[0]){E_mac$0=t0$77[1];}else{___match_error($targ$12,"mac{\"E\"}! E_mac");}$targ$13=function $targ$13(context$5,info$10,form$11,ph$16$0){var t0$79=void 0;var t1$42=void 0;var t2$25=void 0;var x$17=void 0;var level$0=void 0;var s$2=void 0;var t0$78=void 0;var bridge$$16663$0=void 0;var t1$41=void 0;var t2$24=void 0;t0$78=ph$16$0;bridge$$16663$0=t0$78;if((Array.isArray(bridge$$16663$0)&&(t0$79=bridge$$16663$0.length,t0$79>=2&&t0$79<=3&&bridge$$16663$0[0]==="data"&&(x$17=bridge$$16663$0[1],t1$42=2>=t0$79?["value",1]:bridge$$16663$0[2],Array.isArray(t1$42)&&(t2$25=t1$42.length,t2$25===2&&t1$42[0]==="value"&&(level$0=t1$42[1],true))))||(x$17=bridge$$16663$0,level$0=1,true))&&(t1$41=x$17,Array.isArray(t1$41)&&(t2$24=t1$41.length,t2$24===2&&t1$41[0]==="symbol"))){s$2=t1$41[1];return __amp____colon__(x$17,{"level":level$0});}else{return ___match_error(ph$16$0,"[#data{x, #value{level} = #value{1}} or x and level is 1] and #symbol{s} is x");}};t0$80=getProjector(mac$0("outer"))($targ$13);if(t0$80[0]){outer_mac$0=t0$80[1];}else{___match_error($targ$13,"mac{\"outer\"}! outer_mac{context, info, form, match}");}$targ$14=function $targ$14(context$6,info$11,form$12,temp$22$0){var t0$81=void 0;var t1$43=void 0;var t2$26=void 0;var t3$19=void 0;var name$10=void 0;var expr$10=void 0;t0$81=temp$22$0;if(Array.isArray(t0$81)&&(t1$43=t0$81.length,t1$43===3&&t0$81[0]==="data"&&(t2$26=t0$81[1],Array.isArray(t2$26)&&(t3$19=t2$26.length,t3$19===2&&t2$26[0]==="symbol")))){name$10=t2$26[1];expr$10=t0$81[2];}else{___match_error(temp$22$0);}return["tagscope",name$10,expr$10];};t0$82=getProjector(mac$0("tagscope"))($targ$14);if(t0$82[0]){tagscope_mac$0=t0$82[1];}else{___match_error($targ$14,"mac{\"ta