UNPKG

earlgrey

Version:

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

1 lines 74.6 kB
'use strict';require('earlgrey-runtime/5');var accum$0=void 0;var $targ$1=void 0;var accum$1=void 0;var $targ$2=void 0;var accum$2=void 0;var accum$3=void 0;var $targ$3=void 0;var accum$4=void 0;var $targ$4=void 0;var accum$5=void 0;var $targ$30=void 0;var accum$6=void 0;var $targ$31=void 0;var accum$7=void 0;var $targ$36=void 0;var accum$8=void 0;var $targ$37=void 0;var accum$9=void 0;var $targ$43=void 0;var $targ$44=void 0;var $0$0=void 0;var __lt____lt____colon__$0=void 0;var util$0=void 0;var GenSym$0=void 0;var gensym$0=void 0;var classify$0=void 0;var classify_contiguous$0=void 0;var identity$0=void 0;var Body$0=void 0;var camelCase$0=void 0;var checker_db$0=void 0;var PatternInfo$0=void 0;var PatternCompiler$0=void 0;var PatternProcessor$0=void 0;var $targ$0=void 0;var assemble_conditions$0=void 0;var assemble_pattern$0=void 0;var inject_below_uses$0=void 0;var checkall$0=void 0;var same_block$0=void 0;var parse_clauses$0=void 0;var opt_clauses$0=void 0;var weave_clauses$0=void 0;$0$0=require("./location");__lt____lt____colon__$0=getProperty($0$0,"<<:","./location");util$0=require("./util");GenSym$0=getProperty(util$0,"GenSym","util");gensym$0=getProperty(util$0,"gensym","util");classify$0=getProperty(util$0,"classify","util");classify_contiguous$0=getProperty(util$0,"classify_contiguous","util");identity$0=getProperty(util$0,"identity","util");Body$0=getProperty(util$0,"Body","util");camelCase$0=getProperty(util$0,"camelCase","util");checker_db$0=getProperty(util$0,"checker_db","util");PatternInfo$0=function PatternInfo(){var t0$0=void 0;var m$0$0=void 0;var __at___$0=void 0;if(!getChecker(PatternInfo$0)(this)){__at___$0=Object.create(PatternInfo$0.prototype);}else{__at___$0=this;}m$0$0=arguments;t0$0=m$0$0.length;if(t0$0>=0&&t0$0<=3){__at___$0["handlers"]=0>=t0$0?[]:m$0$0[0];__at___$0["vars"]=1>=t0$0?[]:m$0$0[1];__at___$0["arguments"]=2>=t0$0?[]:m$0$0[2];undefined;}else{___match_error(m$0$0,"{@handlers = {}, @vars = {}, @arguments = {}}");}return __at___$0;};__amp____colon__((accum$0={},accum$0["mergeAll"]=function mergeAll(pinfos$0){var f$0=void 0;var rval$0=void 0;rval$0=PatternInfo$0();f$0=function f(acc$0,pinfo$0){return acc$0.merge(pinfo$0.pinfo||pinfo$0);};return pinfos$0.reduce(f$0,rval$0);},accum$0),__amp____colon__(($targ$1="PatternInfo",accum$1={},accum$1["::name"]=$targ$1,accum$1),($targ$2=true,accum$2={},accum$2["::egclass"]=$targ$2,accum$2)));PatternInfo$0.prototype["merge"]=function merge(pinfo$1){var __at___$1=void 0;var self$0=void 0;__at___$1=this;self$0=this;__at___$1["handlers"]=__at___$1.handlers.concat(pinfo$1.handlers);__at___$1["vars"]=__at___$1.vars.concat(pinfo$1.vars);__at___$1["arguments"]=__at___$1.arguments.concat(pinfo$1.arguments);return __at___$1;};__amp____colon__(PatternInfo$0,__amp____colon__((accum$3={},accum$3["mergeAll"]=function mergeAll(pinfos$1){var f$1=void 0;var rval$1=void 0;rval$1=PatternInfo$0();f$1=function f(acc$1,pinfo$2){return acc$1.merge(pinfo$2.pinfo||pinfo$2);};return pinfos$1.reduce(f$1,rval$1);},accum$3),__amp____colon__(($targ$3="PatternInfo",accum$4={},accum$4["::name"]=$targ$3,accum$4),($targ$4=true,accum$5={},accum$5["::egclass"]=$targ$4,accum$5))));PatternCompiler$0=function PatternCompiler(temp$0$0,temp$1$0,temp$2$0){var __at___$2=void 0;if(!getChecker(PatternCompiler$0)(this)){__at___$2=Object.create(PatternCompiler$0.prototype);}else{__at___$2=this;}__at___$2["pattern"]=temp$0$0;__at___$2["info"]=temp$1$0;__at___$2["opt"]=temp$2$0;return __at___$2;};PatternCompiler$0.prototype["compile"]=function compile(){var tags$0=void 0;var $targ$5=void 0;var $targ$6=void 0;var $targ$7=void 0;var $targ$8=void 0;var $targ$9=void 0;var $targ$10=void 0;var __at___$3=void 0;var self$1=void 0;__at___$3=this;self$1=this;if(__at___$3.compiled){return __at___$3.compiled;}tags$0=clone(__at___$3.opt.tags||{});tags$0["group_id"]=tags$0.group_id||gensym$0("group");$targ$5=__at___$3.expand(__at___$3.pattern,tags$0,true,__at___$3.opt.indexable);__at___$3["compiled"]=$targ$5;$targ$6=__at___$3.info;__at___$3.compiled.pinfo["info"]=$targ$6;$targ$7=__at___$3.opt;__at___$3.compiled.pinfo["opt"]=$targ$7;$targ$8=__at___$3.compiled.pinfo.vars;__at___$3["vars"]=$targ$8;$targ$9=__at___$3.compiled.pinfo.handlers;__at___$3["handlers"]=$targ$9;$targ$10=__at___$3.compiled.pinfo.arguments;__at___$3["arguments"]=$targ$10;return __at___$3.compiled;};PatternCompiler$0.prototype["fork"]=function fork(pattern$0){var pc$0=void 0;var $targ$11=void 0;var $targ$12=void 0;var $targ$13=void 0;var $targ$14=void 0;var __at___$4=void 0;var self$2=void 0;__at___$4=this;self$2=this;pc$0=PatternCompiler$0(null,__at___$4.info,__at___$4.opt);$targ$11=pattern$0;pc$0["compiled"]=$targ$11;$targ$12=__at___$4.vars;pc$0["vars"]=$targ$12;$targ$13=__at___$4.arguments;pc$0["arguments"]=$targ$13;$targ$14=__at___$4.handlers;pc$0["handlers"]=$targ$14;__amp____colon__(pc$0,pattern$0.pinfo);return pc$0;};PatternCompiler$0.prototype["parse_specs"]=function parse_specs(specs$0,tags$1){var m$2=void 0;var acc$2=void 0;var temp$3=void 0;var rest$0=void 0;var has_defaults$0=void 0;var curidx$0=void 0;var insidx$0=void 0;var setInsidx$0=void 0;var rval$2=void 0;var $targ$15=void 0;var $targ$16=void 0;var __at___$5=void 0;var self$3=void 0;__at___$5=this;self$3=this;rest$0=undefined;has_defaults$0=false;curidx$0=0;insidx$0=null;setInsidx$0=function setInsidx(spec$0){var msg$0=void 0;var x$0=void 0;var m$1$0=void 0;if(equal(insidx$0,null)){m$1$0=curidx$0;if(m$1$0===null){msg$0="Object patterns cannot be after rest/default arguments.";throw ErrorFactory(["syntax","pattern"]).create(msg$0,{"expr":spec$0});}else{x$0=m$1$0;insidx$0=x$0;return insidx$0;}}};rval$2=classify$0("fw","bw","keys","defaults",(acc$2=[],temp$3=null,m$2=null,function(){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{var _loop=function _loop(){m$2=_step.value;var t0$3=void 0;var t0$4=void 0;var msg$1=void 0;var res$0=void 0;var v$0=void 0;var t0$11=void 0;var t1$5=void 0;var t2$1=void 0;var m$5$0=void 0;var m$3$0=void 0;var esubp$0=void 0;var wrap$0=void 0;var finalize$0=void 0;var v$2=void 0;var v$1=void 0;var variable$1=void 0;var value$2=void 0;var key$0=void 0;var subp$0=void 0;var variable$0=void 0;var t0$2=void 0;var t1$0=void 0;var bridge$$23354$0=void 0;var spec$1=void 0;var ph$0$0=void 0;var t0$1=void 0;t0$1=m$2;spec$1=t0$1;ph$0$0=t0$1;t0$2=ph$0$0;if(Array.isArray(t0$2)&&(t1$0=t0$2.length,t1$0===2&&t0$2[0]==="dynsplice")){variable$0=t0$2[1];curidx$0=null;rest$0=__at___$5.expand(variable$0,tags$1);temp$3=["ignore"];}else{bridge$$23354$0=ph$0$0;if(Array.isArray(bridge$$23354$0)&&(t0$3=bridge$$23354$0.length,t0$3===3&&bridge$$23354$0[0]==="assoc"&&(key$0=bridge$$23354$0[1],subp$0=bridge$$23354$0[2],true))||Array.isArray(bridge$$23354$0)&&(t0$4=bridge$$23354$0.length,t0$4===2&&bridge$$23354$0[0]==="assoc"&&(subp$0=bridge$$23354$0[1],key$0=null,true))){setInsidx$0(spec$1);esubp$0=__at___$5.expand(subp$0,tags$1);wrap$0=function wrap(){var p2$0=void 0;var t0$7=void 0;var t1$3=void 0;var t0$8=void 0;var field$0=void 0;var x$1=void 0;var y$0=void 0;var kexpr$0=void 0;var $$23448$0=void 0;var $$23449$0=void 0;var $$23450$0=void 0;var $$23451$0=void 0;var t0$6=void 0;var t1$2=void 0;var t2$0=void 0;var t3$0=void 0;var t4$0=void 0;var t5$0=void 0;var t6$0=void 0;var t7$0=void 0;var bridge$$23446$0=void 0;var key$1=void 0;var ph$2$0=void 0;var value$0=void 0;var default$1=void 0;var t0$5=void 0;var t1$1=void 0;var m$4$0=void 0;m$4$0=arguments;t0$5=m$4$0.length;if(t0$5>=2&&t0$5<=3){t1$1=m$4$0[0];key$1=t1$1;ph$2$0=t1$1;value$0=m$4$0[1];if(2>=t0$5){default$1=[];}else{default$1=m$4$0[2];}t0$6=ph$2$0;t1$2=t0$6.length;if(($$23450$0=t1$2===3)&&($$23451$0=t0$6[0]==="send")&&(t2$0=t0$6[1],Array.isArray(t2$0)&&(t3$0=t2$0.length,t3$0===2&&t2$0[0]==="symbol"&&t2$0[1]==="^"&&(t4$0=t0$6[2],Array.isArray(t4$0)&&(t5$0=t4$0.length,t5$0===3&&t4$0[0]==="data"&&(t6$0=t4$0[1],Array.isArray(t6$0)&&(t7$0=t6$0.length,t7$0===1&&t6$0[0]==="void"))))))){kexpr$0=t4$0[2];return[kexpr$0,value$0].concat(default$1);}else{if($$23451$0){x$1=t0$6[1];y$0=t0$6[2];p2$0=__amp____colon__(["object_pattern",[y$0,value$0].concat(default$1)],{"pinfo":value$0.pinfo,"::objinsert":2});return wrap$0(x$1,p2$0,default$1);}else{bridge$$23446$0=ph$2$0;if(Array.isArray(bridge$$23446$0)&&(t0$7=bridge$$23446$0.length,t0$7===2&&bridge$$23446$0[0]==="symbol"&&(t1$3=getProjector(camelCase$0)(bridge$$23446$0[1]),t1$3[0]&&(field$0=t1$3[1],true)))||Array.isArray(bridge$$23446$0)&&(t0$8=bridge$$23446$0.length,t0$8===2&&bridge$$23446$0[0]==="value"&&(field$0=bridge$$23446$0[1],true))){return[__lt____lt____colon__$0(["value",field$0],key$1),value$0].concat(default$1);}else{throw send(send(ErrorFactory(["syntax","invalid_key"]),"create",true),__amp____colon__(["Invalid key."],{"expr":key$1,"::objinsert":1}));}}}}else{return ___match_error(m$4$0,"{match key, value, default = {}}");}};finalize$0=function finalize(key$2,temp$4$0){var t0$9=void 0;var pattern$1=void 0;var default$2=void 0;var t0$10=void 0;var t1$4=void 0;var value$1=void 0;var ph$3$0=void 0;t0$9=temp$4$0;value$1=t0$9;ph$3$0=t0$9;t0$10=ph$3$0;t1$4=t0$10.length;if(t1$4===3&&t0$10[0]==="default"){pattern$1=t0$10[1];default$2=t0$10[2];return["keys",wrap$0(key$2,pattern$1,[default$2])];}else{return["keys",wrap$0(key$2,value$1)];}};m$3$0=key$0;if(m$3$0===null){m$5$0=esubp$0;res$0=m$5$0;if(___hasprop(m$5$0,"pinfo")&&(t0$11=m$5$0.pinfo,___hasprop(t0$11,"vars")&&(t1$5=t0$11.vars,Array.isArray(t1$5)&&(t2$1=t1$5.length,t2$1===1)))){v$0=t1$5[0];temp$3=finalize$0(v$0,esubp$0);}else{msg$1="Could not identify the name of the field to extract";throw send(send(ErrorFactory(["syntax","no_field"]),"create",true),__amp____colon__([msg$1],{"expr":spec$1,"::objinsert":1}));}}else{temp$3=finalize$0(key$0,esubp$0);}}else{t0$2=ph$0$0;if(Array.isArray(t0$2)&&(t1$0=t0$2.length,t1$0===3&&t0$2[0]==="default")){variable$1=t0$2[1];value$2=t0$2[2];curidx$0=null;has_defaults$0=true;if(rest$0){throw ErrorFactory(["syntax","pattern"]).create("No default arguments after rest arg.");}else{temp$3=["defaults",[__at___$5.expand(variable$1,tags$1),value$2]];}}else{v$1=ph$0$0;if(rest$0===undefined&&!has_defaults$0){curidx$0=curidx$0+1;temp$3=["fw",__at___$5.expand(v$1,tags$1)];}else{v$2=ph$0$0;curidx$0=null;temp$3=["bw",__at___$5.expand(v$2,tags$1)];}}}}acc$2.push(temp$3);};$2:for(var _iterator=__at___$5.info.step_all(["pattern"],specs$0)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){_loop();}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}(),acc$2));$targ$15=rest$0;rval$2["rest"]=$targ$15;$targ$16=insidx$0;rval$2["insertion_index"]=$targ$16;return rval$2;};PatternCompiler$0.prototype["expand"]=function expand(){var x$2=void 0;var x$3=void 0;var p$0=void 0;var variable$2=void 0;var $targ$17=void 0;var x$4=void 0;var x$5=void 0;var variable$3=void 0;var variable$4=void 0;var csubp$0=void 0;var csubp$1=void 0;var csubp$2=void 0;var csubp$3=void 0;var x$8=void 0;var fn$0=void 0;var $targ$18=void 0;var msg$2=void 0;var msg$3=void 0;var cx$0=void 0;var m$8=void 0;var acc$3=void 0;var temp$5=void 0;var cxs$0=void 0;var m$13=void 0;var acc$6=void 0;var temp$8=void 0;var ps$0=void 0;var vs$0=void 0;var v$6=void 0;var t0$16=void 0;var m$12$0=void 0;var p$1=void 0;var r$0=void 0;var m$15=void 0;var acc$7=void 0;var temp$9=void 0;var m$16=void 0;var acc$8=void 0;var temp$10=void 0;var m$17=void 0;var acc$9=void 0;var temp$11=void 0;var m$18=void 0;var acc$10=void 0;var temp$12=void 0;var patt$0=void 0;var keys$1=void 0;var fw$1=void 0;var bw$1=void 0;var defaults$1=void 0;var rest$2=void 0;var keys$0=void 0;var fw$0=void 0;var bw$0=void 0;var defaults$0=void 0;var rest$1=void 0;var $$24147$0=void 0;var t0$21=void 0;var t1$11=void 0;var t2$4=void 0;var t3$1=void 0;var t4$1=void 0;var t5$1=void 0;var m$14$0=void 0;var specs$1=void 0;var pinfos$2=void 0;var pinfo$3=void 0;var r$1=void 0;var other$0=void 0;var subp$6=void 0;var expr$1=void 0;var mode$0=void 0;var subp$5=void 0;var args$1=void 0;var pattern$3=void 0;var default$3=void 0;var cond$0=void 0;var t$0=void 0;var f$4=void 0;var xs$2=void 0;var make__minus__any$0=void 0;var xs$0=void 0;var x$9=void 0;var f$3=void 0;var arg$0=void 0;var f$2=void 0;var args$0=void 0;var checker$0=void 0;var subp$4=void 0;var projector$0=void 0;var subp$3=void 0;var unconditional$0=void 0;var condition$0=void 0;var subp$2=void 0;var before$0=void 0;var subp$1=void 0;var value$3=void 0;var x$7=void 0;var x$6=void 0;var v$4=void 0;var v$3=void 0;var s$0=void 0;var handler$0=void 0;var $$23730$0=void 0;var $$23731$0=void 0;var $$23732$0=void 0;var $$23733$0=void 0;var $$23734$0=void 0;var $$23735$0=void 0;var $$23736$0=void 0;var t0$13=void 0;var bridge$$23709$0=void 0;var t1$6=void 0;var m$7$0=void 0;var $targ$19=void 0;var expr$0=void 0;var rval$3=void 0;var pattern$2=void 0;var tags$2=void 0;var toplevel$0=void 0;var checked$0=void 0;var t0$12=void 0;var m$6$0=void 0;var __at___$6=void 0;var self$4=void 0;__at___$6=this;self$4=this;m$6$0=arguments;t0$12=m$6$0.length;if(t0$12>=2&&t0$12<=4){pattern$2=m$6$0[0];tags$2=m$6$0[1];if(2>=t0$12){toplevel$0=false;}else{toplevel$0=m$6$0[2];}if(3>=t0$12){checked$0=false;}else{checked$0=m$6$0[3];}expr$0=__at___$6.info.step(["pattern"],pattern$2);m$7$0=expr$0;if(x$2=m$7$0,x$2 instanceof Array&&x$2[0]==="void"){rval$3=["ignore"];}else{if(x$3=m$7$0,x$3 instanceof Array&&x$3[0]==="ignore"){rval$3=expr$0;}else{if(($$23730$0=Array.isArray(m$7$0))&&(t0$13=m$7$0.length,($$23732$0=t0$13===2)&&m$7$0[0]==="special")){handler$0=m$7$0[1];p$0=__at___$6.expand(handler$0.expand(__at___$6.info),tags$2,toplevel$0,false);p$0.pinfo.handlers.push(handler$0);rval$3=p$0;}else{if($$23732$0&&m$7$0[0]==="raw-symbol"){s$0=m$7$0[1];variable$2=__amp__(__lt____lt____colon__$0(["symbol",s$0],expr$0),tags$2);$targ$17=expr$0.env;variable$2["env"]=$targ$17;rval$3=__amp____colon__(["assign",variable$2],{"pinfo":PatternInfo$0([],[variable$2])});}else{bridge$$23709$0=m$7$0;if((x$4=bridge$$23709$0,x$4 instanceof Array&&x$4[0]==="symbol")||(x$5=bridge$$23709$0,x$5 instanceof Array&&x$5[0]==="variable")){variable$3=__amp__(expr$0,tags$2);rval$3=__amp____colon__(["assign",variable$3],{"pinfo":PatternInfo$0([],[variable$3])});}else{if(($$23730$0=Array.isArray(m$7$0))&&(t0$13=m$7$0.length,($$23732$0=t0$13===2)&&($$23733$0=m$7$0[0]==="value")&&(v$3=m$7$0[1],__at___$6.opt.strings_as_variables))){variable$4=__lt____lt____colon__$0(__amp__(["value",v$3],tags$2),expr$0);rval$3=__amp____colon__(["assign",variable$4],{"pinfo":PatternInfo$0([],[variable$4])});}else{if($$23733$0){v$4=m$7$0[1];rval$3=["check",checker_db$0(v$4),["ignore"]];}else{if($$23732$0&&($$23733$0=m$7$0[0]==="calc")&&(x$6=m$7$0[1],__at___$6.opt.strings_as_variables)){rval$3=["assign",["multi",x$6]];}else{if($$23733$0){x$7=m$7$0[1];throw send(send(ErrorFactory(["syntax","pattern"]),"create",true),__amp____colon__(["Computed properties are not allowed here"],{"expr":expr$0,"::objinsert":1}));}else{if($$23730$0&&t0$13===3&&m$7$0[0]==="replace"){subp$1=m$7$0[1];value$3=m$7$0[2];csubp$0=__at___$6.expand(subp$1,tags$2,toplevel$0,false);rval$3=__amp____colon__(["replace",csubp$0,value$3],{"pinfo":csubp$0.pinfo});}else{if($$23730$0&&($$23732$0=t0$13>=3&&t0$13<=4)&&m$7$0[0]==="test"){condition$0=m$7$0[1];subp$2=m$7$0[2];if(3>=t0$13){before$0=false;}else{before$0=m$7$0[3];}csubp$1=__at___$6.expand(subp$2,tags$2,toplevel$0,false);rval$3=__amp____colon__(["test",condition$0,csubp$1,before$0],{"pinfo":csubp$1.pinfo});}else{if($$23732$0&&m$7$0[0]==="project"){projector$0=m$7$0[1];subp$3=m$7$0[2];if(3>=t0$13){unconditional$0=false;}else{unconditional$0=m$7$0[3];}csubp$2=__at___$6.expand(subp$3,tags$2,toplevel$0,true);rval$3=__amp____colon__(["project",projector$0,csubp$2,unconditional$0],{"pinfo":csubp$2.pinfo});}else{if($$23730$0&&($$23732$0=t0$13===3)&&m$7$0[0]==="check"){checker$0=m$7$0[1];subp$4=m$7$0[2];csubp$3=__at___$6.expand(subp$4,tags$2,toplevel$0,true);rval$3=__amp____colon__(["check",checker$0,csubp$3],{"pinfo":csubp$3.pinfo});}else{if($$23732$0&&($$23733$0=m$7$0[0]==="send")&&(f$2=m$7$0[1],t1$6=m$7$0[2],x$8=t1$6,x$8 instanceof Array&&x$8[0]==="data")){args$0=t1$6;if(toplevel$0){fn$0=__at___$6.expand(f$2,tags$2,true,false);$targ$18=PatternInfo$0.mergeAll([fn$0.pinfo,PatternInfo$0([],[],[args$0])]);fn$0["pinfo"]=$targ$18;rval$3=fn$0;}else{msg$2="Function arguments can only be declared as a top level pattern.";throw ErrorFactory(["syntax","pattern"]).create(msg$2,{"node":expr$0,"arg":args$0});}}else{if($$23733$0){f$3=m$7$0[1];arg$0=m$7$0[2];rval$3=["assign",expr$0];}else{if(!__at___$6.opt.allow_nested){msg$3="Nested patterns are not allowed here.";throw ErrorFactory(["syntax","pattern"]).create(msg$3,{"node":expr$0});}else{if(($$23730$0=Array.isArray(m$7$0))&&(t0$13=m$7$0.length,t0$13===2&&m$7$0[0]==="neg")){x$9=m$7$0[1];cx$0=__at___$6.expand(x$9,tags$2);rval$3=__amp____colon__(["neg",cx$0],{"pinfo":cx$0.pinfo});}else{if($$23730$0&&t0$13>=1&&m$7$0[0]==="all"){xs$0=Array.prototype.slice.call(m$7$0,1);acc$3=[];temp$5=null;m$8=null;var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{$3:for(var _iterator2=xs$0[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){m$8=_step2.value;var x$10=void 0;x$10=m$8;temp$5=__at___$6.expand(x$10,tags$2);acc$3.push(temp$5);}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}cxs$0=acc$3;rval$3=__amp____colon__(["all"].concat(cxs$0),{"pinfo":PatternInfo$0.mergeAll(cxs$0)});}else{make__minus__any$0=function makeAny(xs$1){var m$10=void 0;var acc$5=void 0;var temp$7=void 0;var m$11=void 0;var canon$0=void 0;var normalize$0=void 0;var pps$0=void 0;canon$0=function canon(all$0){return all$0.sort().join(",");};normalize$0=function normalize(vars$0){var m$9=void 0;var acc$4=void 0;var temp$6=void 0;return canon$0((acc$4=[],temp$6=null,m$9=null,function(){var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{$5:for(var _iterator3=vars$0[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){m$9=_step3.value;var v$5=void 0;var t0$14=void 0;var t1$7=void 0;t0$14=m$9;if(Array.isArray(t0$14)&&(t1$7=t0$14.length,t1$7===2&&t0$14[0]==="symbol")){v$5=t0$14[1];temp$6=v$5;acc$4.push(temp$6);}else{___match_error(m$9);}}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}(),acc$4));};acc$5=[];temp$7=null;m$10=null;var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{$6:for(var _iterator4=xs$1[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){m$10=_step4.value;var x$11=void 0;x$11=m$10;temp$7=__at___$6.expand(x$11,tags$2);acc$5.push(temp$7);}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}pps$0=acc$5;m$11=null;var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{$4:for(var _iterator5=neighbours(pps$0)[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){m$11=_step5.value;var v1$0=void 0;var v2$0=void 0;var pp1$0=void 0;var pp2$0=void 0;var t0$15=void 0;var t1$8=void 0;t0$15=m$11;if(Array.isArray(t0$15)&&(t1$8=t0$15.length,t1$8===2)){pp1$0=t0$15[0];pp2$0=t0$15[1];v1$0=pp1$0.pinfo.vars;v2$0=pp2$0.pinfo.vars;if(normalize$0(v1$0)!==normalize$0(v2$0)){throw ErrorFactory(["syntax","pattern"]).create("Both branches of 'or' must contain the same variables",{"vars1":__lt____lt____colon__$0(v1$0.sort(),pp1$0),"vars2":__lt____lt____colon__$0(v2$0.sort(),pp2$0)});}}else{___match_error(m$11);}}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}return __amp____colon__(["any"].concat(pps$0),{"pinfo":pps$0[0]&&pps$0[0].pinfo});};if(($$23734$0=Array.isArray(m$7$0))&&(t0$13=m$7$0.length,t0$13>=1&&m$7$0[0]==="any")){xs$2=Array.prototype.slice.call(m$7$0,1);rval$3=make__minus__any$0(xs$2);}else{if($$23734$0&&t0$13===4&&m$7$0[0]==="if"){cond$0=m$7$0[1];t$0=m$7$0[2];f$4=m$7$0[3];rval$3=make__minus__any$0([["test",cond$0,t$0,true],f$4]);}else{if($$23734$0&&t0$13>=2&&t0$13<=3&&m$7$0[0]==="maybe"){pattern$3=m$7$0[1];if(2>=t0$13){default$3=null;}else{default$3=m$7$0[2];}p$1=__at___$6.expand(pattern$3,tags$2);m$12$0=p$1.pinfo.vars;if(Array.isArray(m$12$0)&&(t0$16=m$12$0.length,t0$16===1)){v$6=m$12$0[0];r$0=["any",p$1,["check",checker_db$0(default$3),["assign",v$6]]];}else{vs$0=m$12$0;acc$6=[];temp$8=null;m$13=null;var _iteratorNormalCompletion6=true;var _didIteratorError6=false;var _iteratorError6=undefined;try{$7:for(var _iterator6=vs$0[Symbol.iterator](),_step6;!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=true){m$13=_step6.value;var v$7=void 0;v$7=m$13;temp$8=["check",checker_db$0(default$3),["assign",v$7]];acc$6.push(temp$8);}}catch(err){_didIteratorError6=true;_iteratorError6=err;}finally{try{if(!_iteratorNormalCompletion6&&_iterator6.return){_iterator6.return();}}finally{if(_didIteratorError6){throw _iteratorError6;}}}ps$0=acc$6;r$0=["any",p$1,["all"].concat(ps$0)];}rval$3=__amp____colon__(r$0,{"pinfo":p$1.pinfo});}else{if($$23734$0&&t0$13>=1&&m$7$0[0]==="data"){args$1=Array.prototype.slice.call(m$7$0,1);specs$1=__at___$6.parse_specs(args$1,tags$2);pinfos$2=[];pinfos$2=pinfos$2.concat((acc$7=[],temp$9=null,m$15=null,function(){var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{$8:for(var _iterator7=specs$1.keys[Symbol.iterator](),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){m$15=_step7.value;var pinfo$4=void 0;var t0$17=void 0;var t1$9=void 0;var t2$2=void 0;t0$17=m$15;if(Array.isArray(t0$17)&&(t1$9=t0$17.length,t1$9>=2&&t1$9<=3&&(t0$17[0],t2$2=t0$17[1],___hasprop(t2$2,"pinfo")))){pinfo$4=t2$2.pinfo;if(2>=t1$9){null;}else{t0$17[2];}temp$9=pinfo$4;acc$7.push(temp$9);}else{___match_error(m$15);}}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}}(),acc$7));pinfos$2=pinfos$2.concat((acc$8=[],temp$10=null,m$16=null,function(){var _iteratorNormalCompletion8=true;var _didIteratorError8=false;var _iteratorError8=undefined;try{$9:for(var _iterator8=specs$1.fw[Symbol.iterator](),_step8;!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=true){m$16=_step8.value;var pinfo$5=void 0;var t0$18=void 0;t0$18=m$16;if(___hasprop(t0$18,"pinfo")){pinfo$5=t0$18.pinfo;temp$10=pinfo$5;acc$8.push(temp$10);}else{___match_error(m$16);}}}catch(err){_didIteratorError8=true;_iteratorError8=err;}finally{try{if(!_iteratorNormalCompletion8&&_iterator8.return){_iterator8.return();}}finally{if(_didIteratorError8){throw _iteratorError8;}}}}(),acc$8));pinfos$2=pinfos$2.concat((acc$9=[],temp$11=null,m$17=null,function(){var _iteratorNormalCompletion9=true;var _didIteratorError9=false;var _iteratorError9=undefined;try{$10:for(var _iterator9=specs$1.bw[Symbol.iterator](),_step9;!(_iteratorNormalCompletion9=(_step9=_iterator9.next()).done);_iteratorNormalCompletion9=true){m$17=_step9.value;var pinfo$6=void 0;var t0$19=void 0;t0$19=m$17;if(___hasprop(t0$19,"pinfo")){pinfo$6=t0$19.pinfo;temp$11=pinfo$6;acc$9.push(temp$11);}else{___match_error(m$17);}}}catch(err){_didIteratorError9=true;_iteratorError9=err;}finally{try{if(!_iteratorNormalCompletion9&&_iterator9.return){_iterator9.return();}}finally{if(_didIteratorError9){throw _iteratorError9;}}}}(),acc$9));pinfos$2=pinfos$2.concat((acc$10=[],temp$12=null,m$18=null,function(){var _iteratorNormalCompletion10=true;var _didIteratorError10=false;var _iteratorError10=undefined;try{$11:for(var _iterator10=specs$1.defaults[Symbol.iterator](),_step10;!(_iteratorNormalCompletion10=(_step10=_iterator10.next()).done);_iteratorNormalCompletion10=true){m$18=_step10.value;var pinfo$7=void 0;var t0$20=void 0;var t1$10=void 0;var t2$3=void 0;t0$20=m$18;if(Array.isArray(t0$20)&&(t1$10=t0$20.length,t1$10===2&&(t2$3=t0$20[0],___hasprop(t2$3,"pinfo")))){pinfo$7=t2$3.pinfo;t0$20[1];temp$12=pinfo$7;acc$10.push(temp$12);}else{___match_error(m$18);}}}catch(err){_didIteratorError10=true;_iteratorError10=err;}finally{try{if(!_iteratorNormalCompletion10&&_iterator10.return){_iterator10.return();}}finally{if(_didIteratorError10){throw _iteratorError10;}}}}(),acc$10));if(specs$1.rest){pinfos$2.push(specs$1.rest.pinfo);}pinfo$3=PatternInfo$0.mergeAll(pinfos$2);m$14$0=specs$1;if(($$24147$0=___hasprop(m$14$0,"keys"))&&(t0$21=m$14$0.keys,Array.isArray(t0$21)&&(t1$11=t0$21.length,t1$11===0&&___hasprop(m$14$0,"fw")&&(fw$0=m$14$0.fw,___hasprop(m$14$0,"bw")&&(bw$0=m$14$0.bw,___hasprop(m$14$0,"defaults")&&(defaults$0=m$14$0.defaults,___hasprop(m$14$0,"rest"))))))){rest$1=m$14$0.rest;patt$0=__amp____colon__(__lt____lt____colon__$0(["array_pattern",fw$0,bw$0,defaults$0,rest$1],pattern$2),{"pinfo":pinfo$3});if(checked$0){rval$3=patt$0;}else{rval$3=__amp____colon__(["check",checker_db$0.Array,patt$0],{"pinfo":pinfo$3});}}else{if($$24147$0&&(keys$0=m$14$0.keys,___hasprop(m$14$0,"fw")&&(t0$21=m$14$0.fw,Array.isArray(t0$21)&&(t1$11=t0$21.length,t1$11===0&&___hasprop(m$14$0,"bw")&&(t2$4=m$14$0.bw,Array.isArray(t2$4)&&(t3$1=t2$4.length,t3$1===0&&___hasprop(m$14$0,"defaults")&&(t4$1=m$14$0.defaults,Array.isArray(t4$1)&&(t5$1=t4$1.length,t5$1===0&&___hasprop(m$14$0,"rest")&&m$14$0.rest===void 0)))))))){rval$3=__amp____colon__(["object_pattern"].concat(keys$0),{"pinfo":pinfo$3});}else{if($$24147$0&&(keys$1=m$14$0.keys,___hasprop(m$14$0,"fw")&&(fw$1=m$14$0.fw,___hasprop(m$14$0,"bw")&&(bw$1=m$14$0.bw,___hasprop(m$14$0,"defaults")&&(defaults$1=m$14$0.defaults,___hasprop(m$14$0,"rest")))))){rest$2=m$14$0.rest;rval$3=__amp____colon__(["all",["array_pattern",fw$1,bw$1,defaults$1,rest$2],["object_pattern"].concat(keys$1)],{"pinfo":pinfo$3,"insertion_index":specs$1.insertion_index});}else{rval$3=___match_error(m$14$0,"{=> keys, => fw, => bw, => defaults, => rest}");}}}}else{if($$23734$0&&($$23736$0=t0$13===3)&&m$7$0[0]==="mode"){mode$0=m$7$0[1];subp$5=m$7$0[2];rval$3=__at___$6.expand(subp$5,__amp__(tags$2,{"declare_mode":mode$0}),toplevel$0,checked$0);}else{if($$23736$0&&m$7$0[0]==="default"){subp$6=m$7$0[1];expr$1=m$7$0[2];r$1=__at___$6.expand(subp$6,tags$2,toplevel$0,checked$0);rval$3=__amp____colon__(["default",r$1,expr$1],{"pinfo":r$1.pinfo,"::objinsert":3});}else{other$0=m$7$0;throw ErrorFactory(["syntax","pattern"]).create("Illegal pattern: "+other$0,{"node":other$0});}}}}}}}}}}}}}}}}}}}}}}}}if(!rval$3.pinfo){$targ$19=PatternInfo$0();rval$3["pinfo"]=$targ$19;void 0;}return(__at___$6.opt.wrap_pattern||identity$0)(__lt____lt____colon__$0(rval$3,pattern$2),toplevel$0);}else{return ___match_error(m$6$0,"{pattern, tags, toplevel = false, checked = false}");}};PatternCompiler$0.prototype["shift_rhs"]=function shift_rhs(temp$13$0,rhs$0){var t0$22=void 0;var projector$1=void 0;var subp$7=void 0;var t0$23=void 0;var t1$12=void 0;var pattern$4=void 0;var ph$4$0=void 0;var __at___$7=void 0;var self$5=void 0;__at___$7=this;self$5=this;t0$22=temp$13$0;pattern$4=t0$22;ph$4$0=t0$22;t0$23=ph$4$0;t1$12=t0$23.length;if(t1$12===4&&t0$23[0]==="project"&&(projector$1=t0$23[1],subp$7=t0$23[2],t0$23[3]===true)){return __at___$7.shift_rhs(subp$7,["send",projector$1,["data",rhs$0]]);}else{return[pattern$4,rhs$0];}};PatternCompiler$0.prototype["process_for_rhs"]=function process_for_rhs(rhs$1){var t0$24=void 0;var t0$25=void 0;var t1$13=void 0;var x$13=void 0;var x$14=void 0;var t0$27=void 0;var t0$28=void 0;var $targ$26=void 0;var t0$29=void 0;var t1$15=void 0;var $targ$27=void 0;var name$0=void 0;var t0$26=void 0;var t1$14=void 0;var bridge$$24457$0=void 0;var ph$5$0=void 0;var bridge$$24454$0=void 0;var m$19$0=void 0;var t0$30=void 0;var $targ$20=void 0;var real_rhs$0=void 0;var $targ$21=void 0;var cpattern$0=void 0;var target$0=void 0;var expr$2=void 0;var proc$0=void 0;var $targ$22=void 0;var $targ$23=void 0;var $targ$24=void 0;var $targ$25=void 0;var __at___$8=void 0;var self$6=void 0;__at___$8=this;self$6=this;if(!__at___$8.compiled){__at___$8.compile();}if(!__at___$8.opt.allow_arguments&&__at___$8.arguments.length){throw ErrorFactory(["syntax","pattern","arguments"]).create("Arguments cannot be declared in this pattern",{"args":__at___$8.arguments[0],"rhs":rhs$1});}if(__at___$8.arguments.length){$targ$20=inject_below_uses$0(rhs$1,function(x$12){return util$0.construct(__at___$8.arguments.concat([x$12]),function(args$2,rest$3){return["send",["symbol","->"],["data",args$2,rest$3]];});});}else{$targ$20=rhs$1;}t0$24=getProjector(__at___$8.opt.wrap_target||identity$0)($targ$20);if(t0$24[0]){real_rhs$0=t0$24[1];}else{___match_error($targ$20,"[@opt.wrap_target or identity]! real_rhs");}$targ$21=__at___$8.shift_rhs(__at___$8.compiled,real_rhs$0);t0$25=$targ$21;if(Array.isArray(t0$25)&&(t1$13=t0$25.length,t1$13===2)){cpattern$0=t0$25[0];target$0=t0$25[1];}else{___match_error($targ$21,"{cpattern, var target}");}[cpattern$0,target$0];__lt____lt____colon__$0(target$0,rhs$1);expr$2=null;m$19$0=target$0;bridge$$24454$0=m$19$0;if((x$13=bridge$$24454$0,x$13 instanceof Array&&x$13[0]==="symbol")||(x$14=bridge$$24454$0,x$14 instanceof Array&&x$14[0]==="variable")){undefined;}else{ph$5$0=cpattern$0;t0$26=ph$5$0;if(Array.isArray(t0$26)&&(t1$14=t0$26.length,t1$14===2&&t0$26[0]==="assign"&&(bridge$$24457$0=t0$26[1],Array.isArray(bridge$$24457$0)&&(t0$27=bridge$$24457$0.length,t0$27===2&&bridge$$24457$0[0]==="symbol"&&(name$0=bridge$$24457$0[1],true))||Array.isArray(bridge$$24457$0)&&(t0$28=bridge$$24457$0.length,t0$28===2&&bridge$$24457$0[0]==="variable"&&(name$0=bridge$$24457$0[1],true))))){$targ$26=name$0;target$0["name"]=$targ$26;void 0;}else{$targ$27=[__lt____lt____colon__$0(["variable",__at___$8.info.gensym("$targ")],target$0),target$0];t0$29=$targ$27;if(Array.isArray(t0$29)&&(t1$15=t0$29.length,t1$15===2)){target$0=t0$29[0];expr$2=t0$29[1];}else{___match_error($targ$27,"{target, expr}");}[target$0,expr$2];}}proc$0=PatternProcessor$0();proc$0.process(cpattern$0,target$0,__at___$8.opt);$targ$22=proc$0;t0$30=$targ$22;if(___hasprop(t0$30,"temps")&&(__at___$8["temps"]=t0$30.temps,___hasprop(t0$30,"parts"))){__at___$8["parts"]=t0$30.parts;}else{___match_error($targ$22,"{temps => @temps, parts => @parts}");}$targ$23=true;__at___$8["processed"]=$targ$23;$targ$24=target$0;__at___$8["target"]=$targ$24;$targ$25=expr$2;__at___$8["expr"]=$targ$25;return[__at___$8.temps,__at___$8.parts];};PatternCompiler$0.prototype["extract_from_rhs"]=function extract_from_rhs(rhs$2){var m$20=void 0;var acc$11=void 0;var temp$14=void 0;var succ$0=void 0;var fail$0=void 0;var assembly$0=void 0;var __at___$9=void 0;var self$7=void 0;__at___$9=this;self$7=this;if(!__at___$9.processed){__at___$9.process_for_rhs(rhs$2);}succ$0=__at___$9.opt.success(__at___$9.target);fail$0=__at___$9.opt.failure(__at___$9.target,__at___$9.pattern);assembly$0=assemble_pattern$0(__at___$9.parts,succ$0,fail$0);return["splice",__at___$9.expr===null?["splice"]:["splice",["declare",__at___$9.target],["assign",__at___$9.target,__at___$9.expr]]].concat(__at___$9.opt.declare(__at___$9.info,__at___$9.vars)).concat([["multi"].concat((acc$11=[],temp$14=null,m$20=null,function(){var _iteratorNormalCompletion11=true;var _didIteratorError11=false;var _iteratorError11=undefined;try{$12:for(var _iterator11=__at___$9.temps[Symbol.iterator](),_step11;!(_iteratorNormalCompletion11=(_step11=_iterator11.next()).done);_iteratorNormalCompletion11=true){m$20=_step11.value;var t$1=void 0;t$1=m$20;temp$14=["declare",t$1];acc$11.push(temp$14);}}catch(err){_didIteratorError11=true;_iteratorError11=err;}finally{try{if(!_iteratorNormalCompletion11&&_iterator11.return){_iterator11.return();}}finally{if(_didIteratorError11){throw _iteratorError11;}}}}(),acc$11)).concat([assembly$0])]);};PatternCompiler$0.prototype["wrapBody"]=function wrapBody(body$0){var m$21=void 0;var m$22=void 0;var x$15=void 0;var __at___$10=void 0;var self$8=void 0;__at___$10=this;self$8=this;m$21=null;var _iteratorNormalCompletion12=true;var _didIteratorError12=false;var _iteratorError12=undefined;try{$13:for(var _iterator12=enumerate(__at___$10.handlers)[Symbol.iterator](),_step12;!(_iteratorNormalCompletion12=(_step12=_iterator12.next()).done);_iteratorNormalCompletion12=true){m$21=_step12.value;var $targ$28=void 0;var i$0=void 0;var h$0=void 0;var t0$31=void 0;var t1$16=void 0;t0$31=m$21;if(Array.isArray(t0$31)&&(t1$16=t0$31.length,t1$16===2)){i$0=t0$31[0];h$0=t0$31[1];$targ$28=h$0.wrapOrder+i$0/1000000;h$0["__ord"]=$targ$28;void 0;}else{___match_error(m$21);}}}catch(err){_didIteratorError12=true;_iteratorError12=err;}finally{try{if(!_iteratorNormalCompletion12&&_iterator12.return){_iterator12.return();}}finally{if(_didIteratorError12){throw _iteratorError12;}}}__at___$10.handlers.sort(function(x$16,y$1){return x$16.__ord<y$1.__ord;});x$15=body$0;m$22=null;var _iteratorNormalCompletion13=true;var _didIteratorError13=false;var _iteratorError13=undefined;try{$14:for(var _iterator13=__at___$10.handlers[Symbol.iterator](),_step13;!(_iteratorNormalCompletion13=(_step13=_iterator13.next()).done);_iteratorNormalCompletion13=true){m$22=_step13.value;var handler$1=void 0;handler$1=m$22;x$15=handler$1.wrap(x$15,__at___$10.info,__at___$10.opt);x$15;}}catch(err){_didIteratorError13=true;_iteratorError13=err;}finally{try{if(!_iteratorNormalCompletion13&&_iterator13.return){_iterator13.return();}}finally{if(_didIteratorError13){throw _iteratorError13;}}}return x$15;};PatternCompiler$0.prototype["wrapAssignment"]=function wrapAssignment(expr$3){var m$23=void 0;var m$24=void 0;var x$17=void 0;var __at___$11=void 0;var self$9=void 0;__at___$11=this;self$9=this;m$23=null;var _iteratorNormalCompletion14=true;var _didIteratorError14=false;var _iteratorError14=undefined;try{$15:for(var _iterator14=enumerate(__at___$11.handlers)[Symbol.iterator](),_step14;!(_iteratorNormalCompletion14=(_step14=_iterator14.next()).done);_iteratorNormalCompletion14=true){m$23=_step14.value;var $targ$29=void 0;var i$1=void 0;var h$1=void 0;var t0$32=void 0;var t1$17=void 0;t0$32=m$23;if(Array.isArray(t0$32)&&(t1$17=t0$32.length,t1$17===2)){i$1=t0$32[0];h$1=t0$32[1];$targ$29=h$1.wrapBodyOrder+i$1/1000000;h$1["__ord"]=$targ$29;void 0;}else{___match_error(m$23);}}}catch(err){_didIteratorError14=true;_iteratorError14=err;}finally{try{if(!_iteratorNormalCompletion14&&_iterator14.return){_iterator14.return();}}finally{if(_didIteratorError14){throw _iteratorError14;}}}__at___$11.handlers.sort(function(x$18,y$2){return x$18.__ord<y$2.__ord;});x$17=expr$3;m$24=null;var _iteratorNormalCompletion15=true;var _didIteratorError15=false;var _iteratorError15=undefined;try{$16:for(var _iterator15=__at___$11.handlers[Symbol.iterator](),_step15;!(_iteratorNormalCompletion15=(_step15=_iterator15.next()).done);_iteratorNormalCompletion15=true){m$24=_step15.value;var handler$2=void 0;handler$2=m$24;x$17=handler$2.wrapAssignment(x$17,__at___$11.info,__at___$11.opt);x$17;}}catch(err){_didIteratorError15=true;_iteratorError15=err;}finally{try{if(!_iteratorNormalCompletion15&&_iterator15.return){_iterator15.return();}}finally{if(_didIteratorError15){throw _iteratorError15;}}}return x$17;};__amp____colon__(PatternCompiler$0,__amp____colon__(($targ$30="PatternCompiler",accum$6={},accum$6["::name"]=$targ$30,accum$6),($targ$31=true,accum$7={},accum$7["::egclass"]=$targ$31,accum$7)));PatternProcessor$0=function PatternProcessor(){var $targ$32=void 0;var $targ$33=void 0;var $targ$34=void 0;var __at___$12=void 0;if(!getChecker(PatternProcessor$0)(this)){__at___$12=Object.create(PatternProcessor$0.prototype);}else{__at___$12=this;}$targ$32=[];__at___$12["temps"]=$targ$32;$targ$33=[];__at___$12["parts"]=$targ$33;$targ$34=GenSym$0("t");__at___$12["gen"]=$targ$34;return __at___$12;};$targ$0=function $targ$0(part$0){var __at___$13=void 0;var self$10=void 0;__at___$13=this;self$10=this;return __at___$13.parts.push(["do",part$0]);};PatternProcessor$0.prototype["do"]=$targ$0;PatternProcessor$0.prototype["check"]=function check(){var part$1=void 0;var tags$3=void 0;var t0$33=void 0;var m$25$0=void 0;var __at___$14=void 0;var self$11=void 0;__at___$14=this;self$11=this;m$25$0=arguments;t0$33=m$25$0.length;if(t0$33>=1&&t0$33<=2){part$1=m$25$0[0];if(1>=t0$33){tags$3={};}else{tags$3=m$25$0[1];}return __at___$14.parts.push(__amp__(["check",part$1],tags$3));}else{return ___match_error(m$25$0,"{part, tags = {=}}");}};PatternProcessor$0.prototype["temp"]=function temp(){var x$20=void 0;var x$21=void 0;var x$22=void 0;var $targ$35=void 0;var init$0=void 0;var t0$35=void 0;var bridge$$24858$0=void 0;var x$19=void 0;var ph$7$0=void 0;var v$8=void 0;var t0$34=void 0;var t1$18=void 0;var m$26$0=void 0;var __at___$15=void 0;var self$12=void 0;__at___$15=this;self$12=this;m$26$0=arguments;t0$34=m$26$0.length;if(t0$34>=1&&t0$34<=2){t1$18=m$26$0[0];x$19=t1$18;ph$7$0=t1$18;if(1>=t0$34){v$8=null;}else{v$8=m$26$0[1];}t0$35=ph$7$0;bridge$$24858$0=t0$35;if(((x$20=bridge$$24858$0,x$20 instanceof Array&&x$20[0]==="variable")||(x$21=bridge$$24858$0,x$21 instanceof Array&&x$21[0]==="symbol"))&&___hasprop(t0$35,"single_assignment")&&(t0$35.single_assignment?true:false)&&!v$8){return x$19;}else{if(x$22=ph$7$0,x$22 instanceof Array&&x$22[0]==="value"){return x$19;}else{init$0=ph$7$0;v$8=v$8||["symbol",__at___$15.gen()];$targ$35=true;v$8["single_assignment"]=$targ$35;__at___$15.temps.push(v$8);__at___$15.do(["send",["symbol","="],["data",["send",["symbol","set-var"],v$8],init$0]]);return v$8;}}}else{return ___match_error(m$26$0,"{match x, var v = null}");}};PatternProcessor$0.prototype["process"]=function process(pattern$5,rhs$3,fns$0){var x$23=void 0;var x$24=void 0;var t$2=void 0;var t$3=void 0;var t$4=void 0;var pp$0=void 0;var x$25=void 0;var m$28=void 0;var t$5=void 0;var m$29=void 0;var acc$12=void 0;var temp$15=void 0;var fn$1=void 0;var parts$0=void 0;var t$6=void 0;var m$30=void 0;var acc$13=void 0;var temp$16=void 0;var t$7=void 0;var otherwise$0=void 0;var m$31$0=void 0;var m$32=void 0;var m$34=void 0;var end$0=void 0;var pos$0=void 0;var m$35=void 0;var acc$14=void 0;var temp$17=void 0;var nfw$0=void 0;var nbw$0=void 0;var ndflt$0=void 0;var extract_length$0=void 0;var check_length$0=void 0;var lo$0=void 0;var hi$0=void 0;var t$8=void 0;var len$0=void 0;var x$29=void 0;var fw$2=void 0;var bw$2=void 0;var dflt$0=void 0;var rest$5=void 0;var subp$12=void 0;var xs$4=void 0;var xs$3=void 0;var patt$1=void 0;var projector$2=void 0;var subp$11=void 0;var unconditional$1=void 0;var ph$8$0=void 0;var checker$2=void 0;var subp$10=void 0;var checker$1=void 0;var condition$1=void 0;var subp$9=void 0;var before$1=void 0;var subp$8=void 0;var value$4=void 0;var sym$0=void 0;var $$24962$0=void 0;var $$24963$0=void 0;var $$24964$0=void 0;var $$24965$0=void 0;var t0$36=void 0;var t1$19=void 0;var m$27$0=void 0;var rval$4=void 0;var __at___$16=void 0;var self$13=void 0;__at___$16=this;self$13=this;m$27$0=pattern$5;if(x$23=m$27$0,x$23 instanceof Array&&x$23[0]==="ignore"){rval$4=__at___$16.do(rhs$3);}else{if(($$24962$0=Array.isArray(m$27$0))&&(t0$36=m$27$0.length,t0$36===2&&m$27$0[0]==="assign")){sym$0=m$27$0[1];rval$4=__at___$16.parts.push(fns$0.assign(sym$0,rhs$3));}else{if($$24962$0&&t0$36===3&&m$27$0[0]==="replace"){subp$8=m$27$0[1];value$4=m$27$0[2];rval$4=__at___$16.process(subp$8,value$4,fns$0);}else{if($$24962$0&&t0$36>=3&&t0$36<=4&&m$27$0[0]==="test"){condition$1=m$27$0[1];subp$9=m$27$0[2];if(3>=t0$36){before$1=false;}else{before$1=m$27$0[3];}if(before$1){__at___$16.check(condition$1,{"test":true});rval$4=__at___$16.process(subp$9,rhs$3,fns$0);}else{__at___$16.process(subp$9,rhs$3,fns$0);rval$4=__at___$16.check(condition$1,{"test":true});}}else{if($$24962$0&&($$24964$0=t0$36===3)&&($$24965$0=m$27$0[0]==="check")&&(checker$1=m$27$0[1],x$24=m$27$0[2],x$24 instanceof Array&&x$24[0]==="ignore")){rval$4=__at___$16.check(["send",checker$1,["data",rhs$3]]);}else{if($$24965$0){checker$2=m$27$0[1];subp$10=m$27$0[2];t$2=__at___$16.temp(rhs$3);__at___$16.check(["send",checker$2,["data",t$2]]);rval$4=__at___$16.process(subp$10,t$2,fns$0);}else{if($$24962$0&&t0$36===4&&m$27$0[0]==="project"){projector$2=m$27$0[1];subp$11=m$27$0[2];t1$19=m$27$0[3];unconditional$1=t1$19;ph$8$0=t1$19;if(ph$8$0?true:false){t$3=__at___$16.temp(["send",projector$2,["data",rhs$3]]);rval$4=__at___$16.process(subp$11,t$3,fns$0);}else{t$4=__at___$16.temp(["send",projector$2,["data",rhs$3]]);__at___$16.check(["send",t$4,["value",0]]);rval$4=__at___$16.process(subp$11,["send",t$4,["value",1]],fns$0);}}else{if($$24962$0&&t0$36===2&&m$27$0[0]==="neg"){patt$1=m$27$0[1];pp$0=PatternProcessor$0();pp$0.process(patt$1,rhs$3,fns$0);x$25=assemble_conditions$0(pp$0);rval$4=__at___$16.check(["send",["symbol","not"],["data",["void"],x$25]]);}else{if($$24962$0&&($$24964$0=t0$36>=1)&&m$27$0[0]==="all"){xs$3=Array.prototype.slice.call(m$27$0,1);t$5=__at___$16.temp(rhs$3);m$28=null;var _iteratorNormalCompletion16=true;var _didIteratorError16=false;var _iteratorError16=undefined;try{$17:for(var _iterator16=xs$3[Symbol.iterator](),_step16;!(_iteratorNormalCompletion16=(_step16=_iterator16.next()).done);_iteratorNormalCompletion16=true){m$28=_step16.value;var x$26=void 0;x$26=m$28;__at___$16.process(x$26,t$5,fns$0);}}catch(err){_didIteratorError16=true;_iteratorError16=err;}finally{try{if(!_iteratorNormalCompletion16&&_iterator16.return){_iterator16.return();}}finally{if(_didIteratorError16){throw _iteratorError16;}}}rval$4=null;}else{if($$24964$0&&m$27$0[0]==="any"){xs$4=Array.prototype.slice.call(m$27$0,1);t$6=__at___$16.temp(rhs$3,["symbol",gensym$0("bridge")]);rval$4=__at___$16.check((fn$1=function fn(x$27,rest$4){return["send",["symbol","or"],["data",x$27,rest$4]];},parts$0=(acc$12=[],temp$15=null,m$29=null,function(){var _iteratorNormalCompletion17=true;var _didIteratorError17=false;var _iteratorError17=undefined;try{$18:for(var _iterator17=xs$4[Symbol.iterator](),_step17;!(_iteratorNormalCompletion17=(_step17=_iterator17.next()).done);_iteratorNormalCompletion17=true){m$29=_step17.value;var pp$1=void 0;var x$28=void 0;x$28=m$29;pp$1=PatternProcessor$0();pp$1.process(x$28,t$6,fns$0);temp$15=assemble_conditions$0(pp$1);acc$12.push(temp$15);}}catch(err){_didIteratorError17=true;_iteratorError17=err;}finally{try{if(!_iteratorNormalCompletion17&&_iterator17.return){_iterator17.return();}}finally{if(_didIteratorError17){throw _iteratorError17;}}}}(),acc$12),util$0.construct(parts$0,fn$1,["symbol","false"])));}else{if($$24964$0&&m$27$0[0]==="object_pattern"){subp$12=Array.prototype.slice.call(m$27$0,1);t$7=__at___$16.temp(rhs$3);acc$13=[];temp$16=null;m$30=null;var _iteratorNormalCompletion18=true;var _didIteratorError18=false;var _iteratorError18=undefined;try{$19:for(var _iterator18=subp$12[Symbol.iterator](),_step18;!(_iteratorNormalCompletion18=(_step18=_iterator18.next()).done);_iteratorNormalCompletion18=true){m$30=_step18.value;var t2$5=void 0;var t2$6=void 0;var k$1=void 0;var v$10=void 0;var default$4=void 0;var k$0=void 0;var v$9=void 0;var $$25127$0=void 0;var $$25128$0=void 0;var $$25129$0=void 0;var t0$37=void 0;var t1$20=void 0;t0$37=m$30;if(($$25128$0=Array.isArray(t0$37))&&(t1$20=t0$37.length,t1$20===2)){k$0=t0$37[0];v$9=t0$37[1];t2$5=__at___$16.temp(k$0);__at___$16.check(["send",["symbol","___hasprop"],["data",t$7,t2$5]]);temp$16=__at___$16.process(v$9,["send",t$7,t2$5],fns$0);acc$13.push(temp$16);}else{if($$25128$0&&t1$20===3){k$1=t0$37[0];v$10=t0$37[1];default$4=t0$37[2];t2$6=__at___$16.temp(k$1);temp$16=__at___$16.process(v$10,["send",["symbol","if"],["data",["send",["symbol","___hasprop"],["data",t$7,t2$6]],["send",t$7,t2$6],default$4]],fns$0);acc$13.push(temp$16);}else{___match_error(m$30);}}}}catch(err){_didIteratorError18=true;_iteratorError18=err;}finally{try{if(!_iteratorNormalCompletion18&&_iterator18.return){_iterator18.return();}}finally{if(_didIteratorError18){throw _iteratorError18;}}}rval$4=acc$13;}else{if($$24962$0&&t0$36===5&&m$27$0[0]==="array_pattern"){fw$2=m$27$0[1];bw$2=m$27$0[2];dflt$0=m$27$0[3];rest$5=m$27$0[4];nfw$0=fw$2.length;nbw$0=bw$2.length;ndflt$0=dflt$0.length;extract_length$0=true;check_length$0=true;lo$0=nfw$0+nbw$0;hi$0=lo$0+ndflt$0;t$8=__at___$16.temp(rhs$3);len$0=__at___$16.temp(["send",t$8,["send",["symbol","."],["data",["void"],["symbol","length"]]]]);__at___$16.check((m$31$0=rest$5,(m$31$0?true:false)?["send",["symbol",">="],["data",len$0,["value",lo$0]]]:lo$0===hi$0?["send",["symbol","==="],["data",len$0,["value",lo$0]]]:(otherwise$0=m$31$0,["send",["symbol","and"],["data",["send",["symbol",">="],["data",len$0,["value",lo$0]]],["send",["symbol","<="],["data",len$0,["value",hi$0]]]]])));m$32=null;var _iteratorNormalCompletion19=true;var _didIteratorError19=false;var _iteratorError19=undefined;try{$20:for(var _iterator19=enumerate(fw$2)[Symbol.iterator](),_step19;!(_iteratorNormalCompletion19=(_step19=_iterator19.next()).done);_iteratorNormalCompletion19=true){m$32=_step19.value;var i$2=void 0;var m$33=void 0;var t0$38=void 0;var t1$21=void 0;t0$38=m$32;if(Array.isArray(t0$38)&&(t1$21=t0$38.length,t1$21===2)){i$2=t0$38[0];m$33=t0$38[1];__at___$16.process(m$33,["send",t$8,["value",i$2]],fns$0);}else{___match_error(m$32);}}}catch(err){_didIteratorError19=true;_iteratorError19=err;}finally{try{if(!_iteratorNormalCompletion19&&_iterator19.return){_iterator19.return();}}finally{if(_didIteratorError19){throw _iteratorError19;}}}m$34=null;var _iteratorNormalCompletion20=true;var _didIteratorError20=false;var _iteratorError20=undefined;try{$21:for(var _iterator20=enumerate(dflt$0)[Symbol.iterator](),_step20;!(_iteratorNormalCompletion20=(_step20=_iterator20.next()).done);_iteratorNormalCompletion20=true){m$34=_step20.value;var idx$0=void 0;var i$3=void 0;var patt$2=void 0;var value$5=void 0;var t0$39=void 0;var t1$22=void 0;var t2$7=void 0;var t3$2=void 0;t0$39=m$34;if(Array.isArray(t0$39)&&(t1$22=t0$39.length,t1$22===2&&(i$3=t0$39[0],t2$7=t0$39[1],Array.isArray(t2$7)&&(t3$2=t2$7.length,t3$2===2)))){patt$2=t2$7[0];value$5=t2$7[1];idx$0=i$3+nfw$0;__at___$16.process(patt$2,["send",["symbol","if"],["data",["send",["symbol",">="],["data",["value",idx$0+nbw$0],len$0]],value$5,["send",t$8,["value",idx$0]]]],fns$0);}else{___match_error(m$34);}}}catch(err){_didIteratorError20=true;_iteratorError20=err;}finally{try{if(!_iteratorNormalCompletion20&&_iterator20.return){_iterator20.return();}}finally{if(_didIteratorError20){throw _iteratorError20;}}}if(rest$5!==undefined){pos$0=nfw$0+ndflt$0;if(nbw$0>0){end$0=[["value",-nbw$0]];}else{end$0=[];}__at___$16.process(rest$5,["send",["send",["send",["send",["symbol","Array"],["send",["symbol","."],["data",["void"],["symbol","prototype"]]]],["send",["symbol","."],["data",["void"],["symbol","slice"]]]],["send",["symbol","."],["data",["void"],["symbol","call"]]]],["data",t$8,["value",pos$0]].concat(end$0)],fns$0);}else{[];}acc$14=[];temp$17=null;m$35=null;var _iteratorNormalCompletion21=true;var _didIteratorError21=false;var _iteratorError21=undefined;try{$22:for(var _iterator21=enumerate(bw$2)[Symbol.iterator](),_step21;!(_iteratorNormalCompletion21=(_step21=_iterator21.next()).done);_iteratorNormalCompletion21=true){m$35=_step21.value;var i$4=void 0;var m$36=void 0;var t0$40=void 0;var t1$23=void 0;t0$40=m$35;if(Array.isArray(t0$40)&&(t1$23=t0$40.length,t1$23===2)){i$4=t0$40[0];m$36=t0$40[1];temp$17=__at___$16.process(m$36,["send",["symbol","___js_fetch"],["data",t$8,["send",["symbol","-"],["data",len$0,["value",nbw$0-i$4]]]]],fns$0);acc$14.push(temp$17);}else{___match_error(m$35);}}}catch(err){_didIteratorError21=true;_iteratorError21=err;}finally{try{if(!_iteratorNormalCompletion21&&_iterator21.return){_iterator21.return();}}finally{if(_didIteratorError21){throw _iteratorError21;}}}rval$4=acc$14;}else{if(x$29=m$27$0,x$29 instanceof Array&&x$29[0]==="default"){throw send(send(ErrorFactory(["syntax","pattern"]),"create",true),__amp____colon__(["Cannot declare default value here"],{"expr":pattern$5,"::objinsert":1}));}else{rval$4=___match_error(m$27$0,"#default");}}}}}}}}}}}}}return rval$4;};__amp____colon__(PatternProcessor$0,__amp____colon__(($targ$36="PatternProcessor",accum$8={},accum$8["::name"]=$targ$36,accum$8),($targ$37=true,accum$9={},accum$9["::egclass"]=$targ$37,accum$9)));assemble_conditions$0=function assemble_conditions(pp$2){var m$37=void 0;var acc$15=void 0;var temp$18=void 0;var decls$0=void 0;var construct$0=void 0;construct$0=function construct(ph$9$0){var x$32=void 0;var rest$7=void 0;var x$31=void 0;var x$30=void 0;var rest$6=void 0;var $$25383$0=void 0;var $$25384$0=void 0;var t0$41=void 0;var t1$24=void 0;var t2$8=void 0;var t3$3=void 0;t0$41=ph$9$0;t1$24=t0$41.length;if(t1$24===0){return["value",true];}else{if(t1$24>=1&&(t2$8=t0$41[0],Array.isArray(t2$8)&&(t3$3=t2$8.length,t3$3===2&&t2$8[0]==="do"))){x$30=t2$8[1];rest$6=Array.prototype.slice.call(t0$41,1);return["multi",x$30,construct$0(rest$6)];}else{if(t1$24===1&&(t2$8=t0$41[0],Array.isArray(t2$8)&&(t3$3=t2$8.length,t3$3===2&&t2$8[0]==="check"))){x$31=t2$8[1];return x$31;}else{if(t1$24>=1&&(t2$8=t0$41[0],Array.isArray(t2$8)&&(t3$3=t2$8.length,t3$3===2&&t2$8[0]==="check"))){x$32=t2$8[1];rest$7=Array.prototype.slice.call(t0$41,1);return["send",