The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

var isNode=typeof require!="undefined";if(typeof p5pkg!=="object"){p5pkg={};p5LOCAL=[];var universal=function(){};p5pkg.UNIVERSAL=new universal();p5pkg.UNIVERSAL._ref_="UNIVERSAL";p5pkg.UNIVERSAL.isa=function(List__){return List__[0]._class_._ref_==List__[1]};p5pkg.UNIVERSAL.can=function(List__){var o=List__[0];var s=List__[1];if(s.indexOf("::")==-1){return p5method_lookup(s,o._class_._ref__,{})}
var c=s.split("::");s=c.pop();return p5method_lookup(s,c.join("::"),{});};p5pkg.UNIVERSAL.DOES=p5pkg.UNIVERSAL.can;var core=function(){};p5pkg["CORE"]=new core();p5pkg["CORE"]._ref_="CORE";var core_global=function(){};core_global.prototype=p5pkg.CORE;p5pkg["CORE::GLOBAL"]=new core_global();p5pkg["CORE::GLOBAL"]._ref_="CORE::GLOBAL";p5_error=function(type,v){this.type=type;this.v=v;this.toString=function(){if(this.type=='break'){return'Can\'t "break" outside a given block'}
if(this.type=='next'||this.type=='last'||this.type=='redo'){if(this.v==""){return'Can\'t "'+this.type+'" outside a loop block'}
return'Label not found for "'+this.type+' '+this.v+'"';}
return this.v;};};p5_error.prototype=Error.prototype;}
function p5make_package(pkg_name){if(!p5pkg.hasOwnProperty(pkg_name)){var tmp=function(){};tmp.prototype=p5pkg["CORE::GLOBAL"];p5pkg[pkg_name]=new tmp();p5pkg[pkg_name]._ref_=pkg_name;p5pkg[pkg_name]._class_=p5pkg[pkg_name];p5pkg[pkg_name]._is_package_=1;p5pkg[pkg_name]["List_ISA"]=[];p5pkg[pkg_name]["v_a"]=null;p5pkg[pkg_name]["v_b"]=null;p5pkg[pkg_name]["v__"]=null;p5pkg[pkg_name]["v_AUTOLOAD"]=null;}
return p5pkg[pkg_name];}
function p5code_lookup_by_name(package_name,sub_name){var parts=sub_name.split(/::/);if(parts.length>1){sub_name=parts.pop();package_name=parts.join("::");}
if(p5pkg.hasOwnProperty(package_name)){var c=p5pkg[package_name];if(c.hasOwnProperty(sub_name)){return c[sub_name]}}
return null;}
function p5get_class_for_method(method,class_name,seen){if(p5pkg[class_name].hasOwnProperty(method)){return class_name}
var isa=p5pkg[class_name].List_ISA;for(var i=0;i<isa.length;i++){if(!seen[isa[i]]){var m=p5get_class_for_method(method,isa[i],seen);if(m){return m}
seen[isa[i]]++;}}}
function p5method_lookup(method,class_name,seen){var c=p5get_class_for_method(method,class_name,seen);if(c){return p5pkg[c][method]}
if(p5pkg.UNIVERSAL.hasOwnProperty(method)){return p5pkg.UNIVERSAL[method]}}
function p5call(invocant,method,list,p5want){if(typeof invocant==="string"){list.unshift(invocant);invocant=p5make_package(invocant);}
else if(invocant.hasOwnProperty("_is_package_")){list.unshift(invocant._ref_);}
else{list.unshift(invocant);}
if(invocant.hasOwnProperty("_class_")){if(invocant._class_.hasOwnProperty(method)){return invocant._class_[method](list,p5want)}
var m=p5method_lookup(method,invocant._class_._ref_,{});if(m){return m(list,p5want)}
var pkg_name=method.split(/::/);if(pkg_name.length>1){var name=pkg_name.pop();pkg_name=pkg_name.join("::");m=p5method_lookup(name,pkg_name,{});if(m){return m(list,p5want)}
p5pkg.CORE.die(["method not found: ",name," in class ",pkg_name]);}
pkg_name=p5get_class_for_method('AUTOLOAD',invocant._class_._ref_,{})||p5get_class_for_method('AUTOLOAD',"UNIVERSAL",{});if(pkg_name){p5pkg[pkg_name]["v_AUTOLOAD"]=invocant._class_._ref_+"::"+method;return p5pkg[pkg_name]["AUTOLOAD"](list,p5want);}
p5pkg.CORE.die(["method not found: ",method," in class ",invocant._class_._ref_]);}
p5pkg.CORE.die(["Can't call method ",method," on unblessed reference"]);}
function p5call_sub(namespace,name,list,p5want){if(p5pkg[namespace].hasOwnProperty(name)){return p5pkg[namespace][name](list,p5want)}
if(p5pkg[namespace].hasOwnProperty("AUTOLOAD")){p5pkg[namespace]["v_AUTOLOAD"]=namespace+"::"+name;return p5pkg[namespace]["AUTOLOAD"](list,p5want)}
p5pkg.CORE.die(["Undefined subroutine &"+namespace+"::"+name]);}
function p5scalar_deref(v){if(typeof v==="string"){var pkg_name=v.split(/::/);if(pkg_name.length>1){v=pkg_name.pop();pkg_name=pkg_name.join("::");}
else{pkg_name=p5pkg["Perlito5"].v_PKG_NAME;}
var c=v.charCodeAt(0);if(c<27){v=String.fromCharCode(c+64)+v.substr(1);pkg_name='main';}
return p5pkg[pkg_name]["v_"+v];}
return v._scalar_;}
function p5scalar_deref_set(v,n){if(typeof v==="string"){var pkg_name=v.split(/::/);if(pkg_name.length>1){v=pkg_name.pop();pkg_name=pkg_name.join("::");}
else{pkg_name=p5pkg["Perlito5"].v_PKG_NAME;}
var c=v.charCodeAt(0);if(c<27){v=String.fromCharCode(c+64)+v.substr(1);pkg_name='main';}
p5pkg[pkg_name]["v_"+v]=n;return p5pkg[pkg_name]["v_"+v];}
v._scalar_=n;return v._scalar_;}
p5make_package("main");p5make_package("Perlito5");p5pkg["Perlito5"].v_PKG_NAME="main";p5pkg["main"]["v_@"]=[];p5pkg["main"]["v_|"]=0;p5pkg["main"]["List_#"]=[];p5scalar_deref_set(String.fromCharCode(15),isNode?"node.js":"javascript2");p5pkg["main"]["List_INC"]=[];p5pkg["main"]["Hash_INC"]={};p5pkg["main"]["List_ARGV"]=[];p5pkg["main"]["Hash_ENV"]={};if(isNode){p5pkg["main"]["List_ARGV"]=process.argv.splice(2);p5pkg["main"]["Hash_ENV"]={};for(e in process.env)p5pkg["main"]["Hash_ENV"][e]=process.env[e];p5pkg["main"]["v_$"]=process.pid;}else if(typeof arguments==="object"){p5pkg["main"]["List_ARGV"]=arguments;}
p5make_package("Perlito5::IO");p5make_package("Perlito5::Runtime");p5make_package("Perlito5::Grammar");function p5make_sub(pkg_name,sub_name,func){p5make_package(pkg_name);p5pkg[pkg_name][sub_name]=func;}
var sigils={'@':'List_','%':'Hash_','$':'v_'};function p5set_local(namespace,name,sigil){var vname=sigils[sigil]+name;p5LOCAL.push([namespace,vname,namespace[vname]]);if(sigil=='$'){namespace[vname]=null;}
else if(sigil=='@'){namespace[vname]=new p5Array([]);}
else if(sigil=='%'){namespace[vname]=new p5Hash({});}
return namespace[vname];}
function p5cleanup_local(idx,value){while(p5LOCAL.length>idx){l=p5LOCAL.pop();l[0][l[1]]=l[2];}
return value;}
function p5HashRef(o){this._hash_=o;this._ref_="HASH";this.bool=function(){return 1};}
function p5ArrayRef(o){this._array_=o;this._ref_="ARRAY";this.bool=function(){return 1};}
function p5ScalarRef(o){this._scalar_=o;this._ref_="SCALAR";this.bool=function(){return 1};}
function p5GlobRef(o){this._scalar_=o;this._ref_="GLOB";this.bool=function(){return 1};}
Object.defineProperty(Object.prototype,"p5hget",{enumerable:false,value:function(i){return this[i]}});Object.defineProperty(Object.prototype,"p5hset",{enumerable:false,value:function(i,v){this[i]=v;return this[i]}});Object.defineProperty(Object.prototype,"p5incr",{enumerable:false,value:function(i){this[i]=p5incr_(this[i]);return this[i];}});Object.defineProperty(Object.prototype,"p5postincr",{enumerable:false,value:function(i){var v=this[i];this[i]=p5incr_(this[i]);return v;}});Object.defineProperty(Object.prototype,"p5decr",{enumerable:false,value:function(i){this[i]=p5decr_(this[i]);return this[i];}});Object.defineProperty(Object.prototype,"p5postdecr",{enumerable:false,value:function(i){var v=this[i];this[i]=p5decr_(this[i]);return v;}});Object.defineProperty(Object.prototype,"p5hget_array",{enumerable:false,value:function(i){if(this[i]==null){this[i]=new p5ArrayRef([])}
return this[i]}});Object.defineProperty(Object.prototype,"p5hget_hash",{enumerable:false,value:function(i){if(this[i]==null){this[i]=new p5HashRef({})}
return this[i]}});if(isNode){var fs=require("fs");p5make_sub("Perlito5::IO","slurp",function(List__){return fs.readFileSync(List__[0],"utf8");});}else{p5make_sub("Perlito5::IO","slurp",function(List__){var filename=List__[0];if(typeof readFile=="function"){return readFile(filename);}
if(typeof read=="function"){return read(filename);}
p5pkg.CORE.die(["Perlito5::IO::slurp() not implemented"]);});}
p5context=function(List__,p5want){if(p5want){return p5list_to_a.apply(null,List__);}
var o=List__;while(o instanceof Array){o=o.length?o[o.length-1]:null;}
return o;}
p5list_to_a=function(){var res=[];for(i=0;i<arguments.length;i++){var o=arguments[i];if(o==null||o._class_||o._ref_)
{res.push(o);}
else if(o instanceof Array){for(j=0;j<o.length;j++){res.push(o[j]);}}
else if(typeof o==="object"){for(var j in o){if(o.hasOwnProperty(j)){res.push(j);res.push(o[j]);}}}
else{res.push(o);}}
return res;};p5a_to_h=function(a){var res={};for(i=0;i<a.length;i+=2){res[p5str(a[i])]=a[i+1];}
return res;};p5idx=function(a,i){return i>=0?i:a.length+i};p5str=function(o){if(o==null){return"";}
if(typeof o==="object"&&(o instanceof Array)){return CORE.join(["",o]);}
if(typeof o=="number"&&Math.abs(o)<0.0001&&o!=0){return o.toExponential().replace(/e-(\d)$/,"e-0$1");}
if(typeof o==="boolean"){return o?"1":"";}
if(typeof o!=="string"){return""+o;}
return o;};p5num=function(o){if(o==null){return 0;}
if(typeof o==="object"&&(o instanceof Array)){return o.length;}
if(typeof o!=="number"){return parseFloat(p5str(o));}
return o;};p5bool=function(o){if(o){if(typeof o==="boolean"){return o;}
if(typeof o==="number"){return o;}
if(typeof o==="string"){return o!=""&&o!="0";}
if(typeof o.length==="number"){return o.length;}
if(o instanceof Error){return true;}
for(var i in o){return true;}}
return false;};p5incr_=function(o){if(typeof o==="number"){return o+1;}
return p5str_inc(p5str(o));};p5decr_=function(o){if(typeof o==="number"){return o-1;}
return p5num(o)-1;};p5modulo=function(o,k){var m=o%k;if(k<0&&m>0){m=m+k;}
else if(k>0&&m<0){m=m+k;}
return m;};p5shift_left=function(o,k){return k<31?o<<k:o*Math.pow(2,k);};p5and=function(a,fb){if(p5bool(a)){return fb();}
return a;};p5or=function(a,fb){if(p5bool(a)){return a;}
return fb();};p5defined_or=function(a,fb){if(a==null){return fb();}
return a;};p5cmp=function(a,b){return a>b?1:a<b?-1:0};p5complement=function(a){return a<0?~a:4294967295-a};p5str_replicate=function(o,n){n=p5num(n);return n?Array(n+1).join(o):"";};p5str_inc=function(s){s=p5str(s);if(s.length<2){if(s.match(/[012345678ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy]/)){return String.fromCharCode(s.charCodeAt(0)+1);}
if(s=="9"){return"10";}
if(s=="Z"){return"AA";}
if(s=="z"){return"aa";}
return"1";}
var c=p5str_inc(s.substr(s.length-1,1));if(c.length==1){return s.substr(0,s.length-1)+c;}
return p5str_inc(s.substr(0,s.length-1))+c.substr(c.length-1,1);};p5for=function(namespace,func,args,cont,label){var _redo=false;var v_old=namespace["v__"];for(var i=0;i<args.length;i++){namespace["v__"]=args[i];try{func()}
catch(err){if(err instanceof p5_error&&err.v==label){if(err.type=='last'){return}
else if(err.type=='redo'){i--;_redo=true}
else if(err.type!='next'){throw(err)}}
else{throw(err)}}
if(cont){try{if(!_redo){cont()}}
catch(err){if(err instanceof p5_error&&err.v==label){if(err.type=='last'){return}
else if(err.type=='redo'){_redo=true}
else if(err.type!='next'){throw(err)}}
else{throw(err)}}}}
namespace["v__"]=v_old;};p5for_lex=function(func,args,cont,label){var _redo=false;for(var i=0;i<args.length;i++){try{func(args[i])}
catch(err){if(err instanceof p5_error&&err.v==label){if(err.type=='last'){return}
else if(err.type=='redo'){i--;_redo=true}
else if(err.type!='next'){throw(err)}}
else{throw(err)}}
if(cont){try{if(!_redo){cont()}}
catch(err){if(err instanceof p5_error&&err.v==label){if(err.type=='last'){return}
else if(err.type=='redo'){_redo=true}
else if(err.type!='next'){throw(err)}}
else{throw(err)}}}}};p5while=function(func,cond,cont,label){var _redo=false;while(_redo||p5bool(cond())){_redo=false;try{func()}
catch(err){if(err instanceof p5_error&&err.v==label){if(err.type=='last'){return}
else if(err.type=='redo'){_redo=true}
else if(err.type!='next'){throw(err)}}
else{throw(err)}}
if(cont){try{if(!_redo){cont()}}
catch(err){if(err instanceof p5_error&&err.v==label){if(err.type=='last'){return}
else if(err.type=='redo'){_redo=true}
else if(err.type!='next'){throw(err)}}
else{throw(err)}}}}};p5map=function(namespace,func,args){var v_old=namespace["v__"];var out=[];for(var i=0;i<args.length;i++){namespace["v__"]=args[i];var o=p5list_to_a(func(1));for(var j=0;j<o.length;j++){out.push(o[j]);}}
namespace["v__"]=v_old;return out;};p5grep=function(namespace,func,args){var v_old=namespace["v__"];var out=[];for(var i=0;i<args.length;i++){namespace["v__"]=args[i];if(p5bool(func(0))){out.push(args[i])}}
namespace["v__"]=v_old;return out;};p5sort=function(namespace,func,args){var a_old=namespace["v_a"];var b_old=namespace["v_b"];var out=func==null?args.sort():args.sort(function(a,b){namespace["v_a"]=a;namespace["v_b"]=b;return func(0);});namespace["v_a"]=a_old;namespace["v_b"]=b_old;return out;};perl5_to_js=function(source,namespace,var_env_js,p5want){var strict_old=p5pkg["Perlito5"].v_STRICT;var var_env_js_old=p5pkg["Perlito5"].v_VAR;p5pkg["Perlito5"].v_VAR=var_env_js;var namespace_old=p5pkg["Perlito5"].v_PKG_NAME;p5pkg["Perlito5"].v_PKG_NAME=namespace;match=p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",[source,0]);if(!match||match._hash_.to!=source.length){CORE.die(["Syntax error in eval near pos ",match._hash_.to]);}
ast=p5pkg.CORE.bless([new p5HashRef({block:p5pkg.CORE.bless([new p5HashRef({stmts:p5pkg["Perlito5::Match"].flat([match])}),p5pkg["Perlito5::AST::Lit::Block"]])}),p5pkg["Perlito5::AST::Do"]]);js_code=p5call(ast,"emit_javascript2",[0,p5want]);p5pkg["Perlito5"].v_PKG_NAME=namespace_old;p5pkg["Perlito5"].v_VAR=var_env_js_old;p5pkg["Perlito5"].v_STRICT=strict_old;return js_code;}
Object.defineProperty(Array.prototype,"p5aget",{enumerable:false,value:function(i){if(i<0){i=this.length+i};return this[i]}});Object.defineProperty(Array.prototype,"p5aset",{enumerable:false,value:function(i,v){if(i<0){i=this.length+i};this[i]=v;return this[i]}});Object.defineProperty(Array.prototype,"p5incr",{enumerable:false,value:function(i){if(i<0){i=this.length+i};this[i]=p5incr_(this[i]);return this[i];}});Object.defineProperty(Array.prototype,"p5postincr",{enumerable:false,value:function(i){if(i<0){i=this.length+i};var v=this[i];this[i]=p5incr_(this[i]);return v;}});Object.defineProperty(Array.prototype,"p5decr",{enumerable:false,value:function(i){if(i<0){i=this.length+i};this[i]=p5decr_(this[i]);return this[i];}});Object.defineProperty(Array.prototype,"p5postdecr",{enumerable:false,value:function(i){if(i<0){i=this.length+i};var v=this[i];this[i]=p5decr_(this[i]);return v;}});Object.defineProperty(Array.prototype,"p5aget_array",{enumerable:false,value:function(i){if(i<0){i=this.length+i};if(this[i]==null){this[i]=new p5ArrayRef([])}
return this[i]}});Object.defineProperty(Array.prototype,"p5aget_hash",{enumerable:false,value:function(i){if(i<0){i=this.length+i};if(this[i]==null){this[i]=new p5HashRef({})}
return this[i]}});Object.defineProperty(Array.prototype,"p5unshift",{enumerable:false,configurable:true,value:function(args){for(var i=args.length-1;i>=0;i--){this.unshift(args[i]);}
return this.length;}});Object.defineProperty(Array.prototype,"p5push",{enumerable:false,configurable:true,value:function(args){for(var i=0;i<args.length;i++){this.push(args[i]);}
return this.length;}});p5tie_array=function(v,List__){var pkg_name=p5str(List__.shift());var res=p5call(pkg_name,'TIEARRAY',List__,null);Object.defineProperty(v,"p5aget",{enumerable:false,configurable:true,value:function(i){return p5call(res,'FETCH',[i]);}});Object.defineProperty(v,"p5aset",{enumerable:false,configurable:true,value:function(i,value){p5call(res,'STORE',[i,value]);return value;}});Object.defineProperty(v,"p5incr",{enumerable:false,configurable:true,value:function(i){var value=p5incr_(p5call(res,'FETCH',[i]));p5call(res,'STORE',[i,value]);return value;}});Object.defineProperty(v,"p5postincr",{enumerable:false,configurable:true,value:function(i){var value=p5call(res,'FETCH',[i]);p5call(res,'STORE',[i,p5incr_(value)]);return value;}});Object.defineProperty(v,"p5decr",{enumerable:false,configurable:true,value:function(i){var value=p5decr_(p5call(res,'FETCH',[i]));p5call(res,'STORE',[i,value]);return value;}});Object.defineProperty(v,"p5postdecr",{enumerable:false,configurable:true,value:function(i){var value=p5call(res,'FETCH',[i]);p5call(res,'STORE',[i,p5decr_(value)]);return value;}});Object.defineProperty(v,"p5aget_array",{enumerable:false,configurable:true,value:function(i){var value=p5call(res,'FETCH',[i]);if(value==null){value=new p5ArrayRef([]);p5call(res,'STORE',[i,value]);}
return value;}});Object.defineProperty(v,"p5aget_hash",{enumerable:false,configurable:true,value:function(i){var value=p5call(res,'FETCH',[i]);if(value==null){value=new p5HashRef({});p5call(res,'STORE',[i,value]);}
return value;}});Object.defineProperty(v,"p5untie",{enumerable:false,configurable:true,value:function(i){return p5call(res,'UNTIE',[])}});Object.defineProperty(v,"shift",{enumerable:false,configurable:true,value:function(){return p5call(res,'SHIFT',[])}});Object.defineProperty(v,"pop",{enumerable:false,configurable:true,value:function(){return p5call(res,'POP',[])}});Object.defineProperty(v,"p5unshift",{enumerable:false,configurable:true,value:function(args){for(var i=args.length-1;i>=0;i--){p5call(res,'UNSHIFT',[args[i]]);}
return p5call(res,'FETCHSIZE',[]);}});Object.defineProperty(v,"p5push",{enumerable:false,configurable:true,value:function(args){for(var i=0;i<args.length;i++){p5call(res,'PUSH',[args[i]]);}
return p5call(res,'FETCHSIZE',[]);}});return res;};p5untie_array=function(v){if(v.hasOwnProperty('p5untie')){var res=v.p5untie();delete v.p5aget;delete v.p5aset;delete v.p5incr;delete v.p5postincr;delete v.p5decr;delete v.p5postdecr;delete v.p5aget_array;delete v.p5aget_hash;delete v.p5untie;delete v.shift;delete v.pop;delete v.p5unshift;delete v.p5push;return res;}
else{return null;}};function p5ArrayOfAlias(o){this._array_=o;this.p5aget=function(i){if(i<0){i=this.length+i};return this._array_[i+i][this._array_[i+i+1]];}
this.p5aset=function(i,v){if(i<0){i=this.length+i};this._array_[i+i][this._array_[i+i+1]]=v;return this._array_[i+i][this._array_[i+i+1]]}
this.p5incr=function(i){if(i<0){i=this.length+i};this._array_[i+i][this._array_[i+i+1]]=p5incr_(this._array_[i+i][this._array_[i+i+1]]);return this._array_[i+i][this._array_[i+i+1]];}
this.p5postincr=function(i){if(i<0){i=this.length+i};var v=this._array_[i+i][this._array_[i+i+1]];this._array_[i+i][this._array_[i+i+1]]=p5incr_(this._array_[i+i][this._array_[i+i+1]]);return v;}
this.p5decr=function(i){if(i<0){i=this.length+i};this._array_[i+i][this._array_[i+i+1]]=p5decr_(this._array_[i+i][this._array_[i+i+1]]);return this._array_[i+i][this._array_[i+i+1]];}
this.p5postdecr=function(i){if(i<0){i=this.length+i};var v=this._array_[i+i][this._array_[i+i+1]];this._array_[i+i][this._array_[i+i+1]]=p5decr_(this._array_[i+i][this._array_[i+i+1]]);return v;}
this.p5aget_array=function(i){if(i<0){i=this.length+i};if(this._array_[i+i][this._array_[i+i+1]]==null){this._array_[i+i][this._array_[i+i+1]]=new p5ArrayRef([])}
return this._array_[i+i][this._array_[i+i+1]]}
this.p5aget_hash=function(i){if(i<0){i=this.length+i};if(this._array_[i+i][this._array_[i+i+1]]==null){this._array_[i+i][this._array_[i+i+1]]=new p5HashRef({})}
return this._array_[i+i][this._array_[i+i+1]]}
this.p5unshift=function(args){for(var i=args.length-1;i>=0;i--){this.unshift(0);this.unshift([args[i]]);}
return this._array_.length/2;}
this.p5push=function(args){for(var i=0;i<args.length;i++){this.push([args[i]]);this.push(0);}
return this._array_.length/2;}
this.shift=function(){var v0=this._array_.shift();return v0[this._array_.shift()];}
this.pop=function(){var v1=this._array_.pop();var v0=this._array_.pop();return v0[v1];}}
var CORE=p5pkg.CORE;var isNode=typeof require!="undefined";if(isNode){CORE.print=function(List__){var i;for(i=0;i<List__.length;i++){process.stdout.write(p5str(List__[i]));}
return 1;}}else{CORE.print=function(List__){var i;for(i=0;i<List__.length;i++){write(p5str(List__[i]));}
return 1;};}
CORE.say=function(List__){CORE.print(List__);return CORE.print(["\n"]);};CORE.die=function(List__){var i;var s="";for(i=0;i<List__.length;i++){s=s+p5str(List__[i]);}
try{s=s+"\n"+new Error().stack;}
catch(err){}
p5pkg["main"]["v_@"]="Died: "+s;throw(new p5_error("die","Died: "+s));};CORE.warn=function(List__){var i;var s="";for(i=0;i<List__.length;i++){s=s+p5str(List__[i]);}
try{s=s+"\n"+new Error().stack;}
catch(err){}
CORE.print(["Warning: "+s+"\n"]);};CORE.bless=function(List__){var o=List__[0];var pkg_name=List__[1];if(typeof pkg_name==="object"){o._class_=pkg_name;return o;}
if(!p5pkg.hasOwnProperty(pkg_name)){p5make_package(pkg_name);}
o._class_=p5pkg[pkg_name];return o;};CORE.chr=function(List__){var v=p5num(List__[0]);return String.fromCharCode(v>=0?v:65533);};CORE.ord=function(List__){return p5str(List__[0]).charCodeAt(0);};CORE.oct=function(List__){var v=List__[0];var b=v.substr(0,2);v=v.replace("_","");if(b=="0b"||b=="0B"){return parseInt(v.substr(2),2)}
if(b=="0x"||b=="0X"){return parseInt(v.substr(2),16)}
return parseInt(v,8);};CORE.abs=function(List__){return Math.abs(List__[0])};CORE.exp=function(List__){return Math.exp(List__[0])};CORE.log=function(List__){return Math.log(List__[0])};CORE.cos=function(List__){return Math.cos(List__[0])};CORE.sin=function(List__){return Math.sin(List__[0])};CORE.sqrt=function(List__){return Math.sqrt(List__[0])};CORE.atan2=function(List__){return Math.atan2(List__[0],List__[1])};CORE.int=function(List__){return List__[0]>0?Math.floor(List__[0]):Math.ceil(List__[0])};CORE.rand=function(List__){var v=p5num(List__[0])||1;return Math.random()*v;};CORE.lc=function(List__){return p5str(List__[0]).toLowerCase()};CORE.uc=function(List__){return p5str(List__[0]).toUpperCase()};CORE.lcfirst=function(List__){var s=p5str(List__[0]);var c=s.length>0?s.slice(0,1).toLowerCase():"";s=s.length>1?s.substr(1):"";return c+s};CORE.ucfirst=function(List__){var s=p5str(List__[0]);var c=s.length>0?s.slice(0,1).toUpperCase():"";s=s.length>1?s.substr(1):"";return c+s};CORE.quotemeta=function(List__){var s=p5str(List__[0]);var out=[];for(var i=0;i<s.length;i++){if(s.substr(i,1).match(/[^0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]/)){out.push(String.fromCharCode(92));}
out.push(s.substr(i,1));}
return out.join("");};CORE.substr=function(List__){var expr=List__[0];var offset=List__[1];var length=List__[2];var replacement=List__[3];if(length<0){var s=p5str(expr);length=s.length-offset+length;}
return p5str(expr).substr(offset,length);};CORE.values=function(List__,p5want){var o=List__[0];delete o["_each_"];if(p5want){if(o==null){return[];};if(typeof o.values==="function"){return o.values();}
var out=[];for(var i in o){out.push(o[i]);}
return out;}
return CORE.keys(List__,p5want);};CORE.keys=function(List__,p5want){var o=List__[0];delete o["_each_"];if(p5want){if(o==null){return[];}
if(typeof o.keys==="function"){return o.keys();}
var out=[];for(var i in o){out.push(i);}
return out;}
else{if(o==null){return 0;}
if(typeof o.keys==="function"){return CORE.scalar([o.keys()]);}
var out=0;for(var i in o){out++;}
return out;}};CORE.each=function(List__,p5want){var o=List__[0];if(o.hasOwnProperty("_each_")){return o._each_(p5want)}
var keys=CORE.keys([o],1);var i=0;o._each_=function(){if(i<keys.length){i++;return p5want?[keys[i-1],o[keys[i-1]]]:keys[i-1];}
i=0;return p5want?[]:null;};return o._each_(p5want);};CORE.reverse=function(List__){var o=List__[0];if(o==null){return"";}
if(typeof o==="string"){return o.split("").reverse().join("")}
var out=[];for(var i=0;i<o.length;i++){out.unshift(o[i]);}
return out;};CORE.splice=function(List__,p5want){var array=List__.shift();var offset=p5num(List__.shift());var limit=List__.length?p5num(List__.shift()):(array.length+1);if(limit<0){limit=array.length+limit-1;}
var list=[offset,limit];for(var i=0;i<List__.length;i++){list=p5list_to_a(list,List__[i]);}
out=array.splice.apply(array,list);return p5want?out:out.pop();};CORE.join=function(List__){var s=List__[0];var o=List__[1];return o.join(s);};CORE.index=function(List__){var o=List__[0];var s=List__[1];try{return o.indexOf(s,p5num(List__[2]));}
catch(err){return-1;}};CORE.rindex=function(List__){var o=List__[0];var s=List__[1];try{if(List__.length>2){var i=p5num(List__[2]);if(i<0){if(s.length==0){return 0;}
return-1;}
return o.lastIndexOf(s,i);}
return o.lastIndexOf(s);}
catch(err){return-1;}};CORE.length=function(List__){return p5str(List__[0]).length;};CORE.pack=function(List__){CORE.warn(["CORE::pack not implemented"])};CORE.unpack=function(List__){CORE.warn(["CORE::unpack not implemented"])};CORE.ref=function(List__){var o=List__[0];if(o==null){return"";}
if(o._class_&&typeof o._class_._ref_==="string"){return o._class_._ref_;}
if(typeof o._ref_==="string"){return o._ref_;}
if(typeof o==="function"){return"CODE";}
return"";};CORE.split=function(List__){var pattern=List__[0];var s=List__[1];var limit=List__[2];if(typeof pattern==="string"){if(pattern==" "){var res=[];for(var i_=0,a_=s.split(/(?: |\n)+/);i_<a_.length;i_++){if(a_[i_]!=""){res.push(a_[i_])}}
return res;}
return s.split(pattern);}
CORE.die(["not implemented"]);};CORE.prototype=function(List__,data){var name=List__[0];p5pkg["Perlito5"].v_PROTO._hash_[name]||p5pkg["Perlito5"].v_CORE_PROTO._hash_[name]};var isNode=typeof require!="undefined";if(isNode){var fs=require("fs");p5atime=function(s){try{var stat=fs.statSync(s);return stat["atime"];}
catch(err){return'';}};p5mtime=function(s){try{var stat=fs.statSync(s);return stat["mtime"];}
catch(err){return'';}};p5ctime=function(s){try{var stat=fs.statSync(s);return stat["ctime"];}
catch(err){return'';}};p5size=function(s){try{var stat=fs.statSync(s);return stat["size"];}
catch(err){return'';}};p5is_file=function(s){try{var stat=fs.statSync(s);return stat.isFile()?1:0;}
catch(err){return'';}};p5is_directory=function(s){try{var stat=fs.statSync(s);return stat.isDirectory()?1:0;}
catch(err){return'';}};p5file_exists=function(s){return p5is_file(s)||p5is_directory(s);};CORE.chdir=function(List__){try{process.chdir(p5str(List__[0]));return 1;}
catch(err){return'';}};CORE.close=function(List__){try{fs.closeSync(p5str(List__[0]));return 1;}
catch(err){p5pkg["main"]["v_!"]=err;return'';}};CORE.exit=function(List__){process.exit(List__[0]);};CORE.rename=function(List__){try{fs.renameSync(p5str(List__[0]),p5str(List__[1]));return 1;}
catch(err){p5pkg["main"]["v_!"]=err;return'';}};CORE.unlink=function(List__){var count=0;try{for(var i=0;i<List__.length;i++){fs.unlinkSync(p5str(List__[i]));count++;}
return count;}
catch(err){p5pkg["main"]["v_!"]=err;return count;}};}
CORE.sprintf=function(List__){var format=List__[0];var list=List__[1];if(typeof format!='string'){CORE.die(["sprintf: The first arguments need to be a valid format string."]);}
var r=new RegExp(/%(\+)?([0 ]|'(.))?(-)?([0-9]+)?(\.([0-9]+))?([%bcdfosxX])/g);var parts=[];var paramIndex=0;while(part=r.exec(format)){if(paramIndex>=list.length){CORE.die(["sprintf: At least one argument was missing."]);}
parts[parts.length]={begin:part.index,end:part.index+part[0].length,sign:(part[1]=='+'),negative:(parseInt(list[paramIndex])<0)?true:false,padding:(part[2]==undefined)?(' '):((part[2].substring(0,1)=="'")?(part[3]):(part[2])),alignLeft:(part[4]=='-'),width:(part[5]!=undefined)?part[5]:false,precision:(part[7]!=undefined)?part[7]:false,type:part[8],data:(part[8]!='%')?String(list[paramIndex++]):false};}
var newString="";var start=0;for(var i=0;i<parts.length;++i){newString+=format.substring(start,parts[i].begin);start=parts[i].end;var preSubstitution="";switch(parts[i].type){case'%':preSubstitution="%";break;case'b':preSubstitution=Math.abs(parseInt(parts[i].data)).toString(2);break;case'c':preSubstitution=String.fromCharCode(Math.abs(parseInt(parts[i].data)));break;case'd':preSubstitution=String(Math.abs(parseInt(parts[i].data)));break;case'f':preSubstitution=(parts[i].precision==false)?(String((Math.abs(parseFloat(parts[i].data))))):(Math.abs(parseFloat(parts[i].data)).toFixed(parts[i].precision));break;case'o':preSubstitution=Math.abs(parseInt(parts[i].data)).toString(8);break;case's':preSubstitution=parts[i].data.substring(0,parts[i].precision?parts[i].precision:parts[i].data.length);break;case'x':preSubstitution=Math.abs(parseInt(parts[i].data)).toString(16).toLowerCase();break;case'X':preSubstitution=Math.abs(parseInt(parts[i].data)).toString(16).toUpperCase();break;default:throw'sprintf: Unknown type "'+parts[i].type+'" detected. This should never happen. Maybe the regex is wrong.';}
if(parts[i].type=="%"){newString+=preSubstitution;continue;}
if(parts[i].width!=false){if(parts[i].width>preSubstitution.length)
{var origLength=preSubstitution.length;for(var j=0;j<parts[i].width-origLength;++j)
{preSubstitution=(parts[i].alignLeft==true)?(preSubstitution+parts[i].padding):(parts[i].padding+preSubstitution);}}}
if(parts[i].type=='b'||parts[i].type=='d'||parts[i].type=='o'||parts[i].type=='f'||parts[i].type=='x'||parts[i].type=='X'){if(parts[i].negative==true){preSubstitution="-"+preSubstitution;}
else if(parts[i].sign==true){preSubstitution="+"+preSubstitution;}}
newString+=preSubstitution;}
newString+=format.substring(start,format.length);return newString;};CORE.printf=function(List__){return CORE.print([CORE.sprintf(List__)]);};var p5want;var p5100=p5pkg['main'];(function(){var p5101=p5make_package("Perlito5");(function(){var p5102=p5make_package("Perlito5::strict");p5make_sub("Perlito5::strict","import",function(List__,p5want){return((p5pkg["Perlito5"]["v_STRICT"]=(1)));});p5make_sub("Perlito5::strict","unimport",function(List__,p5want){return((p5pkg["Perlito5"]["v_STRICT"]=(0)));});1;})();;(function(){var p5103=p5make_package("Perlito5::warnings");p5make_sub("Perlito5::warnings","import",function(List__,p5want){return((p5pkg["Perlito5"]["v_WARNINGS"]=(1)));});p5make_sub("Perlito5::warnings","unimport",function(List__,p5want){return((p5pkg["Perlito5"]["v_WARNINGS"]=(0)));});1;})();;(function(){null;var p5104=p5make_package("Perlito5::Match");p5make_sub("Perlito5::Match","flat",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return((((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('capture')!=null)?(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('capture'):p5pkg["Perlito5::Match"].substr([(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('str'),(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('from'),p5context([(p5num((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('to'))-p5num((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('from')))],0)],p5want)));});1;})();;(function(){null;var p5105=p5make_package("Perlito5::AST::CompUnit");p5make_sub("Perlito5::AST::CompUnit","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::CompUnit"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::CompUnit","name",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('name'));});p5make_sub("Perlito5::AST::CompUnit","body",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('body'));});var p5106=p5make_package("Perlito5::AST::Val::Int");p5make_sub("Perlito5::AST::Val::Int","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Val::Int"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Val::Int","int",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('int'));});var p5107=p5make_package("Perlito5::AST::Val::Num");p5make_sub("Perlito5::AST::Val::Num","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Val::Num"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Val::Num","num",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('num'));});var p5108=p5make_package("Perlito5::AST::Val::Buf");p5make_sub("Perlito5::AST::Val::Buf","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Val::Buf"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Val::Buf","buf",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('buf'));});var p5109=p5make_package("Perlito5::AST::Lit::Block");p5make_sub("Perlito5::AST::Lit::Block","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Lit::Block"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Lit::Block","sig",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('sig'));});p5make_sub("Perlito5::AST::Lit::Block","stmts",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('stmts'));});var p5110=p5make_package("Perlito5::AST::Index");p5make_sub("Perlito5::AST::Index","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Index"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Index","obj",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('obj'));});p5make_sub("Perlito5::AST::Index","index_exp",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('index_exp'));});var p5111=p5make_package("Perlito5::AST::Lookup");p5make_sub("Perlito5::AST::Lookup","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Lookup"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Lookup","obj",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('obj'));});p5make_sub("Perlito5::AST::Lookup","index_exp",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('index_exp'));});p5make_sub("Perlito5::AST::Lookup","autoquote",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_index;(v_index=(List__.shift()));if((p5bool(p5call(v_index,"isa",['Perlito5::AST::Apply'],0))&&p5bool((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('bareword')))){(function(){var v_full_name;(v_full_name=((p5str((p5bool((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('namespace'))?(p5str((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('namespace'))+'::'):''))+p5str((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('code')))));if(!((p5pkg["Perlito5"]["v_PROTO"])._hash_.hasOwnProperty(v_full_name))){throw(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_full_name],p5want));};})();};return(p5context([v_index],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var p5112=p5make_package("Perlito5::AST::Var");p5make_sub("Perlito5::AST::Var","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Var"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Var","sigil",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('sigil'));});p5make_sub("Perlito5::AST::Var","namespace",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('namespace'));});p5make_sub("Perlito5::AST::Var","name",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('name'));});p5make_sub("Perlito5::AST::Var","plain_name",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));if(p5bool(p5call(v_self,"namespace",[],0))){throw(p5context([(p5str(p5call(v_self,"namespace",[],0))+'::'+p5str(p5call(v_self,"name",[],0)))],p5want));};return(p5call(v_self,"name",[],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var p5113=p5make_package("Perlito5::AST::Proto");p5make_sub("Perlito5::AST::Proto","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Proto"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Proto","name",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('name'));});var p5114=p5make_package("Perlito5::AST::Call");p5make_sub("Perlito5::AST::Call","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Call"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Call","invocant",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('invocant'));});p5make_sub("Perlito5::AST::Call","method",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('method'));});p5make_sub("Perlito5::AST::Call","arguments",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('arguments'));});var p5115=p5make_package("Perlito5::AST::Apply");p5make_sub("Perlito5::AST::Apply","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Apply"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Apply","code",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('code'));});p5make_sub("Perlito5::AST::Apply","arguments",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('arguments'));});p5make_sub("Perlito5::AST::Apply","namespace",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('namespace'));});var p5116=p5make_package("Perlito5::AST::If");p5make_sub("Perlito5::AST::If","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::If"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::If","cond",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('cond'));});p5make_sub("Perlito5::AST::If","body",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('body'));});p5make_sub("Perlito5::AST::If","otherwise",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('otherwise'));});var p5117=p5make_package("Perlito5::AST::When");p5make_sub("Perlito5::AST::When","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::When"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::When","cond",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('cond'));});p5make_sub("Perlito5::AST::When","body",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('body'));});var p5118=p5make_package("Perlito5::AST::While");p5make_sub("Perlito5::AST::While","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::While"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::While","init",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('init'));});p5make_sub("Perlito5::AST::While","cond",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('cond'));});p5make_sub("Perlito5::AST::While","continue",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('continue'));});p5make_sub("Perlito5::AST::While","body",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('body'));});var p5119=p5make_package("Perlito5::AST::For");p5make_sub("Perlito5::AST::For","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::For"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::For","cond",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('cond'));});p5make_sub("Perlito5::AST::For","continue",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('continue'));});p5make_sub("Perlito5::AST::For","body",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('body'));});var p5120=p5make_package("Perlito5::AST::Given");p5make_sub("Perlito5::AST::Given","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Given"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Given","cond",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('cond'));});p5make_sub("Perlito5::AST::Given","body",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('body'));});var p5121=p5make_package("Perlito5::AST::Decl");p5make_sub("Perlito5::AST::Decl","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Decl"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Decl","decl",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('decl'));});p5make_sub("Perlito5::AST::Decl","type",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('type'));});p5make_sub("Perlito5::AST::Decl","var",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('var'));});var p5122=p5make_package("Perlito5::AST::Sig");p5make_sub("Perlito5::AST::Sig","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Sig"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Sig","positional",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('positional'));});var p5123=p5make_package("Perlito5::AST::Sub");p5make_sub("Perlito5::AST::Sub","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Sub"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Sub","name",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('name'));});p5make_sub("Perlito5::AST::Sub","sig",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('sig'));});p5make_sub("Perlito5::AST::Sub","block",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('block'));});var p5124=p5make_package("Perlito5::AST::Do");p5make_sub("Perlito5::AST::Do","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Do"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Do","block",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('block'));});var p5125=p5make_package("Perlito5::AST::Use");p5make_sub("Perlito5::AST::Use","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::AST::Use"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::AST::Use","mod",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('mod'));});p5make_sub("Perlito5::AST::Use","code",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('code'));});1;})();(function(){var p5126=p5make_package("Perlito5::Dumper");p5make_sub("Perlito5::Dumper","Dumper",function(List__,p5want){try{var v_obj;(v_obj=(List__.p5aget(0)));var v_level;(v_level=(p5or(List__.p5aget(1),function(){return 0})));if(!((v_obj!=null))){throw(p5context(['undef'],p5want));};var v_ref;(v_ref=(p5pkg["Perlito5::Dumper"].ref([v_obj],0)));var v_tab;(v_tab=(p5str_replicate('    ',v_level)));var v_tab1;(v_tab1=((p5str(v_tab)+'    ')));if((p5str(v_ref)=='ARRAY')){throw(p5context([('['+String.fromCharCode(10)+p5pkg["Perlito5::Dumper"].join(['',p5list_to_a(p5map(p5pkg["Perlito5::Dumper"],function(p5want){return(p5context([(p5str(v_tab1)+p5str(p5pkg["Perlito5::Dumper"].Dumper([p5pkg["Perlito5::Dumper"]["v__"],(p5num(v_level)+1)],0))+','+String.fromCharCode(10))],p5want));},p5list_to_a((v_obj||(v_obj=new p5ArrayRef([])))._array_)))],0)+p5str(v_tab)+']')],p5want));}
else{if((p5str(v_ref)=='HASH')){throw(p5context([('{'+String.fromCharCode(10)+p5pkg["Perlito5::Dumper"].join(['',p5list_to_a(p5map(p5pkg["Perlito5::Dumper"],function(p5want){return(p5context([(p5str(v_tab1)+(String.fromCharCode(39)+p5str(p5pkg["Perlito5::Dumper"]["v__"])+String.fromCharCode(39)+' => ')+p5str(p5pkg["Perlito5::Dumper"].Dumper(p5list_to_a((v_obj||(v_obj=new p5HashRef({})))._hash_.p5hget(p5str(p5pkg["Perlito5::Dumper"]["v__"])),(p5num(v_level)+1)),0))+','+String.fromCharCode(10))],p5want));},p5list_to_a(p5sort(p5pkg["Perlito5::Dumper"],null,p5list_to_a(p5pkg["Perlito5::Dumper"].keys([(v_obj||(v_obj=new p5HashRef({})))._hash_],1))))))],0)+p5str(v_tab)+'}')],p5want));}
else{if((p5str(v_ref)=='SCALAR')){throw(p5context([(String.fromCharCode(92)+p5str(p5pkg["Perlito5::Dumper"].Dumper(p5list_to_a(p5scalar_deref((v_obj||(v_obj=new p5ScalarRef(null))))),0)))],p5want));}
else{if(p5bool(v_ref)){throw(p5context([('bless({'+String.fromCharCode(10)+p5pkg["Perlito5::Dumper"].join(['',p5list_to_a(p5map(p5pkg["Perlito5::Dumper"],function(p5want){return(p5context([(p5str(v_tab1)+(String.fromCharCode(39)+p5str(p5pkg["Perlito5::Dumper"]["v__"])+String.fromCharCode(39)+' => ')+p5str(p5pkg["Perlito5::Dumper"].Dumper(p5list_to_a((v_obj||(v_obj=new p5HashRef({})))._hash_.p5hget(p5str(p5pkg["Perlito5::Dumper"]["v__"])),(p5num(v_level)+1)),0))+','+String.fromCharCode(10))],p5want));},p5list_to_a(p5sort(p5pkg["Perlito5::Dumper"],null,p5list_to_a(p5pkg["Perlito5::Dumper"].keys([(v_obj||(v_obj=new p5HashRef({})))._hash_],1))))))],0)+p5str(v_tab)+('}, '+String.fromCharCode(39)+p5str(v_ref)+String.fromCharCode(39)+')'))],p5want));};};};};return(p5pkg["Perlito5::Dumper"].escape_string([v_obj],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var Hash_safe_char={};(Hash_safe_char=p5a_to_h([' ',1,'!',1,'"',1,'#',1,'$',1,'%',1,'&',1,'(',1,')',1,'*',1,'+',1,',',1,'-',1,'.',1,'/',1,':',1,';',1,'<',1,'=',1,'>',1,'?',1,'@',1,'[',1,']',1,'^',1,'_',1,'`',1,'{',1,'|',1,'}',1,'~',1]));p5make_sub("Perlito5::Dumper","escape_string",function(List__,p5want){try{var v_s;(v_s=(List__.shift()));var List_out=[];var v_tmp;(v_tmp=(''));if((p5str(v_s)=='')){throw(p5context([String.fromCharCode(39)+String.fromCharCode(39)],p5want));};p5for_lex(function(v_i){var v_c;(v_c=(p5pkg["Perlito5::Dumper"].substr([v_s,v_i,1],0)));if((((((p5str(v_c)>='a')&&(p5str(v_c)<='z'))||((p5str(v_c)>='A')&&(p5str(v_c)<='Z')))||((p5str(v_c)>='0')&&(p5str(v_c)<='9')))||(Hash_safe_char).hasOwnProperty(v_c))){(v_tmp=((p5str(v_tmp)+p5str(v_c))));}
else{if((p5str(v_tmp)!='')){List_out.p5push([(String.fromCharCode(39)+p5str(v_tmp)+String.fromCharCode(39))]);};List_out.p5push([('chr('+p5str(p5pkg["Perlito5::Dumper"].ord([v_c],0))+')')]);(v_tmp=(''));};},p5list_to_a((function(a){for(var i=0,l=(p5pkg["Perlito5::Dumper"].length([v_s],0)-1);i<=l;++i){a.push(i)};return a})([])),false,"");if((p5str(v_tmp)!='')){List_out.p5push([(String.fromCharCode(39)+p5str(v_tmp)+String.fromCharCode(39))]);};return(p5context([p5pkg["Perlito5::Dumper"].join([' . ',p5list_to_a(List_out)],p5want)],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){null;;;;var p5127=p5make_package("Perlito5::Javascript2");p5for_lex(function(){var v_label_count;(v_label_count=(100));var Hash_label={};p5make_sub("Perlito5::Javascript2","pkg",function(List__,p5want){return(p5context([('p5pkg["'+p5str(p5pkg["Perlito5"]["v_PKG_NAME"])+'"]')],p5want));});p5make_sub("Perlito5::Javascript2","pkg_new_var",function(List__,p5want){return(Hash_label.p5hset(p5str(p5pkg["Perlito5"]["v_PKG_NAME"]),(('p5'+p5str((v_label_count)++)))));});p5make_sub("Perlito5::Javascript2","get_label",function(List__,p5want){return((v_label_count)++);});p5make_sub("Perlito5::Javascript2","tab",function(List__,p5want){var v_level;(v_level=(List__.shift()));return(p5str_replicate(String.fromCharCode(9),v_level));});(p5pkg["Perlito5::Javascript2"]["Hash_op_prefix_js_str"]={'prefix:<-A>':'p5atime','prefix:<-C>':'p5ctime','prefix:<-M>':'p5mtime','prefix:<-d>':'p5is_directory','prefix:<-e>':'p5file_exists','prefix:<-f>':'p5is_file','prefix:<-s>':'p5size'});(p5pkg["Perlito5::Javascript2"]["Hash_op_infix_js_str"]={'infix:<eq>':' == ','infix:<ne>':' != ','infix:<le>':' <= ','infix:<ge>':' >= ','infix:<lt>':' < ','infix:<gt>':' > '});(p5pkg["Perlito5::Javascript2"]["Hash_op_infix_js_num"]={'infix:<==>':' == ','infix:<!=>':' != ','infix:<+>':' + ','infix:<->':' - ','infix:<*>':' * ','infix:</>':' / ','infix:<>>':' > ','infix:<<>':' < ','infix:<>=>':' >= ','infix:<<=>':' <= ','infix:<&>':' & ','infix:<|>':' | ','infix:<^>':' ^ ','infix:<>>>':' >>> '});(p5pkg["Perlito5::Javascript2"]["Hash_op_to_bool"]=p5a_to_h(p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return((p5context([p5pkg["Perlito5::Javascript2"]["v__"],1],p5want)));},['prefix:<!>','infix:<!=>','infix:<==>','infix:<<=>','infix:<>=>','infix:<>>','infix:<<>','infix:<eq>','infix:<ne>','infix:<ge>','infix:<le>','infix:<gt>','infix:<lt>','prefix:<not>','exists','defined']))));(p5pkg["Perlito5::Javascript2"]["Hash_op_to_str"]=p5a_to_h(p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return((p5context([p5pkg["Perlito5::Javascript2"]["v__"],1],p5want)));},['substr','join','list:<.>','chr']))));(p5pkg["Perlito5::Javascript2"]["Hash_op_to_num"]=p5a_to_h(p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return((p5context([p5pkg["Perlito5::Javascript2"]["v__"],1],p5want)));},['length','index','ord','oct','infix:<->','infix:<+>','infix:<*>','infix:</>','infix:<%>','infix:<**>']))));var Hash_safe_char={};(Hash_safe_char=p5a_to_h([' ',1,'!',1,'"',1,'#',1,'$',1,'%',1,'&',1,'(',1,')',1,'*',1,'+',1,',',1,'-',1,'.',1,'/',1,':',1,';',1,'<',1,'=',1,'>',1,'?',1,'@',1,'[',1,']',1,'^',1,'_',1,'`',1,'{',1,'|',1,'}',1,'~',1]));p5make_sub("Perlito5::Javascript2","escape_string",function(List__,p5want){try{var v_s;(v_s=(List__.shift()));var List_out=[];var v_tmp;(v_tmp=(''));if((p5str(v_s)=='')){throw(p5context([String.fromCharCode(39)+String.fromCharCode(39)],p5want));};p5for_lex(function(v_i){var v_c;(v_c=(p5pkg["Perlito5::Javascript2"].substr([v_s,v_i,1],0)));if((((((p5str(v_c)>='a')&&(p5str(v_c)<='z'))||((p5str(v_c)>='A')&&(p5str(v_c)<='Z')))||((p5str(v_c)>='0')&&(p5str(v_c)<='9')))||(Hash_safe_char).hasOwnProperty(v_c))){(v_tmp=((p5str(v_tmp)+p5str(v_c))));}
else{if((p5str(v_tmp)!='')){List_out.p5push([(String.fromCharCode(39)+p5str(v_tmp)+String.fromCharCode(39))]);};List_out.p5push([('String.fromCharCode('+p5str(p5pkg["Perlito5::Javascript2"].ord([v_c],0))+')')]);(v_tmp=(''));};},p5list_to_a((function(a){for(var i=0,l=(p5pkg["Perlito5::Javascript2"].length([v_s],0)-1);i<=l;++i){a.push(i)};return a})([])),false,"");if((p5str(v_tmp)!='')){List_out.p5push([(String.fromCharCode(39)+p5str(v_tmp)+String.fromCharCode(39))]);};return(p5context([p5pkg["Perlito5::Javascript2"].join([' + ',p5list_to_a(List_out)],p5want)],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","to_str",function(List__,p5want){try{var v_cond;(v_cond=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=('scalar'));if((((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_cond,"code",[],0))=='circumfix:<( )>'))&&p5bool((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget('arguments')))&&p5bool((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_))){throw(p5pkg["Perlito5::Javascript2"].to_str(p5list_to_a((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level),p5want));};if((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Val::Buf'],0))||(p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&(p5pkg["Perlito5::Javascript2"]["Hash_op_to_str"]).hasOwnProperty(p5call(v_cond,"code",[],p5want))))){throw(p5call(v_cond,"emit_javascript2",[v_level,v_wantarray],p5want))}
else{throw(p5context([('p5str('+p5str(p5call(v_cond,"emit_javascript2",[v_level,v_wantarray],0))+')')],p5want))}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","to_num",function(List__,p5want){try{var v_cond;(v_cond=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=('scalar'));if(((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Val::Int'],0))||p5bool(p5call(v_cond,"isa",['Perlito5::AST::Val::Num'],0)))||(p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&(p5pkg["Perlito5::Javascript2"]["Hash_op_to_num"]).hasOwnProperty(p5call(v_cond,"code",[],p5want))))){throw(p5call(v_cond,"emit_javascript2",[v_level,v_wantarray],p5want))}
else{throw(p5context([('p5num('+p5str(p5call(v_cond,"emit_javascript2",[v_level,v_wantarray],0))+')')],p5want))}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","to_bool",function(List__,p5want){try{var v_cond;(v_cond=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=('scalar'));if((((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_cond,"code",[],0))=='circumfix:<( )>'))&&p5bool((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget('arguments')))&&p5bool((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_))){throw(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level),p5want));};if((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&((p5str(p5call(v_cond,"code",[],0))=='infix:<&&>')||(p5str(p5call(v_cond,"code",[],0))=='infix:<and>')))){throw(p5context([('('+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level),0))+' && '+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1),v_level),0))+')')],p5want));};if((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&((p5str(p5call(v_cond,"code",[],0))=='infix:<||>')||(p5str(p5call(v_cond,"code",[],0))=='infix:<or>')))){throw(p5context([('('+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level),0))+' || '+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_cond||(v_cond=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1),v_level),0))+')')],p5want));};if(((p5bool(p5call(v_cond,"isa",['Perlito5::AST::Val::Int'],0))||p5bool(p5call(v_cond,"isa",['Perlito5::AST::Val::Num'],0)))||(p5bool(p5call(v_cond,"isa",['Perlito5::AST::Apply'],0))&&(p5pkg["Perlito5::Javascript2"]["Hash_op_to_bool"]).hasOwnProperty(p5call(v_cond,"code",[],p5want))))){throw(p5call(v_cond,"emit_javascript2",[v_level,v_wantarray],p5want))}
else{throw(p5context([('p5bool('+p5str(p5call(v_cond,"emit_javascript2",[v_level,v_wantarray],0))+')')],p5want))}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","is_scalar",function(List__,p5want){return(p5and(p5and(p5and(p5and(p5and(!(p5bool(p5call(List__.p5aget(0),"isa",['Perlito5::AST::Val::Int'],0))),function(){return!(p5bool(p5call(List__.p5aget(0),"isa",['Perlito5::AST::Val::Num'],0)))}),function(){return!(p5bool(p5call(List__.p5aget(0),"isa",['Perlito5::AST::Val::Buf'],0)))}),function(){return!(p5bool(p5call(List__.p5aget(0),"isa",['Perlito5::AST::Sub'],0)))}),function(){return!((p5bool(p5call(List__.p5aget(0),"isa",['Perlito5::AST::Var'],0))&&(p5str(List__.p5aget_hash(0)._hash_.p5hget('sigil'))=='$')))}),function(){return!((p5bool(p5call(List__.p5aget(0),"isa",['Perlito5::AST::Apply'],0))&&((((p5pkg["Perlito5::Javascript2"]["Hash_op_to_str"]).hasOwnProperty(List__.p5aget_hash(0)._hash_.p5hget('code'))||(p5pkg["Perlito5::Javascript2"]["Hash_op_to_num"]).hasOwnProperty(List__.p5aget_hash(0)._hash_.p5hget('code')))||(p5pkg["Perlito5::Javascript2"]["Hash_op_to_bool"]).hasOwnProperty(List__.p5aget_hash(0)._hash_.p5hget('code')))||(p5str(List__.p5aget_hash(0)._hash_.p5hget('code'))=='prefix:<'+String.fromCharCode(92)+'>'))))}));});p5make_sub("Perlito5::Javascript2","to_list",function(List__,p5want){try{var v_items;(v_items=(p5pkg["Perlito5::Javascript2"].to_list_preprocess(p5list_to_a(List__.p5aget(0)),0)));var v_level;(v_level=(List__.p5aget(1)));var v_literal_type;(v_literal_type=(p5or(List__.p5aget(2),function(){return'array'})));var v_wantarray;(v_wantarray=('list'));var v_interpolate;(v_interpolate=(0));p5for(p5pkg["Perlito5::Javascript2"],function(){if(p5bool(p5pkg["Perlito5::Javascript2"].is_scalar([p5pkg["Perlito5::Javascript2"]["v__"]],0))){(v_interpolate=(1));};},p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_),false,"");if((p5str(v_literal_type)=='hash')){if(!(p5bool(v_interpolate))){(function(){var List_out=[];var v_printable;(v_printable=(1));var List_in=[];(List_in=p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_));p5while(function(){var v_k;(v_k=(List_in.shift()));var v_v;(v_v=(List_in.shift()));(v_k=(p5call(v_k,"emit_javascript2",[v_level,0],0)));if(p5bool((p5str(v_k).match(/[ \[]/)?1:0))){(v_printable=(0));};(v_v=((p5bool(v_v)?p5call(v_v,"emit_javascript2",[v_level,0],0):'null')));List_out.p5push([(p5str(v_k)+' : '+p5str(v_v))]);},function(){return List_in},false,"");if(p5bool(v_printable)){throw(p5context([('{'+p5pkg["Perlito5::Javascript2"].join([', ',p5list_to_a(List_out)],0)+'}')],p5want));};})();};throw(p5context([('p5a_to_h('+p5str(p5pkg["Perlito5::Javascript2"].to_list([v_items,v_level,'array'],0))+')')],p5want));};return((p5bool(v_interpolate)?p5context([('p5list_to_a('+p5pkg["Perlito5::Javascript2"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return(p5call(p5pkg["Perlito5::Javascript2"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_)))],0)+')')],p5want):p5context([('['+p5pkg["Perlito5::Javascript2"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return(p5call(p5pkg["Perlito5::Javascript2"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_)))],0)+']')],p5want)));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","to_list_preprocess",function(List__,p5want){var List_items=[];p5for_lex(function(v_item){if((p5bool(p5call(v_item,"isa",['Perlito5::AST::Apply'],0))&&(((p5str(p5call(v_item,"code",[],0))=='circumfix:<( )>')||(p5str(p5call(v_item,"code",[],0))=='list:<,>'))||(p5str(p5call(v_item,"code",[],0))=='infix:<=>>')))){if((p5bool(p5call(v_item,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_item,"code",[],0))=='infix:<=>>'))){(v_item||(v_item=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aset(0,(p5call(p5pkg["Perlito5::AST::Lookup"],"autoquote",p5list_to_a((v_item||(v_item=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0)));};p5for_lex(function(v_arg){List_items.p5push([v_arg]);},p5list_to_a((p5pkg["Perlito5::Javascript2"].to_list_preprocess(p5list_to_a(p5call(v_item,"arguments",[],1)),p5want)||(p5pkg["Perlito5::Javascript2"].to_list_preprocess(p5list_to_a(p5call(v_item,"arguments",[],1)),p5want)=new p5ArrayRef([])))._array_),false,"");}
else{List_items.p5push([v_item]);};},p5list_to_a(List__.p5aget_array(0)._array_),false,"");return(p5context([(new p5ArrayRef(List_items))],p5want));});p5make_sub("Perlito5::Javascript2","to_scalar",function(List__,p5want){var v_items;(v_items=(p5pkg["Perlito5::Javascript2"].to_scalar_preprocess(p5list_to_a(List__.p5aget(0)),0)));var v_level;(v_level=(List__.p5aget(1)));var v_wantarray;(v_wantarray=('scalar'));return((p5bool((v_items||(v_items=new p5ArrayRef([])))._array_)?('('+p5pkg["Perlito5::Javascript2"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return(p5call(p5pkg["Perlito5::Javascript2"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_)))],0)+')'):'null'));});p5make_sub("Perlito5::Javascript2","to_scalar_preprocess",function(List__,p5want){var List_items=[];p5for_lex(function(v_item){if((p5bool(p5call(v_item,"isa",['Perlito5::AST::Apply'],0))&&((p5str(p5call(v_item,"code",[],0))=='list:<,>')||(p5str(p5call(v_item,"code",[],0))=='infix:<=>>')))){if((p5bool(p5call(v_item,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_item,"code",[],0))=='infix:<=>>'))){(v_item||(v_item=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aset(0,(p5call(p5pkg["Perlito5::AST::Lookup"],"autoquote",p5list_to_a((v_item||(v_item=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0)));};p5for_lex(function(v_arg){List_items.p5push([v_arg]);},p5list_to_a((p5pkg["Perlito5::Javascript2"].to_scalar_preprocess(p5list_to_a(p5call(v_item,"arguments",[],1)),p5want)||(p5pkg["Perlito5::Javascript2"].to_scalar_preprocess(p5list_to_a(p5call(v_item,"arguments",[],1)),p5want)=new p5ArrayRef([])))._array_),false,"");}
else{List_items.p5push([v_item]);};},p5list_to_a(List__.p5aget_array(0)._array_),false,"");return(p5context([(new p5ArrayRef(List_items))],p5want));});p5make_sub("Perlito5::Javascript2","to_runtime_context",function(List__,p5want){try{var v_items;(v_items=(p5pkg["Perlito5::Javascript2"].to_scalar_preprocess(p5list_to_a(List__.p5aget(0)),0)));var v_level;(v_level=(List__.p5aget(1)));var v_wantarray;(v_wantarray=('runtime'));if(((p5num((v_items||(v_items=new p5ArrayRef([])))._array_)==1)&&p5bool(p5pkg["Perlito5::Javascript2"].is_scalar(p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_.p5aget(0)),0)))){throw(p5call((v_items||(v_items=new p5ArrayRef([])))._array_.p5aget(0),"emit_javascript2",[v_level,v_wantarray],p5want));};return(p5context([('p5context('+'['+p5pkg["Perlito5::Javascript2"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::Javascript2"],function(p5want){return(p5call(p5pkg["Perlito5::Javascript2"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_items||(v_items=new p5ArrayRef([])))._array_)))],0)+']'+', p5want)')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","autoquote",function(List__,p5want){var v_index;(v_index=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5bool(p5call(v_index,"isa",['Perlito5::AST::Apply'],0))&&p5bool((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('bareword')))){(function(){var v_full_name;(v_full_name=((p5str((p5bool((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('namespace'))?(p5str((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('namespace'))+'::'):''))+p5str((v_index||(v_index=new p5HashRef({})))._hash_.p5hget('code')))));if(!((p5pkg["Perlito5"]["v_PROTO"])._hash_.hasOwnProperty(v_full_name))){(v_index=(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_full_name],0)));};})();};return(p5pkg["Perlito5::Javascript2"].to_str([v_index,v_level],p5want));});p5make_sub("Perlito5::Javascript2","emit_javascript2_autovivify",function(List__,p5want){try{var v_obj;(v_obj=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_type;(v_type=(List__.shift()));if(((p5bool(p5call(v_obj,"isa",['Perlito5::AST::Index'],0))||p5bool(p5call(v_obj,"isa",['Perlito5::AST::Lookup'],0)))||p5bool(p5call(v_obj,"isa",['Perlito5::AST::Call'],0)))){throw(p5call(v_obj,"emit_javascript2",[v_level,0,v_type],p5want));};return(p5context([('('+p5str(p5call(v_obj,"emit_javascript2",[v_level],0))+' || ('+p5str(p5call(v_obj,"emit_javascript2",[v_level],0))+' = '+p5str(((p5str(v_type)=='array')?'new p5ArrayRef([])':((p5str(v_type)=='hash')?'new p5HashRef({})':'new p5ScalarRef(null)')))+')'+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2","emit_function_javascript2",function(List__,p5want){try{var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_argument;(v_argument=(List__.shift()));if((p5bool(p5call(v_argument,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_argument,"code",[],0))=='return'))){throw(p5context([('function () { '+p5str(p5call(v_argument,"emit_javascript2",[v_level,v_wantarray],0))+' }')],p5want));};return(p5context([('function () { return '+p5str(p5call(v_argument,"emit_javascript2",[v_level,v_wantarray],0))+' }')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5128=p5make_package("Perlito5::Javascript2::LexicalBlock");p5for_lex(function(){p5make_sub("Perlito5::Javascript2::LexicalBlock","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::Javascript2::LexicalBlock"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});p5make_sub("Perlito5::Javascript2::LexicalBlock","block",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('block'));});p5make_sub("Perlito5::Javascript2::LexicalBlock","needs_return",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('needs_return'));});p5make_sub("Perlito5::Javascript2::LexicalBlock","top_level",function(List__,p5want){return(List__.p5aget_hash(0)._hash_.p5hget('top_level'));});p5make_sub("Perlito5::Javascript2::LexicalBlock","has_decl",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_type;(v_type=(List__.p5aget(1)));p5for_lex(function(v_decl){if((v_decl!=null)){if(((p5bool(p5call(v_decl,"isa",['Perlito5::AST::Decl'],0))&&(p5str(p5call(v_decl,"decl",[],0))==p5str(v_type)))||(p5bool(p5call(v_decl,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_decl,"code",[],0))==p5str(v_type))))){throw(p5context([1],p5want));};if((p5bool(p5call(v_decl,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_decl,"code",[],0))=='infix:<=>'))){(function(){var v_var;(v_var=(p5call(v_decl,"arguments",[],p5want)._array_.p5aget(0)));if(((p5bool(p5call(v_var,"isa",['Perlito5::AST::Decl'],0))&&(p5str(p5call(v_var,"decl",[],0))==p5str(v_type)))||(p5bool(p5call(v_decl,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_decl,"code",[],0))==p5str(v_type))))){throw(p5context([1],p5want));};})();};};},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('block')._array_),false,"");return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Javascript2::LexicalBlock","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_block=[];p5for(p5pkg["Perlito5::Javascript2::LexicalBlock"],function(){if((p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"]!=null)){List_block.p5push([p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"]]);};},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('block')._array_),false,"");if(!(p5bool(List_block.length))){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'null;')],p5want));};var v_out;(v_out=(''));var List_str=[];var v_has_local;(v_has_local=(p5call(v_self,"has_decl",['local'],0)));var v_create_context;(v_create_context=(p5and((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('create_context'),function(){return p5call(v_self,"has_decl",['my'],0)})));var v_outer_pkg;(v_outer_pkg=(p5pkg["Perlito5"]["v_PKG_NAME"]));var v_outer_throw;(v_outer_throw=(p5pkg["Perlito5"]["v_THROW"]));(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5unshift(p5list_to_a((new p5HashRef({}))));if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('top_level'))){(p5pkg["Perlito5"]["v_THROW"]=(0));};if(p5bool(v_has_local)){(v_out=((p5str(v_out)+(p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'var local_idx = p5LOCAL.length;'+String.fromCharCode(10)))));};if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('top_level'))){(v_level)++;};if(p5bool(v_create_context)){(v_out=((p5str(v_out)+(p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'(function () {'+String.fromCharCode(10)))));(v_level)++;};var v_tab;(v_tab=(p5pkg["Perlito5::Javascript2"].tab([v_level],0)));var v_last_statement;if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('needs_return'))){(v_last_statement=(List_block.pop()));};p5for_lex(function(v_decl){if(((p5str(p5pkg["Perlito5::Javascript2::LexicalBlock"].ref([v_decl],0))=='Perlito5::AST::Apply')&&(p5str(p5call(v_decl,"code",[],0))=='package'))){(p5pkg["Perlito5"]["v_PKG_NAME"]=((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('namespace')));(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hset('$_',((new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]}))));(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hset('$a',((new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]}))));(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hset('$b',((new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]}))));(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hset('$AUTOLOAD',((new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]}))));};if(p5bool(p5call(v_decl,"isa",['Perlito5::AST::Decl'],0))){List_str.p5push(p5list_to_a(p5call(v_decl,"emit_javascript2_init",[],1)));};if((p5bool(p5call(v_decl,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_decl,"code",[],0))=='my'))){p5for(p5pkg["Perlito5::Javascript2::LexicalBlock"],function(){if(p5bool(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"],"isa",['Perlito5::AST::Var'],0))){(function(){var v_d;(v_d=(p5call(p5pkg["Perlito5::AST::Decl"],"new",p5list_to_a('decl',p5call(v_decl,"code",[],1),'var',p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"]),0)));List_str.p5push(p5list_to_a(p5call(v_d,"emit_javascript2_init",[],1)));})();};},p5list_to_a((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_),false,"");};if((p5bool(p5call(v_decl,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_decl,"code",[],0))=='infix:<=>'))){(function(){var v_arg;(v_arg=((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(p5bool(p5call(v_arg,"isa",['Perlito5::AST::Decl'],0))){List_str.p5push(p5list_to_a(p5call(v_arg,"emit_javascript2_init",[],1)));};if((p5bool(p5call(v_arg,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_arg,"code",[],0))=='my'))){p5for(p5pkg["Perlito5::Javascript2::LexicalBlock"],function(){if(p5bool(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"],"isa",['Perlito5::AST::Var'],0))){(function(){var v_d;(v_d=(p5call(p5pkg["Perlito5::AST::Decl"],"new",p5list_to_a('decl',p5call(v_arg,"code",[],1),'var',p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"]),0)));List_str.p5push(p5list_to_a(p5call(v_d,"emit_javascript2_init",[],1)));})();};},p5list_to_a((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_),false,"");};})();};if(!((p5bool(p5call(v_decl,"isa",['Perlito5::AST::Decl'],0))&&(p5str(p5call(v_decl,"decl",[],0))=='my')))){List_str.p5push([(p5str(p5call(v_decl,"emit_javascript2",[v_level,'void'],0))+';')]);};},p5list_to_a(List_block),false,"");if((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('needs_return'))&&p5bool(v_last_statement))){if(p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::Decl'],0))){List_str.p5push(p5list_to_a(p5call(v_last_statement,"emit_javascript2_init",[],1)));};if((p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_last_statement,"code",[],0))=='infix:<=>'))){if(p5bool(p5call((v_last_statement||(v_last_statement=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"isa",['Perlito5::AST::Decl'],0))){List_str.p5push(p5list_to_a(p5call((v_last_statement||(v_last_statement=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2_init",[],1)));};};if((((p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_last_statement,"code",[],0))=='return'))&&p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('top_level')))&&p5bool((v_last_statement||(v_last_statement=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_))){(v_last_statement=((v_last_statement||(v_last_statement=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));};if(p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::If'],0))){(function(){var v_cond;(v_cond=(p5call(v_last_statement,"cond",[],0)));var v_body;(v_body=(p5call(v_last_statement,"body",[],0)));var v_otherwise;(v_otherwise=(p5call(v_last_statement,"otherwise",[],0)));(v_body=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call(v_body,"stmts",[],1),'needs_return',1),0)));List_str.p5push([('if ( '+p5str(p5pkg["Perlito5::Javascript2"].to_bool([v_cond,(p5num(v_level)+1)],0))+' ) {'+String.fromCharCode(10)+p5str(p5call(v_body,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')]);if(p5bool(v_otherwise)){(v_otherwise=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call(v_otherwise,"stmts",[],1),'needs_return',1),0)));List_str.p5push([(String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'else {'+String.fromCharCode(10)+p5str(p5call(v_otherwise,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')]);};})();}
else{if(p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::Lit::Block'],0))){(function(){var v_body;(v_body=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',(v_last_statement||(v_last_statement=new p5HashRef({})))._hash_.p5hget('stmts'),'needs_return',1),0)));List_str.p5push([('for (var i_ = 0; i_ < 1 ; i_++) {'+String.fromCharCode(10)+p5str(p5call(v_body,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')]);})();}
else{if((((p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::For'],0))||p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::While'],0)))||(p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_last_statement,"code",[],0))=='goto')))||(p5bool(p5call(v_last_statement,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_last_statement,"code",[],0))=='return')))){List_str.p5push(p5list_to_a(p5call(v_last_statement,"emit_javascript2",[v_level,'runtime'],1)));}
else{if(p5bool(v_has_local)){List_str.p5push([('return p5cleanup_local(local_idx, ('+p5str(p5pkg["Perlito5::Javascript2"].to_runtime_context(p5list_to_a((new p5ArrayRef([v_last_statement])),v_level),0))+'));')]);}
else{List_str.p5push([('return ('+p5str(p5pkg["Perlito5::Javascript2"].to_runtime_context(p5list_to_a((new p5ArrayRef([v_last_statement])),v_level),0))+');')]);};};};};};if(p5bool(v_has_local)){List_str.p5push(['p5cleanup_local(local_idx, null);']);};if(p5bool(v_create_context)){(v_level)--;List_str.p5push(['})();']);};if((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('top_level'))&&p5bool(p5pkg["Perlito5"]["v_THROW"]))){(v_level)--;(v_out=((p5str(v_out)+(p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'try {'+String.fromCharCode(10)+p5pkg["Perlito5::Javascript2::LexicalBlock"].join([String.fromCharCode(10),p5list_to_a(p5map(p5pkg["Perlito5::Javascript2::LexicalBlock"],function(p5want){return(p5context([(p5str(v_tab)+p5str(p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"]))],p5want));},p5list_to_a(List_str)))],0)+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'catch(err) {'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'if ( err instanceof Error ) {'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+2)],0))+'throw(err);'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'else {'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+2)],0))+p5str((p5bool(v_has_local)?'return p5cleanup_local(local_idx, err)':'return(err)'))+';'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}'+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}'))));}
else{(v_out=((p5str(v_out)+p5pkg["Perlito5::Javascript2::LexicalBlock"].join([String.fromCharCode(10),p5list_to_a(p5map(p5pkg["Perlito5::Javascript2::LexicalBlock"],function(p5want){return(p5context([(p5str(v_tab)+p5str(p5pkg["Perlito5::Javascript2::LexicalBlock"]["v__"]))],p5want));},p5list_to_a(List_str)))],0))));};(p5pkg["Perlito5"]["v_PKG_NAME"]=(v_outer_pkg));if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('top_level'))){(p5pkg["Perlito5"]["v_THROW"]=(v_outer_throw));};(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.shift();return(p5context([v_out],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5129=p5make_package("Perlito5::AST::CompUnit");p5for_lex(function(){p5make_sub("Perlito5::AST::CompUnit","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_str;(v_str=(('(function () {'+String.fromCharCode(10)+p5str(p5call(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),'needs_return',0),0),"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'})()'+String.fromCharCode(10))));return(p5context([v_str],p5want));});p5make_sub("Perlito5::AST::CompUnit","emit_javascript2_program",function(List__,p5want){var v_comp_units;(v_comp_units=(List__.shift()));(p5pkg["Perlito5"]["v_PKG_NAME"]=('main'));var v_str;(v_str=((''+'var p5want;'+String.fromCharCode(10)+'var '+p5str(p5pkg["Perlito5::Javascript2"].pkg_new_var([],0))+' = p5pkg['+String.fromCharCode(39)+p5str(p5pkg["Perlito5"]["v_PKG_NAME"])+String.fromCharCode(39)+'];'+String.fromCharCode(10))));(p5pkg["Perlito5"]["v_VAR"]=((new p5ArrayRef(p5list_to_a((new p5HashRef(p5a_to_h(p5list_to_a('@_',(new p5HashRef({'decl':'my'})),'$@',(new p5HashRef({'decl':'our','namespace':'main'})),'$|',(new p5HashRef({'decl':'our','namespace':'main'})),'$^O',(new p5HashRef({'decl':'our','namespace':'main'})),'%ENV',(new p5HashRef({'decl':'our','namespace':'main'})),'%INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@#',(new p5HashRef({'decl':'our','namespace':'main'})),'@ARGV',(new p5HashRef({'decl':'our','namespace':'main'})),'@INC',(new p5HashRef({'decl':'our','namespace':'main'})),'$_',(new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]})),'$a',(new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]})),'$b',(new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]})),'$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':p5pkg["Perlito5"]["v_PKG_NAME"]})))))))))));p5for_lex(function(v_comp_unit){(v_str=((p5str(v_str)+p5str(p5call(v_comp_unit,"emit_javascript2",[],0))+String.fromCharCode(10))));},p5list_to_a((v_comp_units||(v_comp_units=new p5ArrayRef([])))._array_),false,"");return(p5context([v_str],p5want));});},[0],false,"");var p5130=p5make_package("Perlito5::AST::Val::Int");p5for_lex(function(){p5make_sub("Perlito5::AST::Val::Int","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));return((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('int'));});},[0],false,"");var p5131=p5make_package("Perlito5::AST::Val::Num");p5for_lex(function(){p5make_sub("Perlito5::AST::Val::Num","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));return((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('num'));});},[0],false,"");var p5132=p5make_package("Perlito5::AST::Val::Buf");p5for_lex(function(){p5make_sub("Perlito5::AST::Val::Buf","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));return(p5pkg["Perlito5::Javascript2"].escape_string(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('buf')),p5want));});},[0],false,"");var p5133=p5make_package("Perlito5::AST::Lit::Block");p5for_lex(function(){p5make_sub("Perlito5::AST::Lit::Block","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_init;(v_init=(''));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name'))=='INIT')){(function(){var v_tmp;(v_tmp=(('p5pkg.main._tmp'+p5str(p5pkg["Perlito5::Javascript2"].get_label([],0)))));(v_init=((p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+2)],0))+('if ('+p5str(v_tmp)+') { return }; '+p5str(v_tmp)+' = 1;'+String.fromCharCode(10)))));})();};return(p5context([('p5for_lex('+'function () {'+String.fromCharCode(10)+p5str(v_init)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('stmts'),'needs_return',0,'top_level',0),0)],0),"emit_javascript2",[(p5num(v_level)+2)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}, '+'[0], '+p5str(p5call(v_self,"emit_javascript2_continue",[v_level],0))+', '+'"'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('label'),function(){return''}))+'"'+')')],p5want));});p5make_sub("Perlito5::AST::Lit::Block","emit_javascript2_continue",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));if((!(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('continue')))||!(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('continue')._hash_.p5hget_array('stmts')._array_)))){throw(p5context(['false'],p5want));};return(p5context([('function () {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('continue'),"stmts",[],1),'needs_return',0,'top_level',0),0)],0),"emit_javascript2",[(p5num(v_level)+2)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5134=p5make_package("Perlito5::AST::Index");p5for_lex(function(){p5make_sub("Perlito5::AST::Index","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_autovivification_type;(v_autovivification_type=(List__.shift()));var v_method;(v_method=(p5or(v_autovivification_type,function(){return'p5aget'})));if((p5str(v_autovivification_type)=='array')){(v_method=('p5aget_array'));};if((p5str(v_autovivification_type)=='hash')){(v_method=('p5aget_hash'));};if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"sigil",[],0))=='$'))){(function(){var v_v;(v_v=(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','@','namespace',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"namespace",[],1),'name',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"name",[],1)),0)));throw(p5context([(p5str(p5call(v_v,"emit_javascript2",[v_level],0))+'.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level),0))+')')],p5want));})();};if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Apply'],0))&&(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget('code'))=='prefix:<$>'))){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level,'array'),0))+'._array_.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp')),0))+')')],p5want));};return(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),v_level,'array'),0))+'._array_.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level),0))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Index","emit_javascript2_set",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_arguments;(v_arguments=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"sigil",[],0))=='$'))){(function(){var v_v;(v_v=(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','@','namespace',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"namespace",[],1),'name',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"name",[],1)),0)));throw(p5context([(p5str(p5call(v_v,"emit_javascript2",[v_level],0))+'.p5aset('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),(p5num(v_level)+1)),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));})();};if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Apply'],0))&&(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget('code'))=='prefix:<$>'))){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level,'array'),0))+'._array_.p5aset('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp')),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};return(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),v_level,'array'),0))+'._array_.p5aset('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),(p5num(v_level)+1)),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5135=p5make_package("Perlito5::AST::Lookup");p5for_lex(function(){p5make_sub("Perlito5::AST::Lookup","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_autovivification_type;(v_autovivification_type=(List__.shift()));var v_method;(v_method=(p5or(v_autovivification_type,function(){return'p5hget'})));if((p5str(v_autovivification_type)=='array')){(v_method=('p5hget_array'));};if((p5str(v_autovivification_type)=='hash')){(v_method=('p5hget_hash'));};if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"sigil",[],0))=='$'))){(function(){var v_v;(v_v=(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','%','namespace',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"namespace",[],1),'name',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"name",[],1)),0)));throw(p5context([(p5str(p5call(v_v,"emit_javascript2",[v_level],0))+'.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level),0))+')')],p5want));})();};if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Apply'],0))&&(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget('code'))=='prefix:<$>'))){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level,'hash'),0))+'._hash_.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level,'list'),0))+')')],p5want));};return(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),v_level,'hash'),0))+'._hash_.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level),0))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Lookup","emit_javascript2_set",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_arguments;(v_arguments=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"sigil",[],0))=='$'))){(function(){var v_v;(v_v=(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','%','namespace',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"namespace",[],1),'name',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"name",[],1)),0)));throw(p5context([(p5str(p5call(v_v,"emit_javascript2",[v_level],0))+'.p5hset('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));})();};if((p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),"isa",['Perlito5::AST::Apply'],0))&&(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget('code'))=='prefix:<$>'))){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('obj')._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level,'hash'),0))+'._hash_.p5hset('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level,'list'),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};return(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('obj'),v_level,'hash'),0))+'._hash_.p5hset('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('index_exp'),v_level),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5136=p5make_package("Perlito5::AST::Var");p5for_lex(function(){var v_table;(v_table=((new p5HashRef({'$':'v_','@':'List_','%':'Hash_','&':''}))));p5make_sub("Perlito5::AST::Var","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_str_name;(v_str_name=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name')));if((p5str(v_str_name)==String.fromCharCode(92))){(v_str_name=(String.fromCharCode(92)+String.fromCharCode(92)));};if((p5str(v_str_name)=='"')){(v_str_name=(String.fromCharCode(92)+'"'));};var v_perl5_name;(v_perl5_name=(p5call(v_self,"perl5_name_javascript2",[],0)));var v_decl_type;var v_decl;(v_decl=(p5call(v_self,"perl5_get_decl_javascript2",[v_perl5_name],0)));if(p5bool(v_decl)){(v_decl_type=((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('decl')));}
else{if((!(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace')))&&(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))!='*'))){(function(){if(p5bool(p5pkg["Perlito5"]["v_STRICT"])){p5pkg["Perlito5::AST::Var"].die([[('Global symbol "'+p5str(v_perl5_name)+'" requires explicit package name')]],null);};(v_decl_type=('our'));(v_self||(v_self=new p5HashRef({})))._hash_.p5hset('namespace',(p5pkg["Perlito5"]["v_PKG_NAME"]));var v_sigil;(v_sigil=(((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='$#')?'@':(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))));var v_s;(v_s=(('p5pkg["'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'"]["'+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget(p5str(v_sigil)))+p5str(v_str_name)+'"]')));if((p5str(v_sigil)=='@')){(v_s=((p5str(v_s)+' || ('+p5str(v_s)+' = [])')));(v_s=(('p5pkg['+p5str(v_s)+', "'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'"]["'+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget(p5str(v_sigil)))+p5str(v_str_name)+'"]')));if(((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='@')&&(p5str(v_wantarray)=='scalar'))){(v_s=((p5str(v_s)+'.length')));};}
else{if((p5str(v_sigil)=='%')){(v_s=((p5str(v_s)+' || ('+p5str(v_s)+' = {})')));(v_s=(('p5pkg['+p5str(v_s)+', "'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'"]["'+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget(p5str(v_sigil)))+p5str(v_str_name)+'"]')));};};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='$#')){throw(p5context([('('+p5str(v_s)+'.length - 1)')],p5want));};throw(p5context([v_s],p5want));})();};};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='@')){if((p5str(v_wantarray)=='scalar')){throw(p5context([(p5str(p5call(v_self,"emit_javascript2",[v_level,'list'],0))+'.length')],p5want));};if((p5str(v_wantarray)=='runtime')){throw(p5context([('(p5want'+' ? '+p5str(p5call(v_self,"emit_javascript2",[v_level,'list'],0))+' : '+p5str(p5call(v_self,"emit_javascript2",[v_level,'list'],0))+'.length'+')')],p5want));};};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='::')){throw(p5pkg["Perlito5::Javascript2"].escape_string(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace')),p5want));};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='&')){throw(p5context([('p5pkg["'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'),function(){return p5pkg["Perlito5"]["v_PKG_NAME"]}))+'"]["'+p5str(v_str_name)+'"]')],p5want));};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='*')){throw(p5context([('p5pkg["'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'),function(){return p5pkg["Perlito5"]["v_PKG_NAME"]}))+'"]["'+p5str(v_str_name)+'"]')],p5want));};if((p5str(v_decl_type)=='our')){(function(){var v_sigil;(v_sigil=(((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='$#')?'@':(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))));var v_s;(v_s=(('p5pkg["'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'),function(){return(v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('namespace')}))+'"]["'+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget(p5str(v_sigil)))+p5str(v_str_name)+'"]')));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='$#')){throw(p5context([('('+p5str(v_s)+'.length - 1)')],p5want));};throw(p5context([v_s],p5want));})();};var v_ns;(v_ns=(''));if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))){(v_ns=(('p5pkg["'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'"]')));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='$#')){throw(p5context([('('+p5str(v_ns)+'["'+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget('@'))+p5str(v_str_name)+'"].length - 1)')],p5want));};throw(p5context([(p5str(v_ns)+'["'+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))))+p5str(v_str_name)+'"]')],p5want));};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))=='$#')){throw(p5context([('('+p5str(v_ns)+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget('@'))+p5str(v_str_name)+'.length - 1)')],p5want));};return(p5context([(p5str(v_ns)+p5str((v_table||(v_table=new p5HashRef({})))._hash_.p5hget(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil'))))+p5str(v_str_name))],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Var","emit_javascript2_set",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_arguments;(v_arguments=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5str(p5call(v_self,"sigil",[],0))=='$')){throw(p5context([('('+p5str(p5call(v_self,"emit_javascript2",[],0))+' = '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};if((p5str(p5call(v_self,"sigil",[],0))=='@')){throw(p5context([('('+p5str(p5call(v_self,"emit_javascript2",[],0))+' = '+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};if((p5str(p5call(v_self,"sigil",[],0))=='%')){throw(p5context([('('+p5str(p5call(v_self,"emit_javascript2",[],0))+' = '+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1),'hash'),0))+')')],p5want));};if((p5str(p5call(v_self,"sigil",[],0))=='*')){throw(p5context([('('+p5str(p5call(v_self,"emit_javascript2",[],0))+' = '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};return(p5pkg["Perlito5::AST::Var"].die([p5list_to_a('don'+String.fromCharCode(39)+'t know how to assign to variable ',p5call(v_self,"sigil",[],1),p5call(v_self,"name",[],1))],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Var","perl5_name_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_sigil;(v_sigil=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('sigil')));if((p5str(v_sigil)=='$#')){(v_sigil=('@'));};return(p5context([(p5str(v_sigil)+p5str((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))?(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'::'):''))+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name')))],p5want));});p5make_sub("Perlito5::AST::Var","perl5_get_decl_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_perl5_name;(v_perl5_name=(List__.shift()));p5for(p5pkg["Perlito5::AST::Var"],function(){if((p5pkg["Perlito5::AST::Var"]["v__"])._hash_.hasOwnProperty(v_perl5_name)){throw((p5pkg["Perlito5::AST::Var"]["v__"]||(p5pkg["Perlito5::AST::Var"]["v__"]=new p5HashRef({})))._hash_.p5hget(p5str(v_perl5_name)));};},p5list_to_a((p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_),false,"");return(null);}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5137=p5make_package("Perlito5::AST::Decl");p5for_lex(function(){p5make_sub("Perlito5::AST::Decl","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));return(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"emit_javascript2",[v_level],p5want));});p5make_sub("Perlito5::AST::Decl","emit_javascript2_init",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_env;(v_env=((new p5HashRef(p5a_to_h(p5list_to_a('decl',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl')))))));var v_perl5_name;(v_perl5_name=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"perl5_name_javascript2",[],0)));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))!='my')){if(((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))=='our')&&p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('var')._hash_.p5hget('namespace')))){p5pkg["Perlito5::AST::Decl"].die([[('No package name allowed for variable '+p5str(v_perl5_name)+' in "our"')]],null);};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('var')._hash_.p5hget('namespace'))=='')){(function(){var v_decl_namespace;(v_decl_namespace=(''));var v_decl;(v_decl=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"perl5_get_decl_javascript2",[v_perl5_name],0)));if((((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))=='local')&&p5bool(v_decl))&&((p5str((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('decl'))=='our')||(p5str((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('decl'))=='local')))){(v_decl_namespace=((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('namespace')));};(v_env||(v_env=new p5HashRef({})))._hash_.p5hset('namespace',(p5or(v_decl_namespace,function(){return p5pkg["Perlito5"]["v_PKG_NAME"]})));})();};};(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hset(p5str(v_perl5_name),(v_env));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))=='my')){var v_str;(v_str=(''));(v_str=((p5str(v_str)+'var '+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"emit_javascript2",[],0)))));if((p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"sigil",[],0))=='%')){(v_str=((p5str(v_str)+' = {};')));}
else{if((p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"sigil",[],0))=='@')){(v_str=((p5str(v_str)+'= [];')));}
else{(v_str=((p5str(v_str)+';')));};};throw(p5context([v_str],p5want))}
else{if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))=='our')){throw(p5context([('// our '+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"emit_javascript2",[],0)))],p5want))}
else{if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))=='local')){var v_perl5_name;(v_perl5_name=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"perl5_name_javascript2",[],0)));var v_decl_namespace;(v_decl_namespace=(''));var v_decl;(v_decl=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"perl5_get_decl_javascript2",[v_perl5_name],0)));if((p5bool(v_decl)&&((p5str((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('decl'))=='our')||(p5str((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('decl'))=='local')))){(v_decl_namespace=((v_decl||(v_decl=new p5HashRef({})))._hash_.p5hget('namespace')));};var v_ns;(v_ns=(('p5pkg["'+p5str(p5or(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('var')._hash_.p5hget('namespace'),function(){return v_decl_namespace}),function(){return p5pkg["Perlito5"]["v_PKG_NAME"]}))+'"]')));throw(p5context([('p5set_local('+p5str(v_ns)+','+p5str(p5pkg["Perlito5::Javascript2"].escape_string(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('var')._hash_.p5hget('name')),0))+','+p5str(p5pkg["Perlito5::Javascript2"].escape_string(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_hash('var')._hash_.p5hget('sigil')),0))+'); ')],p5want))}
else{if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))=='state')){throw(p5context([('// state '+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('var'),"emit_javascript2",[],0)))],p5want))}
else{return(p5pkg["Perlito5::AST::Decl"].die([[('not implemented: Perlito5::AST::Decl '+String.fromCharCode(39)+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('decl'))+String.fromCharCode(39))]],p5want));}}}}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Decl","emit_javascript2_set",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_arguments;(v_arguments=(List__.shift()));var v_level;(v_level=(List__.shift()));return(p5call(p5call(v_self,"var",[],0),"emit_javascript2_set",[v_arguments,v_level],p5want));});},[0],false,"");var p5138=p5make_package("Perlito5::AST::Proto");p5for_lex(function(){p5make_sub("Perlito5::AST::Proto","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name'))=='__PACKAGE__')){throw(p5pkg["Perlito5::Javascript2"].pkg([],p5want));};return(p5context([('p5pkg["'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name'))+'"]')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5139=p5make_package("Perlito5::AST::Call");p5for_lex(function(){p5make_sub("Perlito5::AST::Call","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_autovivification_type;(v_autovivification_type=(List__.shift()));var v_meth;(v_meth=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('method')));if((p5str(v_meth)=='postcircumfix:<[ ]>')){(function(){var v_method;(v_method=(p5or(v_autovivification_type,function(){return'p5aget'})));if((p5str(v_autovivification_type)=='array')){(v_method=('p5aget_array'));};if((p5str(v_autovivification_type)=='hash')){(v_method=('p5aget_hash'));};throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('invocant'),v_level,'array'),0))+'._array_.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),(p5num(v_level)+1)),0))+')')],p5want));})();};if((p5str(v_meth)=='postcircumfix:<{ }>')){(function(){var v_method;(v_method=(p5or(v_autovivification_type,function(){return'p5hget'})));if((p5str(v_autovivification_type)=='array')){(v_method=('p5hget_array'));};if((p5str(v_autovivification_type)=='hash')){(v_method=('p5hget_hash'));};throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('invocant'),v_level,'hash'),0))+'._hash_.'+p5str(v_method)+'('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),(p5num(v_level)+1),'list'),0))+')')],p5want));})();};var v_invocant;(v_invocant=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('invocant'),"emit_javascript2",[v_level,'scalar'],0)));if((p5str(v_meth)=='postcircumfix:<( )>')){throw(p5context([('('+p5str(v_invocant)+')('+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),0))+', '+p5str(((p5str(v_wantarray)=='list')?'1':((p5str(v_wantarray)=='scalar')?'0':((p5str(v_wantarray)=='void')?'null':'p5want'))))+')')],p5want));};if((p5str(p5pkg["Perlito5::AST::Call"].ref([v_meth],0))=='Perlito5::AST::Var')){(v_meth=(p5call(v_meth,"emit_javascript2",[v_level,'scalar'],0)));}
else{(v_meth=(('"'+p5str(v_meth)+'"')));};return(p5context([('p5call('+p5str(v_invocant)+', '+p5str(v_meth)+', '+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),0))+', '+p5str(((p5str(v_wantarray)=='list')?'1':((p5str(v_wantarray)=='scalar')?'0':((p5str(v_wantarray)=='void')?'null':'p5want'))))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Call","emit_javascript2_set",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_arguments;(v_arguments=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('method'))=='postcircumfix:<[ ]>')){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('invocant'),v_level,'array'),0))+'._array_.p5aset('+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),(p5num(v_level)+1)),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};if((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('method'))=='postcircumfix:<{ }>')){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('invocant'),v_level,'hash'),0))+'._hash_.p5hset('+p5str(p5pkg["Perlito5::Javascript2"].autoquote(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),(p5num(v_level)+1),'list'),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};return(p5pkg["Perlito5::AST::Call"].die([p5list_to_a('don'+String.fromCharCode(39)+'t know how to assign to method ',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('method'))],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5140=p5make_package("Perlito5::AST::Apply");p5for_lex(function(){p5make_sub("Perlito5::AST::Apply","emit_regex_javascript2",function(List__,p5want){try{var v_op;(v_op=(List__.shift()));var v_var;(v_var=(List__.shift()));var v_regex;(v_regex=(List__.shift()));if(p5bool(p5call(v_regex,"isa",['Perlito5::AST::Var'],0))){(v_regex=((new p5HashRef(p5a_to_h(p5list_to_a('code','p5:m','arguments',(new p5ArrayRef([v_regex,'']))))))));};var v_str;var v_code;(v_code=((v_regex||(v_regex=new p5HashRef({})))._hash_.p5hget('code')));var v_regex_args;(v_regex_args=((v_regex||(v_regex=new p5HashRef({})))._hash_.p5hget('arguments')));if((p5str(v_code)=='p5:s')){(v_str=((p5str(p5call(v_var,"emit_javascript2",[],0))+' = p5str('+p5str(p5call(v_var,"emit_javascript2",[],0))+').replace(/'+p5str((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hget('buf'))+'/'+p5str((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(2))+', '+p5str(p5call((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(1),"emit_javascript2",[],0))+')')));}
else{if((p5str(v_code)=='p5:m')){(function(){var v_ast;(v_ast=((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(0)));if(p5bool(p5call(v_ast,"isa",['Perlito5::AST::Val::Buf'],0))){(v_str=(('('+'p5str('+p5str(p5call(v_var,"emit_javascript2",[],0))+')'+'.match(/'+p5str((v_ast||(v_ast=new p5HashRef({})))._hash_.p5hget('buf'))+'/'+p5str((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(1))+')'+' ? 1 : 0)')));}
else{(v_str=(('(new RegExp('+p5str(p5call(v_ast,"emit_javascript2",[],0))+', '+'"'+p5str((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(1))+'"'+'))'+'.exec('+'p5str('+p5str(p5call(v_var,"emit_javascript2",[],0))+')'+')')));};})();}
else{if((p5str(v_code)=='p5:tr')){(v_str=(('p5tr('+p5str(p5call(v_var,"emit_javascript2",[],0))+', '+p5str(p5call((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(0),"emit_javascript2",[],0))+', '+p5str(p5call((v_regex_args||(v_regex_args=new p5ArrayRef([])))._array_.p5aget(1),"emit_javascript2",[],0))+')')));}
else{p5pkg["Perlito5::AST::Apply"].die([[('Error: regex emitter - unknown operator '+p5str(v_code))]],null);};};};if((p5str(v_op)=='=~')){throw(p5context([v_str],p5want));};if((p5str(v_op)=='!~')){throw(p5context([('!('+p5str(v_str)+')')],p5want));};return(p5pkg["Perlito5::AST::Apply"].die([['Error: regex emitter']],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::AST::Apply","emit_javascript2_set",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_arguments;(v_arguments=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_code;(v_code=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code')));if((p5str(v_code)=='prefix:<$>')){throw(p5context([('p5scalar_deref_set('+p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),(p5num(v_level)+1),'scalar'),0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+')')],p5want));};return(p5context([('('+p5str(p5call(v_self,"emit_javascript2",[(p5num(v_level)+1)],0))+' = '+p5str(p5call(v_arguments,"emit_javascript2",[(p5num(v_level)+1)],0))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var Hash_emit_js={};(Hash_emit_js=p5a_to_h(['infix:<=~>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5pkg["Perlito5::AST::Apply"].emit_regex_javascript2(p5list_to_a('=~',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)),p5want));},'infix:<!~>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5pkg["Perlito5::AST::Apply"].emit_regex_javascript2(p5list_to_a('!~',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)),p5want));},'p5:s',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5pkg["Perlito5::AST::Apply"].emit_regex_javascript2(p5list_to_a('=~',p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','$','namespace','','name','_'],1),v_self),p5want));},'p5:m',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5pkg["Perlito5::AST::Apply"].emit_regex_javascript2(p5list_to_a('=~',p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','$','namespace','','name','_'],1),v_self),p5want));},'p5:tr',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5pkg["Perlito5::AST::Apply"].emit_regex_javascript2(p5list_to_a('=~',p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','$','namespace','','name','_'],1),v_self),p5want));},'__PACKAGE__',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('"'+p5str(p5pkg["Perlito5"]["v_PKG_NAME"])+'"')],p5want));},'wantarray',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context(['p5want'],p5want));},'package',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('var '+p5str(p5pkg["Perlito5::Javascript2"].pkg_new_var([],0))+' = p5make_package("'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'")')],p5want));},'infix:<=>>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([(p5str(p5call(p5call(p5pkg["Perlito5::AST::Lookup"],"autoquote",p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0),"emit_javascript2",[v_level],0))+', '+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1),"emit_javascript2",[v_level],0)))],p5want));},'infix:<cmp>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('p5cmp('+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_str([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'infix:<<=>>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('p5cmp('+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_num([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'infix:<**>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('Math.pow('+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_num([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'infix:<<<>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('p5shift_left('+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_num([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'infix:<%>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('p5modulo('+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_num([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'prefix:<!>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));return(p5context([('!( '+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level),0))+')')],p5want));},'prefix:<not>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));return(p5context([('!( '+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),v_level),0))+')')],p5want));},'prefix:<~>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('p5complement( '+p5str(p5pkg["Perlito5::Javascript2"].to_num(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0))+')')],p5want));},'prefix:<->',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('-( '+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level,'scalar'],0))+')')],p5want));},'prefix:<+>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level,v_wantarray],0))+')')],p5want));},'require',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));return(p5context([('p5pkg["Perlito5::Grammar::Use"]["require"](['+p5str(p5pkg["Perlito5::Javascript2"].to_str(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0))+', '+p5str((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('bareword'))?1:0))+'])')],p5want));},'prefix:<$>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));return(p5context([('p5scalar_deref('+p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify([v_arg,v_level,'scalar'],0))+')')],p5want));},'prefix:<@>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));return(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify([v_arg,v_level,'array'],0))+'._array_')],p5want));},'prefix:<$#>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));return(p5context([('('+p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify([v_arg,v_level,'array'],0))+'._array_.length - 1)')],p5want));},'prefix:<%>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));return(p5context([(p5str(p5pkg["Perlito5::Javascript2"].emit_javascript2_autovivify([v_arg,v_level,'hash'],0))+'._hash_')],p5want));},'prefix:<&>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));return(p5context([('p5code_lookup_by_name("'+p5str(p5pkg["Perlito5"]["v_PKG_NAME"])+'", '+p5str(p5call(v_arg,"emit_javascript2",[v_level],0))+')')],p5want));},'circumfix:<[ ]>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));return(p5context([('(new p5ArrayRef('+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),0))+'))')],p5want));},'circumfix:<{ }>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));return(p5context([('(new p5HashRef('+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),v_level,'hash'),0))+'))')],p5want));},'prefix:<'+String.fromCharCode(92)+'>',function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(p5bool(p5call(v_arg,"isa",['Perlito5::AST::Var'],0))){if((p5str(p5call(v_arg,"sigil",[],0))=='@')){throw(p5context([('(new p5ArrayRef('+p5str(p5call(v_arg,"emit_javascript2",[v_level],0))+'))')],p5want));};if((p5str(p5call(v_arg,"sigil",[],0))=='%')){throw(p5context([('(new p5HashRef('+p5str(p5call(v_arg,"emit_javascript2",[v_level],0))+'))')],p5want));};if((p5str(p5call(v_arg,"sigil",[],0))=='*')){throw(p5context([('(new p5GlobRef('+p5str(p5call(v_arg,"emit_javascript2",[v_level],0))+'))')],p5want));};if((p5str(p5call(v_arg,"sigil",[],0))=='&')){if(p5bool((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('namespace'))){throw(p5context([('p5pkg["'+p5str((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('namespace'))+'"].'+p5str((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('name')))],p5want));}
else{throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"].pkg([],0))+'.'+p5str((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('name')))],p5want));};};};return(p5context([('(new p5ScalarRef('+p5str(p5call(v_arg,"emit_javascript2",[v_level],0))+'))')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'postfix:<++>',function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(((p5bool(p5call(v_arg,"isa",['Perlito5::AST::Index'],0))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Lookup'],0)))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Call'],0)))){throw(p5call(v_arg,"emit_javascript2",[(p5num(v_level)+1),0,'p5postincr'],p5want));};return(p5context([('('+p5pkg["Perlito5::AST::Apply"].join([' ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')++')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'postfix:<-->',function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(((p5bool(p5call(v_arg,"isa",['Perlito5::AST::Index'],0))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Lookup'],0)))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Call'],0)))){throw(p5call(v_arg,"emit_javascript2",[(p5num(v_level)+1),0,'p5postdecr'],p5want));};return(p5context([('('+p5pkg["Perlito5::AST::Apply"].join([' ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')--')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'prefix:<++>',function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(((p5bool(p5call(v_arg,"isa",['Perlito5::AST::Index'],0))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Lookup'],0)))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Call'],0)))){throw(p5call(v_arg,"emit_javascript2",[(p5num(v_level)+1),0,'p5incr'],p5want));};return(p5context([('++('+p5pkg["Perlito5::AST::Apply"].join([' ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'prefix:<-->',function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(((p5bool(p5call(v_arg,"isa",['Perlito5::AST::Index'],0))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Lookup'],0)))||p5bool(p5call(v_arg,"isa",['Perlito5::AST::Call'],0)))){throw(p5call(v_arg,"emit_javascript2",[(p5num(v_level)+1),0,'p5decr'],p5want));};return(p5context([('--('+p5pkg["Perlito5::AST::Apply"].join([' ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'infix:<x>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('p5str_replicate('+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'list:<.>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5context([('('+p5pkg["Perlito5::AST::Apply"].join([' + ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_str([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));},'list:<,>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));return(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),p5want));},'infix:<..>',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));return(p5context([('(function (a) { '+'for (var i='+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[],0))+', l='+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1),"emit_javascript2",[],0))+'; '+'i<=l; ++i)'+'{ '+'a.push(i) '+'}; '+'return a '+'})([])')],p5want));},'delete',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));return(p5context([('(delete '+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[],0))+')')],p5want));},'scalar',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_level;(v_level=(List__.p5aget(1)));return(p5pkg["Perlito5::Javascript2"].to_scalar(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),(p5num(v_level)+1)),p5want));},'ternary:<? :>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('( '+p5str(p5pkg["Perlito5::Javascript2"].to_bool(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0))+' ? '+p5str(p5call(p5context([(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)],0),"emit_javascript2",[v_level,v_wantarray],0))+' : '+p5str(p5call(p5context([(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(2)],0),"emit_javascript2",[v_level,v_wantarray],0))+')')],p5want));},'my',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('p5context('+'['+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+'], '+p5str(((p5str(v_wantarray)=='runtime')?'p5want':((p5str(v_wantarray)=='list')?1:0)))+')')],p5want));},'local',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('p5context('+'['+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+'], '+p5str(((p5str(v_wantarray)=='runtime')?'p5want':((p5str(v_wantarray)=='list')?1:0)))+')')],p5want));},'circumfix:<( )>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('p5context('+'['+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[v_level,v_wantarray],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+'], '+p5str(((p5str(v_wantarray)=='runtime')?'p5want':((p5str(v_wantarray)=='list')?1:0)))+')')],p5want));},'infix:<=>',function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_parameters;(v_parameters=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));var v_arguments;(v_arguments=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)));if((p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Apply'],0))&&(((p5str(p5call(v_parameters,"code",[],0))=='my')||(p5str(p5call(v_parameters,"code",[],0))=='local'))||(p5str(p5call(v_parameters,"code",[],0))=='circumfix:<( )>')))){(function(){var v_tmp;(v_tmp=(('tmp'+p5str(p5pkg["Perlito5::Javascript2"].get_label([],0)))));var v_tmp2;(v_tmp2=(('tmp'+p5str(p5pkg["Perlito5::Javascript2"].get_label([],0)))));throw(p5context([('(function () { '+'var '+p5str(v_tmp)+' = '+p5str(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((new p5ArrayRef([v_arguments])),(p5num(v_level)+1)),0))+'; '+'var '+p5str(v_tmp2)+' = '+p5str(v_tmp)+'.slice(0); '+p5pkg["Perlito5::AST::Apply"].join(['; ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return((p5context([((p5bool(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"code",[],0))=='undef'))?(p5str(v_tmp)+'.shift()'):((p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"sigil",[],0))=='$')?(p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],0))+' = '+p5str(v_tmp)+'.shift()'):((p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"sigil",[],0))=='@')?(p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],0))+' = '+p5str(v_tmp)+'; '+p5str(v_tmp)+' = []'):((p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"sigil",[],0))=='%')?(p5str(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],0))+' = p5a_to_h('+p5str(v_tmp)+'); '+p5str(v_tmp)+' = []'):p5pkg["Perlito5::AST::Apply"].die([['not implemented']],p5want)))))],p5want)));},p5list_to_a(p5call(v_parameters,"arguments",[],p5want)._array_)),('return '+p5str(v_tmp2)))],0)+' })()')],p5want));})();};if((((((p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Index'],0))||p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Lookup'],0)))||p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Call'],0)))||p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Var'],0)))||p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Decl'],0)))||p5bool(p5call(v_parameters,"isa",['Perlito5::AST::Apply'],0)))){throw(p5call(v_parameters,"emit_javascript2_set",[v_arguments,(p5num(v_level)+1)],p5want));};return(p5context([('('+p5str(p5call(v_parameters,"emit_javascript2",[v_level],0))+' = '+p5str(p5call(v_arguments,"emit_javascript2",[(p5num(v_level)+1)],0))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'break',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));(p5pkg["Perlito5"]["v_THROW"]=(1));return(p5context(['throw(new p5_error("break", ""))'],p5want));},'next',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));(p5pkg["Perlito5"]["v_THROW"]=(1));var v_label;(v_label=(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('code'),function(){return''})));return(p5context([('throw(new p5_error("next", "'+p5str(v_label)+'"))')],p5want));},'last',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));(p5pkg["Perlito5"]["v_THROW"]=(1));var v_label;(v_label=(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('code'),function(){return''})));return(p5context([('throw(new p5_error("last", "'+p5str(v_label)+'"))')],p5want));},'redo',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));(p5pkg["Perlito5"]["v_THROW"]=(1));var v_label;(v_label=(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('code'),function(){return''})));return(p5context([('throw(new p5_error("redo", "'+p5str(v_label)+'"))')],p5want));},'return',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));(p5pkg["Perlito5"]["v_THROW"]=(1));return(p5context([('throw('+p5str(p5pkg["Perlito5::Javascript2"].to_runtime_context(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),v_level),0))+')')],p5want));},'goto',function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));(p5pkg["Perlito5"]["v_THROW"]=(1));return(p5context([('throw(('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[],0))+')([List__, p5want]))')],p5want));},'do',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_ast;(v_ast=(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','eval','namespace','','arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','slurp','namespace','Perlito5::IO','arguments',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),1))))),0)));return(p5call(v_ast,"emit_javascript2",[v_level],p5want));},'eval',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));(p5pkg["Perlito5"]["v_THROW"]=(1));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));var v_eval;if(p5bool(p5call(v_arg,"isa",['Perlito5::AST::Do'],0))){(v_eval=(p5call(v_arg,"emit_javascript2",[(p5num(v_level)+1),v_wantarray],0)));}
else{(function(){var v_var_env_perl5;(v_var_env_perl5=(p5pkg["Perlito5::Dumper"].Dumper([p5pkg["Perlito5"]["v_VAR"]],0)));var v_m;(v_m=(p5call(p5pkg["Perlito5::Expression"],"term_square",[v_var_env_perl5,0],0)));(v_m=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((p5pkg["Perlito5::Match"].flat([v_m],p5want)||(p5pkg["Perlito5::Match"].flat([v_m],p5want)=new p5ArrayRef([])))._array_.p5aget(2)),0)));var v_var_env_js;(v_var_env_js=(('(new p5ArrayRef('+p5str(p5pkg["Perlito5::Javascript2"].to_list([v_m],0))+'))')));(v_eval=(('eval(perl5_to_js('+p5str(p5pkg["Perlito5::Javascript2"].to_str([v_arg],0))+', '+'"'+p5str(p5pkg["Perlito5"]["v_PKG_NAME"])+'", '+p5str(v_var_env_js)+', '+'"'+p5str(v_wantarray)+'"'+'))')));})();};return(p5context([('(function (p5want) {'+String.fromCharCode(10)+'var r;'+String.fromCharCode(10)+'p5pkg["main"]["v_@"] = "";'+String.fromCharCode(10)+'try {'+String.fromCharCode(10)+'r = '+p5str(v_eval)+String.fromCharCode(10)+'}'+String.fromCharCode(10)+'catch(err) {'+String.fromCharCode(10)+'if ( err instanceof p5_error || err instanceof Error ) {'+String.fromCharCode(10)+'p5pkg["main"]["v_@"] = err;'+String.fromCharCode(10)+'try {'+String.fromCharCode(10)+'    p5pkg["main"]["v_@"] = p5pkg["main"]["v_@"] + "'+String.fromCharCode(92)+'n" + err.stack;'+String.fromCharCode(10)+'}'+String.fromCharCode(10)+'catch(err) { }'+String.fromCharCode(10)+'}'+String.fromCharCode(10)+'else {'+String.fromCharCode(10)+'return(err);'+String.fromCharCode(10)+'}'+String.fromCharCode(10)+'}'+String.fromCharCode(10)+'return r;'+String.fromCharCode(10)+'})('+p5str(((p5str(v_wantarray)=='list')?'1':((p5str(v_wantarray)=='scalar')?'0':((p5str(v_wantarray)=='void')?'null':'p5want'))))+')')],p5want));},'undef',function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));if((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'))&&p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_))){throw(p5context([('('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[],0))+' = null)')],p5want));};return(p5context(['null'],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'defined',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('('+p5pkg["Perlito5::AST::Apply"].join([' ',p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[v_level],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+' != null)')],p5want));},'shift',function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));if((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'))&&p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_))){throw(p5context([(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level],0))+'.shift()')],p5want));};return(p5context(['List__.shift()'],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'pop',function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));if((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'))&&p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_))){throw(p5context([(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level],0))+'.pop()')],p5want));};return(p5context(['List__.pop()'],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}},'unshift',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_arguments=[];(List_arguments=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_v;(v_v=(List_arguments.shift()));return(p5context([(p5str(p5call(v_v,"emit_javascript2",[v_level],0))+'.p5unshift('+p5str(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_arguments))],0))+')')],p5want));},'push',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_arguments=[];(List_arguments=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_v;(v_v=(List_arguments.shift()));return(p5context([(p5str(p5call(v_v,"emit_javascript2",[v_level],0))+'.p5push('+p5str(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_arguments))],0))+')')],p5want));},'tie',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_arguments=[];(List_arguments=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_v;(v_v=(List_arguments.shift()));var v_meth;if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='%'))){(v_meth=('hash'));}
else{if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='@'))){(v_meth=('array'));}
else{if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='$'))){(v_meth=('scalar'));}
else{p5pkg["Perlito5::AST::Apply"].die([p5list_to_a('tie '+String.fromCharCode(39),p5pkg["Perlito5::AST::Apply"].ref([v_v],1),String.fromCharCode(39)+' not implemented')],null);};};};return(p5context([('p5tie_'+p5str(v_meth)+'('+p5str(p5call(v_v,"emit_javascript2",[v_level],0))+', '+p5str(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_arguments))],0))+')')],p5want));},'untie',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_arguments=[];(List_arguments=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_v;(v_v=(List_arguments.shift()));var v_meth;if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='%'))){(v_meth=('hash'));}
else{if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='@'))){(v_meth=('array'));}
else{if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='$'))){(v_meth=('scalar'));}
else{p5pkg["Perlito5::AST::Apply"].die([p5list_to_a('tie '+String.fromCharCode(39),p5pkg["Perlito5::AST::Apply"].ref([v_v],1),String.fromCharCode(39)+' not implemented')],null);};};};return(p5context([('p5untie_'+p5str(v_meth)+'('+p5str(p5call(v_v,"emit_javascript2",[v_level],0))+')')],p5want));},'map',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_in=[];(List_in=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_fun;(v_fun=(List_in.shift()));var v_list;(v_list=(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_in))],0)));if((p5str(p5pkg["Perlito5::AST::Apply"].ref([v_fun],0))=='Perlito5::AST::Lit::Block')){(v_fun=((v_fun||(v_fun=new p5HashRef({})))._hash_.p5hget('stmts')));}
else{(v_fun=((new p5ArrayRef([v_fun]))));};return(p5context([('p5map('+p5str(p5pkg["Perlito5::Javascript2"].pkg([],0))+', '+'function (p5want) {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",['block',v_fun,'needs_return',1,'top_level',0],0)],0),"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}, '+p5str(v_list)+')')],p5want));},'grep',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_in=[];(List_in=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_fun;(v_fun=(List_in.shift()));var v_list;(v_list=(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_in))],0)));if((p5str(p5pkg["Perlito5::AST::Apply"].ref([v_fun],0))=='Perlito5::AST::Lit::Block')){(v_fun=((v_fun||(v_fun=new p5HashRef({})))._hash_.p5hget('stmts')));}
else{(v_fun=((new p5ArrayRef([v_fun]))));};return(p5context([('p5grep('+p5str(p5pkg["Perlito5::Javascript2"].pkg([],0))+', '+'function (p5want) {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",['block',v_fun,'needs_return',1,'top_level',0],0)],0),"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}, '+p5str(v_list)+')')],p5want));},'sort',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var List_in=[];(List_in=p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_));var v_fun;var v_list;if((p5str(p5pkg["Perlito5::AST::Apply"].ref([List_in.p5aget(0)],0))=='Perlito5::AST::Lit::Block')){(v_fun=(List_in.shift()));(v_fun=(('function (p5want) {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',(v_fun||(v_fun=new p5HashRef({})))._hash_.p5hget('stmts'),'needs_return',1,'top_level',0),0)],0),"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')));}
else{(v_fun=('null'));};(v_list=(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_in))],0)));return(p5context([('p5sort('+p5str(p5pkg["Perlito5::Javascript2"].pkg([],0))+', '+p5str(v_fun)+', '+p5str(v_list)+')')],p5want));},'infix:<//>',function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));return(p5context([('p5defined_or'+'('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level,'scalar'],0))+', '+p5str(p5pkg["Perlito5::Javascript2"].emit_function_javascript2(p5list_to_a(v_level,v_wantarray,(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)),0))+')')],p5want));},'exists',function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_arg;(v_arg=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)));if(p5bool(p5call(v_arg,"isa",['Perlito5::AST::Lookup'],0))){(function(){var v_v;(v_v=(p5call(v_arg,"obj",[],0)));if((p5bool(p5call(v_v,"isa",['Perlito5::AST::Var'],0))&&(p5str(p5call(v_v,"sigil",[],0))=='$'))){(v_v=(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','%','namespace',p5call(v_v,"namespace",[],1),'name',p5call(v_v,"name",[],1)),0)));throw(p5context([('('+p5str(p5call(v_v,"emit_javascript2",[],0))+').hasOwnProperty('+p5str(p5call(p5call(v_arg,"autoquote",p5list_to_a((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('index_exp')),0),"emit_javascript2",[v_level],0))+')')],p5want));};throw(p5context([('('+p5str(p5call(v_v,"emit_javascript2",[],0))+')._hash_.hasOwnProperty('+p5str(p5call(p5call(v_arg,"autoquote",p5list_to_a((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('index_exp')),0),"emit_javascript2",[v_level],0))+')')],p5want));})();};if(p5bool(p5call(v_arg,"isa",['Perlito5::AST::Call'],0))){if((p5str(p5call(v_arg,"method",[],0))=='postcircumfix:<{ }>')){throw(p5context([('('+p5str(p5call(p5call(v_arg,"invocant",[],0),"emit_javascript2",[],0))+')._hash_.hasOwnProperty('+p5str(p5call(p5call(p5pkg["Perlito5::AST::Lookup"],"autoquote",p5list_to_a((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('arguments')),0),"emit_javascript2",[v_level],0))+')')],p5want))}
else{null;}}
else{null;}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}}]));p5make_sub("Perlito5::AST::Apply","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_apply;(v_apply=(p5call(v_self,"op_assign",[],0)));if(p5bool(v_apply)){throw(p5call(v_apply,"emit_javascript2",[v_level],p5want));};var v_code;(v_code=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code')));if((p5str(p5pkg["Perlito5::AST::Apply"].ref([v_code],0))!='')){(function(){var List_args=[];(List_args=[]);p5for(p5pkg["Perlito5::AST::Apply"],function(){List_args.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[],1)));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_),false,"");throw(p5context([('('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code'),"emit_javascript2",[v_level],0))+')('+p5pkg["Perlito5::AST::Apply"].join([',',p5list_to_a(List_args)],0)+')')],p5want));})();};if((Hash_emit_js).hasOwnProperty(v_code)){throw((Hash_emit_js.p5hget(p5str(v_code)))([v_self,v_level,v_wantarray],p5want));};if((p5pkg["Perlito5::Javascript2"]["Hash_op_infix_js_str"]).hasOwnProperty(v_code)){throw(p5context([('('+p5pkg["Perlito5::AST::Apply"].join([p5pkg["Perlito5::Javascript2"]["Hash_op_infix_js_str"].p5hget(p5str(v_code)),p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_str([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));};if((p5pkg["Perlito5::Javascript2"]["Hash_op_infix_js_num"]).hasOwnProperty(v_code)){throw(p5context([('('+p5pkg["Perlito5::AST::Apply"].join([p5pkg["Perlito5::Javascript2"]["Hash_op_infix_js_num"].p5hget(p5str(v_code)),p5list_to_a(p5map(p5pkg["Perlito5::AST::Apply"],function(p5want){return(p5pkg["Perlito5::Javascript2"].to_num([p5pkg["Perlito5::AST::Apply"]["v__"]],p5want));},p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)))],0)+')')],p5want));};if((p5pkg["Perlito5::Javascript2"]["Hash_op_prefix_js_str"]).hasOwnProperty(v_code)){throw(p5context([(p5str(p5pkg["Perlito5::Javascript2"]["Hash_op_prefix_js_str"].p5hget(p5str(v_code)))+'('+p5str(p5pkg["Perlito5::Javascript2"].to_str(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0)),0))+')')],p5want));};if(((p5str(v_code)=='infix:<&&>')||(p5str(v_code)=='infix:<and>'))){throw(p5context([('p5and'+'('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level,'scalar'],0))+', '+p5str(p5pkg["Perlito5::Javascript2"].emit_function_javascript2(p5list_to_a(v_level,v_wantarray,(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)),0))+')')],p5want));};if(((p5str(v_code)=='infix:<||>')||(p5str(v_code)=='infix:<or>'))){throw(p5context([('p5or'+'('+p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"emit_javascript2",[v_level,'scalar'],0))+', '+p5str(p5pkg["Perlito5::Javascript2"].emit_function_javascript2(p5list_to_a(v_level,v_wantarray,(v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(1)),0))+')')],p5want));};if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))){if(((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))=='JS')&&(p5str(v_code)=='inline'))){if(p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),"isa",['Perlito5::AST::Val::Buf'],0))){throw((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('buf'));}
else{p5pkg["Perlito5::AST::Apply"].die([['JS::inline needs a string constant']],null);};};(v_code=(('p5pkg["'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'"].'+p5str(v_code))));}
else{(v_code=((p5str(p5pkg["Perlito5::Javascript2"].pkg([],0))+'.'+p5str(v_code))));};var v_sig;var v_may_need_autoload;p5for_lex(function(){var v_name;(v_name=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code')));var v_namespace;(v_namespace=(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'),function(){return p5pkg["Perlito5"]["v_PKG_NAME"]})));var v_effective_name;(v_effective_name=((p5str(v_namespace)+'::'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code')))));if((p5pkg["Perlito5"]["v_PROTO"])._hash_.hasOwnProperty(v_effective_name)){(v_sig=((p5pkg["Perlito5"]["v_PROTO"]||(p5pkg["Perlito5"]["v_PROTO"]=new p5HashRef({})))._hash_.p5hget(p5str(v_effective_name))));}
else{if(((!(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace')))||(p5str(v_namespace)=='CORE'))&&(p5pkg["Perlito5"]["v_CORE_PROTO"])._hash_.hasOwnProperty(('CORE::'+p5str(v_name))))){(v_effective_name=(('CORE::'+p5str(v_name))));(v_sig=((p5pkg["Perlito5"]["v_CORE_PROTO"]||(p5pkg["Perlito5"]["v_CORE_PROTO"]=new p5HashRef({})))._hash_.p5hget(p5str(v_effective_name))));}
else{if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('bareword'))){if(p5bool(p5pkg["Perlito5"]["v_STRICT"])){p5pkg["Perlito5::AST::Apply"].die([[('Bareword "'+p5str(v_name)+'" not allowed while "strict subs" in use')]],null);};throw(p5pkg["Perlito5::Javascript2"].escape_string([(p5str((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))?(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'::'):''))+p5str(v_name))],p5want));};(v_may_need_autoload=(1));};};},[0],false,"");if(((((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code'))=='say')||(p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code'))=='print'))&&!(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))))&&p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('bareword')))){(v_self||(v_self=new p5HashRef({})))._hash_.p5hset('arguments',((new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','$','namespace','','name','_'],1))))));};if(p5bool(v_sig)){(function(){var List_out=[];(List_out=[]);var List_in=[];(List_in=p5list_to_a((p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),function(){return(new p5ArrayRef([]))})||(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments'),function(){return(new p5ArrayRef([]))})=new p5ArrayRef([])))._array_));var v_optional;(v_optional=(0));p5while(function(){var v_c;(v_c=(p5pkg["Perlito5::AST::Apply"].substr([v_sig,0,1],0)));if((p5str(v_c)==';')){(v_optional=(1));}
else{if(((p5str(v_c)=='$')||(p5str(v_c)=='_'))){if((p5bool(List_in.length)||!(p5bool(v_optional)))){List_out.p5push(p5list_to_a(p5call(List_in.shift(),"emit_javascript2",[v_level,'scalar'],1)));};}
else{if((p5str(v_c)=='@')){if((p5bool(List_in.length)||!(p5bool(v_optional)))){List_out.p5push(p5list_to_a(p5pkg["Perlito5::Javascript2"].to_list([(new p5ArrayRef(List_in))],1)));};(List_in=[]);}
else{if((p5str(v_c)=='*')){if((p5bool(List_in.length)||!(p5bool(v_optional)))){(function(){var v_arg;(v_arg=(List_in.shift()));if(p5bool((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('bareword'))){List_out.p5push([('p5pkg["'+p5str(p5or((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('namespace'),function(){return p5pkg["Perlito5"]["v_PKG_NAME"]}))+'"]["f_'+p5str((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('code'))+'"]')]);}
else{List_out.p5push(p5list_to_a(p5call(v_arg,"emit_javascript2",[v_level,'scalar'],1)));};})();};}
else{if((p5str(v_c)==String.fromCharCode(92))){if((p5pkg["Perlito5::AST::Apply"].substr([v_sig,0,2],0)==String.fromCharCode(92)+'$')){(v_sig=(p5pkg["Perlito5::AST::Apply"].substr([v_sig,1],0)));if((p5bool(List_in.length)||!(p5bool(v_optional)))){List_out.p5push(p5list_to_a(p5call(List_in.shift(),"emit_javascript2",[v_level,'scalar'],1)));};}
else{if(((p5pkg["Perlito5::AST::Apply"].substr([v_sig,0,2],0)==String.fromCharCode(92)+'@')||(p5pkg["Perlito5::AST::Apply"].substr([v_sig,0,2],0)==String.fromCharCode(92)+'%'))){(v_sig=(p5pkg["Perlito5::AST::Apply"].substr([v_sig,1],0)));if((p5bool(List_in.length)||!(p5bool(v_optional)))){List_out.p5push(p5list_to_a(p5call(List_in.shift(),"emit_javascript2",[v_level,'list'],1)));};}
else{if((p5pkg["Perlito5::AST::Apply"].substr([v_sig,0,5],0)==String.fromCharCode(92)+'[@%]')){(v_sig=(p5pkg["Perlito5::AST::Apply"].substr([v_sig,4],0)));if((p5bool(List_in.length)||!(p5bool(v_optional)))){List_out.p5push(p5list_to_a(p5call(List_in.shift(),"emit_javascript2",[v_level,'list'],1)));};}
else{if((p5pkg["Perlito5::AST::Apply"].substr([v_sig,0,6],0)==String.fromCharCode(92)+'[$@%]')){(v_sig=(p5pkg["Perlito5::AST::Apply"].substr([v_sig,5],0)));if((p5bool(List_in.length)||!(p5bool(v_optional)))){List_out.p5push(p5list_to_a(p5call(List_in.shift(),"emit_javascript2",[v_level,'list'],1)));};};};};};};};};};};(v_sig=(p5pkg["Perlito5::AST::Apply"].substr([v_sig,1],0)));},function(){return p5pkg["Perlito5::AST::Apply"].length([v_sig],p5want)},false,"");throw(p5context([(p5str(v_code)+'(['+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(List_out)],0)+'], '+p5str(((p5str(v_wantarray)=='list')?'1':((p5str(v_wantarray)=='scalar')?'0':((p5str(v_wantarray)=='void')?'null':'p5want'))))+')')],p5want));})();};var List_args=[];(List_args=[]);var v_arg_list;(v_arg_list=(p5pkg["Perlito5::Javascript2"].to_list_preprocess(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),0)));p5for(p5pkg["Perlito5::AST::Apply"],function(){List_args.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"]["v__"],"emit_javascript2",[v_level],1)));},p5list_to_a((v_arg_list||(v_arg_list=new p5ArrayRef([])))._array_),false,"");var v_arg_code;(v_arg_code=(((p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code'))=='scalar')?('['+p5pkg["Perlito5::AST::Apply"].join([', ',p5list_to_a(List_args)],0)+']'):p5pkg["Perlito5::Javascript2"].to_list([v_arg_list],0))));if(p5bool(v_may_need_autoload)){(function(){var v_name;(v_name=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code')));var v_namespace;(v_namespace=(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'),function(){return p5pkg["Perlito5"]["v_PKG_NAME"]})));throw(p5context([('p5call_sub('+'"'+p5str(v_namespace)+'", '+'"'+p5str(v_name)+'", '+p5str(v_arg_code)+', '+p5str(((p5str(v_wantarray)=='list')?'1':((p5str(v_wantarray)=='scalar')?'0':((p5str(v_wantarray)=='void')?'null':'p5want'))))+')')],p5want));})();};return(p5context([(p5str(v_code)+'('+p5str(v_arg_code)+', '+p5str(((p5str(v_wantarray)=='list')?'1':((p5str(v_wantarray)=='scalar')?'0':((p5str(v_wantarray)=='void')?'null':'p5want'))))+')')],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5141=p5make_package("Perlito5::AST::If");p5for_lex(function(){p5make_sub("Perlito5::AST::If","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_cond;(v_cond=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('cond')));var v_body;(v_body=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"stmts",[],1),'needs_return',0,'create_context',1),0)));var v_s;(v_s=(('if ( '+p5str(p5pkg["Perlito5::Javascript2"].to_bool([v_cond,(p5num(v_level)+1)],0))+' ) {'+String.fromCharCode(10)+p5str(p5call(v_body,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')));if(p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('otherwise'),"stmts",[],p5want)._array_)){(function(){var v_otherwise;(v_otherwise=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('otherwise'),"stmts",[],1),'needs_return',0,'create_context',1),0)));(v_s=((p5str(v_s)+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'else {'+String.fromCharCode(10)+p5str(p5call(v_otherwise,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')));})();};return(p5context([v_s],p5want));});},[0],false,"");var p5142=p5make_package("Perlito5::AST::When");p5for_lex(function(){p5make_sub("Perlito5::AST::When","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_cond;(v_cond=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('cond')));var v_body;(v_body=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"stmts",[],1),'needs_return',0,'create_context',1),0)));var v_expr;(v_expr=(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','infix:<==>','arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','$','namespace','','name','_'],1),v_cond)))),0)));var v_label;(v_label=(''));var v_s;(v_s=(('if ( '+p5str(p5pkg["Perlito5::Javascript2"].to_bool([v_expr,(p5num(v_level)+1)],0))+' ) {'+String.fromCharCode(10)+p5str(p5call(v_body,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'throw(new p5_error("next", "'+p5str(v_label)+'"))'+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')));return(p5context([v_s],p5want));});},[0],false,"");var p5143=p5make_package("Perlito5::AST::While");p5for_lex(function(){p5make_sub("Perlito5::AST::While","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_cond;(v_cond=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('cond')));return(p5context([('p5while('+'function () {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"stmts",[],1),'needs_return',0,'top_level',0),0)],0),"emit_javascript2",[(p5num(v_level)+2)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}, '+p5str(p5pkg["Perlito5::Javascript2"].emit_function_javascript2([v_level,0,v_cond],0))+', '+p5str(p5pkg["Perlito5::AST::Lit::Block"].emit_javascript2_continue([v_self,v_level],0))+', '+'"'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('label'),function(){return''}))+'"'+')')],p5want));});},[0],false,"");var p5144=p5make_package("Perlito5::AST::For");p5for_lex(function(){p5make_sub("Perlito5::AST::For","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));if((p5str(p5pkg["Perlito5::AST::For"].ref([(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('cond')],0))=='ARRAY')){(function(){var v_body;(v_body=(p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"stmts",[],1),'needs_return',0,'create_context',1),0)));throw(p5context([('for ( '+p5str((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('cond')._array_.p5aget(0))?(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('cond')._array_.p5aget(0),"emit_javascript2",[(p5num(v_level)+1)],0))+'; '):'; '))+p5str((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('cond')._array_.p5aget(1))?(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('cond')._array_.p5aget(1),"emit_javascript2",[(p5num(v_level)+1)],0))+'; '):'; '))+p5str((p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('cond')._array_.p5aget(2))?(p5str(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('cond')._array_.p5aget(2),"emit_javascript2",[(p5num(v_level)+1)],0))+' '):' '))+') {'+String.fromCharCode(10)+p5str(p5call(v_body,"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')],p5want));})();};var v_cond;(v_cond=(p5pkg["Perlito5::Javascript2"].to_list(p5list_to_a((new p5ArrayRef(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('cond')))),(p5num(v_level)+1)),0)));if(p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"sig",[],0))){var v_v;(v_v=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"sig",[],0)));(p5pkg["Perlito5"]["v_VAR"]||(p5pkg["Perlito5"]["v_VAR"]=new p5ArrayRef([])))._array_.p5aget_hash(0)._hash_.p5hset(p5str(p5call(v_v,"perl5_name_javascript2",[],0)),((new p5HashRef({'decl':'my'}))));var v_sig;(v_sig=(p5call(v_v,"emit_javascript2",[(p5num(v_level)+1)],0)));throw(p5context([('p5for_lex('+('function ('+p5str(v_sig)+') {'+String.fromCharCode(10))+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"stmts",[],1),'needs_return',0,'top_level',0),0)],0),"emit_javascript2",[(p5num(v_level)+2)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}, '+p5str(v_cond)+', '+p5str(p5pkg["Perlito5::AST::Lit::Block"].emit_javascript2_continue([v_self,v_level],0))+', '+'"'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('label'),function(){return''}))+'"'+')')],p5want))}
else{throw(p5context([('p5for('+p5str(p5pkg["Perlito5::Javascript2"].pkg([],0))+', '+'function () {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('body'),"stmts",[],1),'needs_return',0,'top_level',0),0)],0),"emit_javascript2",[(p5num(v_level)+2)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([(p5num(v_level)+1)],0))+'}, '+p5str(v_cond)+', '+p5str(p5pkg["Perlito5::AST::Lit::Block"].emit_javascript2_continue([v_self,v_level],0))+', '+'"'+p5str(p5or((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('label'),function(){return''}))+'"'+')')],p5want))}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5145=p5make_package("Perlito5::AST::Sub");p5for_lex(function(){p5make_sub("Perlito5::AST::Sub","emit_javascript2",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_s;(v_s=(('function (List__, p5want) {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",p5list_to_a('block',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('block'),'needs_return',1,'top_level',1),0)],0),"emit_javascript2",[(p5num(v_level)+1)],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'}')));if(p5bool((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name'))){throw(p5context([('p5make_sub("'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('namespace'))+'", "'+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('name'))+'", '+p5str(v_s)+')')],p5want))}
else{throw(p5context([v_s],p5want))}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});},[0],false,"");var p5146=p5make_package("Perlito5::AST::Do");p5for_lex(function(){p5make_sub("Perlito5::AST::Do","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));var v_wantarray;(v_wantarray=(List__.shift()));var v_block;(v_block=(p5call(p5call(v_self,"simplify",[],0),"block",[],0)));return(p5context([('(function () {'+String.fromCharCode(10)+p5str(p5call(p5context([p5call(p5pkg["Perlito5::Javascript2::LexicalBlock"],"new",['block',v_block,'needs_return',1],0)],0),"emit_javascript2",[(p5num(v_level)+1),v_wantarray],0))+String.fromCharCode(10)+p5str(p5pkg["Perlito5::Javascript2"].tab([v_level],0))+'})()')],p5want));});},[0],false,"");var p5147=p5make_package("Perlito5::AST::Use");p5for_lex(function(){p5make_sub("Perlito5::AST::Use","emit_javascript2",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_level;(v_level=(List__.shift()));p5pkg["Perlito5::Grammar::Use"].emit_time_eval([v_self],null);return(p5context([('// '+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code'))+' '+p5str((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('mod'))+String.fromCharCode(10))],p5want));});},[0],false,"");})();;(function(){var p5148=p5make_package("Perlito5::Precedence");;p5make_sub("Perlito5::Precedence","new",function(List__,p5want){var v_class;(v_class=(List__.shift()));return(p5pkg["Perlito5::Precedence"].bless([(new p5HashRef(p5a_to_h(p5list_to_a(List__)))),v_class],p5want));});var v_Operator;(v_Operator=((new p5HashRef({}))));var v_Precedence;(v_Precedence=((new p5HashRef({}))));var v_PrefixPrecedence;(v_PrefixPrecedence=((new p5HashRef({}))));var v_Assoc;(v_Assoc=((new p5HashRef({}))));p5make_sub("Perlito5::Precedence","is_assoc_type",function(List__,p5want){var v_assoc_type;(v_assoc_type=(List__.shift()));var v_op_name;(v_op_name=(List__.shift()));return((v_Assoc||(v_Assoc=new p5HashRef({})))._hash_.p5hget_hash(p5str(v_assoc_type))._hash_.p5hget(p5str(v_op_name)));});p5make_sub("Perlito5::Precedence","is_fixity_type",function(List__,p5want){var v_fixity_type;(v_fixity_type=(List__.shift()));var v_op_name;(v_op_name=(List__.shift()));return((v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget_hash(p5str(v_fixity_type))._hash_.p5hget(p5str(v_op_name)));});p5make_sub("Perlito5::Precedence","is_term",function(List__,p5want){var v_token;(v_token=(List__.shift()));return(p5or(p5or(p5context([(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))=='term')],0),function(){return p5context([(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))=='postfix_or_term')],0)}),function(){return p5context([(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))=='postfix')],p5want)}));});p5make_sub("Perlito5::Precedence","is_num",function(List__,p5want){return(p5and((p5str(List__.p5aget(0))>='0'),function(){return(p5str(List__.p5aget(0))<='9')}));});p5make_sub("Perlito5::Precedence","is_ident_middle",function(List__,p5want){var v_c;(v_c=(List__.shift()));return(p5or(p5or(p5context([p5and((p5str(v_c)>='a'),function(){return(p5str(v_c)<='z')})],0),function(){return p5context([p5and((p5str(v_c)>='0'),function(){return(p5str(v_c)<='9')})],0)}),function(){return p5context([(p5str(v_c)=='_')],p5want)}));});var List_Parsed_op_chars=[];(List_Parsed_op_chars=[2,1]);var Hash_Parsed_op={};(Hash_Parsed_op=p5a_to_h(['?',function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_ternary",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'(',function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_paren",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'[',function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_square",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'{',function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_curly",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'->',function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_arrow",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}]));var List_Term_chars=[];(List_Term_chars=[7,6,5,4,3,2,1]);var Hash_Term={};(Hash_Term={'.':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'0':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'1':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'2':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'3':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'4':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'5':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'6':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'7':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'8':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'9':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_digit",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'my':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_declarator",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'do':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_do",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'our':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_declarator",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'sub':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_anon_sub",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'map':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_map_or_sort",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'eval':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_eval",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'sort':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_map_or_sort",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'grep':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_map_or_sort",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'state':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_declarator",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'local':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_declarator",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'return':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_return",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'package':function(List__,p5want){return(p5call(p5pkg["Perlito5::Expression"],"term_package",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}});p5make_sub("Perlito5::Precedence","add_term",function(List__,p5want){var v_name;(v_name=(List__.shift()));var v_param;(v_param=(List__.shift()));return(Hash_Term.p5hset(p5str(v_name),(v_param)));});var v_End_token;var v_End_token_chars;var Hash_Op={};var List_Op_chars=[];(List_Op_chars=[3,2,1]);p5make_sub("Perlito5::Precedence","op_parse",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_str;(v_str=(List__.shift()));var v_pos;(v_pos=(List__.shift()));var v_last_is_term;(v_last_is_term=(List__.shift()));p5for_lex(function(v_len){var v_term;(v_term=(p5pkg["Perlito5::Precedence"].substr([v_str,v_pos,v_len],0)));if((v_End_token)._hash_.hasOwnProperty(v_term)){(function(){var v_c1;(v_c1=(p5pkg["Perlito5::Precedence"].substr([v_str,((p5num(v_pos)+p5pkg["Perlito5::Precedence"].length([v_term],0))-1),1],0)));var v_c2;(v_c2=(p5pkg["Perlito5::Precedence"].substr([v_str,(p5num(v_pos)+p5pkg["Perlito5::Precedence"].length([v_term],0)),1],0)));if((!((p5bool(p5pkg["Perlito5::Precedence"].is_ident_middle([v_c1],0))&&p5bool(p5pkg["Perlito5::Precedence"].is_ident_middle([v_c2],0))))&&!(((p5str(v_c1)=='<')&&(p5str(v_c2)=='<'))))){throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',v_pos,'capture',(new p5ArrayRef(['end',v_term])))))));};})();};},p5list_to_a((v_End_token_chars||(v_End_token_chars=new p5ArrayRef([])))._array_),false,"");if(!(p5bool(v_last_is_term))){p5for_lex(function(v_len){var v_term;(v_term=(p5pkg["Perlito5::Precedence"].substr([v_str,v_pos,v_len],0)));if((Hash_Term).hasOwnProperty(v_term)){(function(){var v_c1;(v_c1=(p5pkg["Perlito5::Precedence"].substr([v_str,((p5num(v_pos)+p5pkg["Perlito5::Precedence"].length([v_term],0))-1),1],0)));var v_c2;(v_c2=(p5pkg["Perlito5::Precedence"].substr([v_str,(p5num(v_pos)+p5pkg["Perlito5::Precedence"].length([v_term],0)),1],0)));if(((p5bool(p5pkg["Perlito5::Precedence"].is_num([v_c1],0))||!(p5bool(p5pkg["Perlito5::Precedence"].is_ident_middle([v_c1],0))))||!(p5bool(p5pkg["Perlito5::Precedence"].is_ident_middle([v_c2],0))))){(function(){var v_m;(v_m=((Hash_Term.p5hget(p5str(v_term)))([v_str,v_pos],0)));if(p5bool(v_m)){throw(p5context([v_m],p5want));};})();};})();};},p5list_to_a(List_Term_chars),false,"");};p5for_lex(function(v_len){var v_op;(v_op=(p5pkg["Perlito5::Precedence"].substr([v_str,v_pos,v_len],0)));if((Hash_Parsed_op).hasOwnProperty(v_op)){(function(){var v_m;(v_m=((Hash_Parsed_op.p5hget(p5str(v_op)))([v_str,v_pos],0)));if(p5bool(v_m)){throw(p5context([v_m],p5want));};})();};},p5list_to_a(List_Parsed_op_chars),false,"");p5for_lex(function(v_len){var v_op;(v_op=(p5pkg["Perlito5::Precedence"].substr([v_str,v_pos,v_len],0)));if((Hash_Op).hasOwnProperty(v_op)){(function(){var v_c1;(v_c1=(p5pkg["Perlito5::Precedence"].substr([v_str,((p5num(v_pos)+p5pkg["Perlito5::Precedence"].length([v_op],0))-1),1],0)));var v_c2;(v_c2=(p5pkg["Perlito5::Precedence"].substr([v_str,(p5num(v_pos)+p5pkg["Perlito5::Precedence"].length([v_op],0)),1],0)));if((!((p5bool(p5pkg["Perlito5::Precedence"].is_ident_middle([v_c1],0))&&p5bool(p5pkg["Perlito5::Precedence"].is_ident_middle([v_c2],0))))&&!(((p5str(v_c1)=='&')&&(p5str(v_c2)=='&'))))){if(((((v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget('infix'))._hash_.hasOwnProperty(v_op)&&!(((v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget('prefix'))._hash_.hasOwnProperty(v_op)))&&!(p5bool(v_last_is_term)))){null;}
else{throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(p5num(v_pos)+p5num(v_len)),'capture',(new p5ArrayRef(['op',v_op])))))));};};})();};},p5list_to_a(List_Op_chars),false,"");return(p5call(p5pkg["Perlito5::Grammar::Bareword"],"term_bareword",[v_str,v_pos],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Precedence","add_op",function(List__,p5want){var v_fixity;(v_fixity=(List__.shift()));var v_name;(v_name=(List__.shift()));var v_precedence;(v_precedence=(List__.shift()));var v_param;(v_param=(List__.shift()));if(!((v_param!=null))){(v_param=((new p5HashRef({}))));};var v_assoc;(v_assoc=(p5or((v_param||(v_param=new p5HashRef({})))._hash_.p5hget('assoc'),function(){return'left'})));(v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget_hash(p5str(v_fixity))._hash_.p5hset(p5str(v_name),(1));(v_Precedence||(v_Precedence=new p5HashRef({})))._hash_.p5hset(p5str(v_name),(v_precedence));if((p5str(v_fixity)=='prefix')){(v_PrefixPrecedence||(v_PrefixPrecedence=new p5HashRef({})))._hash_.p5hset(p5str(v_name),(v_precedence));};(v_Assoc||(v_Assoc=new p5HashRef({})))._hash_.p5hget_hash(p5str(v_assoc))._hash_.p5hset(p5str(v_name),(1));return(Hash_Op.p5hset(p5str(v_name),(1)));});var v_prec;(v_prec=(100));p5pkg["Perlito5::Precedence"].add_op(['postfix','.( )',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','.[ ]',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','.{ }',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','( )',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','[ ]',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','funcall',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','funcall_no_params',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','methcall',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','methcall_no_params',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','block',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','hash',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['prefix','++',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['prefix','--',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','++',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['postfix','--',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','**',v_prec,(new p5HashRef({'assoc':'right'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['prefix',String.fromCharCode(92),v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['prefix','+',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['prefix','-',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['prefix','~',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['prefix','!',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','=~',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','!~',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','*',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','/',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','%',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','x',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','+',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','-',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','.',v_prec,(new p5HashRef({'assoc':'list'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','<<',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','>>',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5for(p5pkg["Perlito5::Precedence"],function(){p5pkg["Perlito5::Precedence"].add_op(['prefix',p5pkg["Perlito5::Precedence"]["v__"],v_prec],null);},['-r','-w','-x','-o','-R','-W','-X','-O','-e','-z','-s','-f','-d','-l','-p','-S','-b','-c','-t','-u','-g','-k','-T','-B','-M','-A','-C'],false,"");(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','lt',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','le',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','gt',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','ge',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','<=',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','>=',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','<',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','>',v_prec,(new p5HashRef({'assoc':'chain'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','<=>',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','cmp',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','==',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','!=',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','ne',v_prec,(new p5HashRef({'assoc':'chain'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','eq',v_prec,(new p5HashRef({'assoc':'chain'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','&',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','|',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','^',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','..',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','...',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','~~',v_prec,(new p5HashRef({'assoc':'chain'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','&&',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','||',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','//',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('ternary','? :',v_prec,(new p5HashRef({'assoc':'right'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','**=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','+=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','-=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','*=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','/=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','x=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','|=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','&=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','.=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','<<=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','>>=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','%=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','||=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','&&=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','^=',v_prec,(new p5HashRef({'assoc':'right'}))),null);p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('infix','//=',v_prec,(new p5HashRef({'assoc':'right'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','=>',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(p5list_to_a('list',',',v_prec,(new p5HashRef({'assoc':'list'}))),null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['prefix','not',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','and',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','or',v_prec],null);p5pkg["Perlito5::Precedence"].add_op(['infix','xor',v_prec],null);(v_prec=((p5num(v_prec)-1)));p5pkg["Perlito5::Precedence"].add_op(['infix','*start*',v_prec],null);p5make_sub("Perlito5::Precedence","get_token_precedence",function(List__,p5want){try{var v_token;(v_token=(List__.p5aget(0)));if((p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))=='prefix')){throw((v_PrefixPrecedence||(v_PrefixPrecedence=new p5HashRef({})))._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))));};return((v_Precedence||(v_Precedence=new p5HashRef({})))._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Precedence","precedence_parse",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_get_token;(v_get_token=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('get_token')));var v_reduce;(v_reduce=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('reduce')));var v_last_end_token;(v_last_end_token=(v_End_token));var v_last_end_token_chars;(v_last_end_token_chars=(v_End_token_chars));(v_End_token=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('end_token')));(v_End_token_chars=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('end_token_chars')));var v_op_stack;(v_op_stack=((new p5ArrayRef([]))));var v_num_stack;(v_num_stack=((new p5ArrayRef([]))));var v_last;(v_last=((new p5ArrayRef(['op','*start*']))));var v_last_is_term;(v_last_is_term=(0));var v_token;(v_token=((v_get_token)([v_last_is_term],0)));if((p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))=='space')){(v_token=((v_get_token)([v_last_is_term],0)));};p5while(function(){var v_token_is_term;(v_token_is_term=(p5pkg["Perlito5::Precedence"].is_term([v_token],0)));if(((p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))==',')&&((p5str((v_last||(v_last=new p5ArrayRef([])))._array_.p5aget(1))=='*start*')||(p5str((v_last||(v_last=new p5ArrayRef([])))._array_.p5aget(1))==',')))){(v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a((new p5ArrayRef(p5list_to_a('term',null)))));};if((p5bool((v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget_hash('prefix')._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))))&&((p5str((v_last||(v_last=new p5ArrayRef([])))._array_.p5aget(1))=='*start*')||!(p5bool(v_last_is_term))))){(v_token||(v_token=new p5ArrayRef([])))._array_.p5aset(0,('prefix'));(v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.p5unshift([v_token]);}
else{if((p5bool((v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget_hash('postfix')._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))))&&p5bool(v_last_is_term))){(function(){var v_pr;(v_pr=((v_Precedence||(v_Precedence=new p5HashRef({})))._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1)))));p5while(function(){(v_reduce)([v_op_stack,v_num_stack],null);},function(){return p5and(((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_),function(){return p5context([(p5num(v_pr)<=p5num(p5pkg["Perlito5::Precedence"].get_token_precedence(p5list_to_a((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.p5aget(0)),0)))],0)})},false,"");if((p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))!='postfix_or_term')){(v_token||(v_token=new p5ArrayRef([])))._array_.p5aset(0,('postfix'));};(v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.p5unshift([v_token]);(v_token_is_term=(1));})();}
else{if(p5bool(v_token_is_term)){if(p5bool(v_last_is_term)){p5pkg["Perlito5::Precedence"].say(p5list_to_a('#      last:  ',p5pkg["Perlito5::Dumper"].Dumper([v_last],1)),null);p5pkg["Perlito5::Precedence"].say(p5list_to_a('#      token: ',p5pkg["Perlito5::Dumper"].Dumper([v_token],1)),null);p5pkg["Perlito5::Precedence"].die([['Value tokens must be separated by an operator']],null);};(v_token||(v_token=new p5ArrayRef([])))._array_.p5aset(0,('term'));(v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push([v_token]);}
else{if(p5bool((v_Precedence||(v_Precedence=new p5HashRef({})))._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))))){(function(){var v_pr;(v_pr=((v_Precedence||(v_Precedence=new p5HashRef({})))._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1)))));if(p5bool((v_Assoc||(v_Assoc=new p5HashRef({})))._hash_.p5hget_hash('right')._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))))){p5while(function(){(v_reduce)([v_op_stack,v_num_stack],null);},function(){return p5and(((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_),function(){return p5context([(p5num(v_pr)<p5num(p5pkg["Perlito5::Precedence"].get_token_precedence(p5list_to_a((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.p5aget(0)),0)))],0)})},false,"");}
else{p5while(function(){(v_reduce)([v_op_stack,v_num_stack],null);},function(){return p5and(((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_),function(){return p5context([(p5num(v_pr)<=p5num(p5pkg["Perlito5::Precedence"].get_token_precedence(p5list_to_a((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.p5aget(0)),0)))],0)})},false,"");};if(p5bool((v_Operator||(v_Operator=new p5HashRef({})))._hash_.p5hget_hash('ternary')._hash_.p5hget(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1))))){(v_token||(v_token=new p5ArrayRef([])))._array_.p5aset(0,('ternary'));}
else{(v_token||(v_token=new p5ArrayRef([])))._array_.p5aset(0,('infix'));};(v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.p5unshift([v_token]);})();}
else{p5pkg["Perlito5::Precedence"].die([p5list_to_a('Unknown token: '+String.fromCharCode(39),(v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(1),String.fromCharCode(39))],null);};};};};(v_last=(v_token));(v_last_is_term=(v_token_is_term));(v_token=((v_get_token)([v_last_is_term],0)));if((p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))=='space')){(v_token=((v_get_token)([v_last_is_term],0)));};},function(){return p5and(p5context([(v_token!=null)],0),function(){return p5context([(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))!='end')],0)})},false,"");if(((v_token!=null)&&(p5str((v_token||(v_token=new p5ArrayRef([])))._array_.p5aget(0))!='end'))){p5pkg["Perlito5::Precedence"].die([['Unexpected end token: ',v_token]],null);};p5while(function(){(v_reduce)([v_op_stack,v_num_stack],null);},function(){return((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_)},false,"");(v_End_token=(v_last_end_token));(v_End_token_chars=(v_last_end_token_chars));return(p5context([v_num_stack],p5want));});1;})();(function(){var p5149=p5make_package("Perlito5::Grammar::Bareword");;p5make_sub("Perlito5::Grammar::Bareword","term_bareword",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_p;(v_p=(v_pos));var v_m_namespace;(v_m_namespace=(p5call(p5pkg["Perlito5::Grammar"],"optional_namespace_before_ident",[v_str,v_p],0)));var v_namespace;(v_namespace=(p5pkg["Perlito5::Match"].flat([v_m_namespace],0)));(v_p=((v_m_namespace||(v_m_namespace=new p5HashRef({})))._hash_.p5hget('to')));var v_m_name;(v_m_name=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(!(p5bool(v_m_name))){if(p5bool(v_namespace)){(v_m_namespace||(v_m_namespace=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','::','name','','namespace',v_namespace],1))))));throw(p5context([v_m_namespace],p5want));};throw(p5context([],p5want));};var v_name;(v_name=(p5pkg["Perlito5::Match"].flat([v_m_name],0)));(v_p=((v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hget('to')));if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,2],0)=='::')){(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('to',((p5num(v_p)+2)));(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Var"],"new",['sigil','::','name','','namespace',(p5str(v_namespace)+'::'+p5str(v_name))],1))))));throw(p5context([v_m_name],p5want));};var v_full_name;(v_full_name=(v_name));if(p5bool(v_namespace)){(v_full_name=((p5str(v_namespace)+'::'+p5str(v_name))));};var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",[v_str,v_p],0)));if(p5bool(v_m)){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,2],0)=='=>')){(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',v_name,'namespace',v_namespace,'arguments',(new p5ArrayRef([])),'bareword',1),1))))));(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('to',(v_p));throw(p5context([v_m_name],p5want));};if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,2],0)=='->')){(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Proto"],"new",['name',v_full_name],1))))));(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('to',(v_p));throw(p5context([v_m_name],p5want));};var v_effective_name;(v_effective_name=((p5str(p5or(v_namespace,function(){return p5pkg["Perlito5"]["v_PKG_NAME"]}))+'::'+p5str(v_name))));var v_sig;if((p5pkg["Perlito5"]["v_PROTO"])._hash_.hasOwnProperty(v_effective_name)){(v_sig=((p5pkg["Perlito5"]["v_PROTO"]||(p5pkg["Perlito5"]["v_PROTO"]=new p5HashRef({})))._hash_.p5hget(p5str(v_effective_name))));}
else{if(((!(p5bool(v_namespace))||(p5str(v_namespace)=='CORE'))&&(p5pkg["Perlito5"]["v_CORE_PROTO"])._hash_.hasOwnProperty(('CORE::'+p5str(v_name))))){(v_effective_name=(('CORE::'+p5str(v_name))));(v_sig=((p5pkg["Perlito5"]["v_CORE_PROTO"]||(p5pkg["Perlito5"]["v_CORE_PROTO"]=new p5HashRef({})))._hash_.p5hget(p5str(v_effective_name))));}
else{(v_sig=(null));};};var v_has_paren;(v_has_paren=(0));if((v_sig!=null)){if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_sig,0,1],0)==';')){if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,2],0)=='//')){(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',v_name,'namespace',v_namespace,'arguments',(new p5ArrayRef([])),'bareword',1),1))))));(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('to',(v_p));throw(p5context([v_m_name],p5want));};};if((p5str(v_sig)=='')){if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,1],0)=='(')){(function(){(v_p)++;(v_has_paren=(1));var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",[v_str,v_p],0)));if(p5bool(v_m)){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,1],0)!=')')){p5pkg["Perlito5::Grammar::Bareword"].die([['syntax error near ',p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_pos,10],1)]],null);};(v_p)++;})();};(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',v_name,'namespace',v_namespace,'arguments',(new p5ArrayRef([])),'bareword',(p5num(v_has_paren)==0)),1))))));(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('to',(v_p));throw(p5context([v_m_name],p5want));};if((((p5str(v_sig)=='_')||(p5str(v_sig)=='$'))||(p5str(v_sig)==';$'))){(function(){var v_m;var v_arg;if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,1],0)=='(')){(function(){(v_m=(p5call(p5pkg["Perlito5::Expression"],"term_paren",[v_str,v_p],0)));if(!(p5bool(v_m))){throw(p5context([v_m],p5want));};(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_has_paren=(1));(v_arg=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget_array('capture')._array_.p5aget(2)));(v_arg=(p5pkg["Perlito5::Expression"].expand_list([v_arg],0)));var v_v;(v_v=((v_arg||(v_arg=new p5ArrayRef([])))._array_.shift()));if(p5bool((v_arg||(v_arg=new p5ArrayRef([])))._array_)){p5pkg["Perlito5::Grammar::Bareword"].die([[('Too many arguments for '+p5str(v_name))]],null);};(v_arg=(v_v));})();}
else{(v_m=(p5call(p5pkg["Perlito5::Expression"],"argument_parse",[v_str,v_p],0)));(v_arg=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')));if((p5str(v_arg)=='*undef*')){(v_arg=(null));}
else{if(((p5str(p5pkg["Perlito5::Grammar::Bareword"].ref([v_arg],0))=='Perlito5::AST::Apply')&&(p5str((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget('code'))=='circumfix:<( )>'))){(function(){var v_v;(v_v=((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.shift()));if(p5bool((v_arg||(v_arg=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_)){p5pkg["Perlito5::Grammar::Bareword"].die([[('Too many arguments for '+p5str(v_name))]],null);};(v_arg=(v_v));})();};};};var List_args=[];if((v_arg!=null)){List_args.p5push([v_arg]);(v_has_paren=(1));}
else{if((p5str(v_sig)=='$')){p5pkg["Perlito5::Grammar::Bareword"].die([[('Not enough arguments for '+p5str(v_name))]],null);};if((p5str(v_sig)=='_')){List_args.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Var"],"new",['namespace','','name','_','sigil','$'],1)));};};(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",['code',v_name,'namespace',v_namespace,'arguments',(new p5ArrayRef(List_args)),'bareword',(p5num(v_has_paren)==0)],1))))));throw(p5context([v_m],p5want));})();};if((p5str(v_sig)=='*')){null;};};if((p5pkg["Perlito5::Grammar::Bareword"].substr([v_str,v_p,1],0)=='(')){(function(){(v_m=(p5call(p5pkg["Perlito5::Expression"],"term_paren",[v_str,v_p],0)));if(!(p5bool(v_m))){throw(p5context([v_m],p5want));};var v_arg;(v_arg=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget_array('capture')._array_.p5aget(2)));(v_arg=(p5pkg["Perlito5::Expression"].expand_list([v_arg],0)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",['code',v_name,'namespace',v_namespace,'arguments',v_arg],1))))));throw(p5context([v_m],p5want));})();};var v_m_list;(v_m_list=(p5call(p5pkg["Perlito5::Expression"],"list_parse",[v_str,v_p],0)));var v_list;(v_list=((v_m_list||(v_m_list=new p5HashRef({})))._hash_.p5hget('capture')));if((p5str(v_list)!='*undef*')){(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(['postfix_or_term','funcall',v_namespace,v_name,v_list]))));(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('to',((v_m_list||(v_m_list=new p5HashRef({})))._hash_.p5hget('to')));throw(p5context([v_m_name],p5want));};(v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(['postfix_or_term','funcall_no_params',v_namespace,v_name]))));return(p5context([v_m_name],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){var p5150=p5make_package("Perlito5::Expression");;;p5make_sub("Perlito5::Expression","expand_list",function(List__,p5want){try{var v_param_list;(v_param_list=(List__.shift()));if(((p5str(p5pkg["Perlito5::Expression"].ref([v_param_list],0))=='Perlito5::AST::Apply')&&(p5str(p5call(v_param_list,"code",[],0))=='list:<,>'))){var v_args;(v_args=((new p5ArrayRef([]))));p5for_lex(function(v_v){if((v_v!=null)){(v_args||(v_args=new p5ArrayRef([])))._array_.p5push([v_v]);};},p5list_to_a(p5call(v_param_list,"arguments",[],p5want)._array_),false,"");throw(p5context([v_args],p5want))}
else{if((p5str(v_param_list)=='*undef*')){throw((new p5ArrayRef([])))}
else{throw((new p5ArrayRef([v_param_list])))}}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","block_or_hash",function(List__,p5want){try{var v_o;(v_o=(List__.shift()));if((p5call(v_o,"sig",[],p5want)!=null)){throw(p5context([v_o],p5want));};var v_stmts;(v_stmts=(p5call(v_o,"stmts",[],0)));if((!((v_stmts!=null))||(p5num(((v_stmts||(v_stmts=new p5ArrayRef([])))._array_))==0))){throw(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','circumfix:<{ }>','namespace','','arguments',(new p5ArrayRef([]))),p5want));};if((p5num(((v_stmts||(v_stmts=new p5ArrayRef([])))._array_))!=1)){throw(p5context([v_o],p5want));};var v_stmt;(v_stmt=((v_stmts||(v_stmts=new p5ArrayRef([])))._array_.p5aget(0)));if((p5str(p5pkg["Perlito5::Expression"].ref([v_stmt],0))=='Perlito5::AST::Var')){throw(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','circumfix:<{ }>','namespace','','arguments',(new p5ArrayRef([v_stmt]))),p5want));};if((p5str(p5pkg["Perlito5::Expression"].ref([v_stmt],0))!='Perlito5::AST::Apply')){throw(p5context([v_o],p5want));};if((p5str(p5call(v_stmt,"code",[],0))=='infix:<=>>')){throw(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','circumfix:<{ }>','namespace','','arguments',(new p5ArrayRef([v_stmt]))),p5want));};if((p5str(p5call(v_stmt,"code",[],0))!='list:<,>')){throw(p5context([v_o],p5want));};p5for_lex(function(v_item){if(((p5str(p5pkg["Perlito5::Expression"].ref([v_item],0))=='Perlito5::AST::Apply')&&(p5str(p5call(v_item,"code",[],0))=='infix:<=>>'))){throw(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','circumfix:<{ }>','namespace','','arguments',p5pkg["Perlito5::Expression"].expand_list([v_stmt],1)),p5want));};},p5list_to_a(p5call(v_stmt,"arguments",[],p5want)._array_),false,"");return(p5context([v_o],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","pop_term",function(List__,p5want){try{var v_num_stack;(v_num_stack=(List__.shift()));var v_v;(v_v=((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.pop()));if((p5str(p5pkg["Perlito5::Expression"].ref([v_v],0))=='ARRAY')){if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='methcall_no_params')){(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',null,'method',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'arguments',(new p5ArrayRef([]))),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='funcall_no_params')){(v_v=(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(3),'namespace',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'arguments',(new p5ArrayRef([])),'bareword',1),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='methcall')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(3)),0)));(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',null,'method',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'arguments',v_param_list),0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='funcall')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(4)),0)));(v_v=(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(3),'arguments',v_param_list,'namespace',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='( )')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));(v_v=(p5call(p5pkg["Perlito5::AST::Apply"],"new",['code','circumfix:<( )>','arguments',v_param_list,'namespace',''],0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='[ ]')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));(v_v=(p5call(p5pkg["Perlito5::AST::Apply"],"new",['code','circumfix:<[ ]>','arguments',v_param_list,'namespace',''],0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='block')){(v_v=(p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'sig',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(3)),0)));(v_v=(p5pkg["Perlito5::Expression"].block_or_hash([v_v],0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='.( )')){(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',null,'method','postcircumfix:<( )>','arguments',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='.[ ]')){(v_v=(p5call(p5pkg["Perlito5::AST::Index"],"new",p5list_to_a('obj',null,'index_exp',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='.{ }')){(v_v=(p5call(p5pkg["Perlito5::AST::Lookup"],"new",p5list_to_a('obj',null,'index_exp',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));};throw((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1));};return(p5context([v_v],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","reduce_postfix",function(List__,p5want){try{var v_op;(v_op=(List__.shift()));var v_value;(v_value=(List__.shift()));var v_v;(v_v=(v_op));if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='methcall_no_params')){(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',v_value,'method',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'arguments',(new p5ArrayRef([]))),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='funcall_no_params')){p5pkg["Perlito5::Expression"].die([['unexpected function call']],null);};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='methcall')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(3)),0)));(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',v_value,'method',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'arguments',v_param_list),0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='funcall')){p5pkg["Perlito5::Expression"].die([['unexpected function call']],null);};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='( )')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));if(((p5str(p5pkg["Perlito5::Expression"].ref([v_value],0))=='Perlito5::AST::Apply')&&!((p5call(v_value,"arguments",[],p5want)!=null)))){(v_value||(v_value=new p5HashRef({})))._hash_.p5hset('arguments',(v_param_list));throw(p5context([v_value],p5want));};if(((p5str(p5pkg["Perlito5::Expression"].ref([v_value],0))=='Perlito5::AST::Call')&&!((p5call(v_value,"arguments",[],p5want)!=null)))){(v_value||(v_value=new p5HashRef({})))._hash_.p5hset('arguments',(v_param_list));throw(p5context([v_value],p5want));};(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",['invocant',v_value,'method','postcircumfix:<( )>','arguments',v_param_list],0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='[ ]')){(v_v=(p5call(p5pkg["Perlito5::AST::Index"],"new",p5list_to_a('obj',v_value,'index_exp',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='block')){(v_v=(p5call(p5pkg["Perlito5::AST::Lookup"],"new",p5list_to_a('obj',v_value,'index_exp',(p5context([(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)],0)||(p5context([(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)],0)=new p5ArrayRef([])))._array_.p5aget(0)),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='.( )')){(function(){var v_param_list;(v_param_list=(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",['invocant',v_value,'method','postcircumfix:<( )>','arguments',v_param_list],0)));throw(p5context([v_v],p5want));})();};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='.[ ]')){(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',v_value,'method','postcircumfix:<[ ]>','arguments',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1))=='.{ }')){(v_v=(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('invocant',v_value,'method','postcircumfix:<{ }>','arguments',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2)),0)));throw(p5context([v_v],p5want));};(v_op||(v_op=new p5ArrayRef([])))._array_.p5push([v_value]);return(p5context([v_op],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var v_reduce_to_ast;(v_reduce_to_ast=(function(List__,p5want){try{var v_op_stack;(v_op_stack=(List__.shift()));var v_num_stack;(v_num_stack=(List__.shift()));var v_last_op;(v_last_op=((v_op_stack||(v_op_stack=new p5ArrayRef([])))._array_.shift()));if((p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(0))=='prefix')){return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace','','code',('prefix:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1))))),1))));}
else{if((p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(0))=='postfix')){return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace','','code',('postfix:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1))))),1))));}
else{if((p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(0))=='postfix_or_term')){return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5pkg["Perlito5::Expression"].reduce_postfix(p5list_to_a(v_last_op,p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1)),1))));}
else{if(p5bool(p5pkg["Perlito5::Precedence"].is_assoc_type(p5list_to_a('list',(v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1)),0))){var v_arg;if((p5num(((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_))<2)){(function(){var v_v2;(v_v2=(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],0)));if(((p5str(p5pkg["Perlito5::Expression"].ref([v_v2],0))=='Perlito5::AST::Apply')&&(p5str(p5call(v_v2,"code",[],0))==('list:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>')))){(v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace',p5call(v_v2,"namespace",[],1),'code',p5call(v_v2,"code",[],1),'arguments',(new p5ArrayRef(p5list_to_a(p5call(v_v2,"arguments",[],p5want)._array_,null)))),1)));}
else{(v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace','','code',('list:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',(new p5ArrayRef(p5list_to_a(v_v2,null)))),1)));};throw(p5context([],p5want));})();}
else{(function(){var v_v2;(v_v2=(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],0)));(v_arg=((new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1),v_v2)))));})();};if((((p5str(p5pkg["Perlito5::Expression"].ref([(v_arg||(v_arg=new p5ArrayRef([])))._array_.p5aget(0)],0))=='Perlito5::AST::Apply')&&(p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(0))=='infix'))&&(p5str(p5call((v_arg||(v_arg=new p5ArrayRef([])))._array_.p5aget(0),"code",[],0))==('list:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>')))){(v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace','','code',p5call(p5context([(v_arg||(v_arg=new p5ArrayRef([])))._array_.p5aget(0)],0),"code",[],1),'arguments',(new p5ArrayRef(p5list_to_a(p5call(p5context([(v_arg||(v_arg=new p5ArrayRef([])))._array_.p5aget(0)],0),"arguments",[],p5want)._array_,(v_arg||(v_arg=new p5ArrayRef([])))._array_.p5aget(1))))),1)));throw(p5context([],p5want));};return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",['namespace','','code',('list:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',v_arg],1))));}
else{if(p5bool(p5pkg["Perlito5::Precedence"].is_assoc_type(p5list_to_a('chain',(v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1)),0))){if((p5num(((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_))<2)){p5pkg["Perlito5::Expression"].die([[('Missing value after operator '+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1)))]],null);};var v_v2;(v_v2=(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],0)));var v_arg;(v_arg=((new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1),v_v2)))));return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",['namespace','','code',('infix:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',v_arg],1))));}
else{if((p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(0))=='ternary')){if((p5num(((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_))<2)){p5pkg["Perlito5::Expression"].die([['Missing value after ternary operator']],null);};var v_v2;(v_v2=(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],0)));return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace','','code',('ternary:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1),(v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(2),v_v2)))),1))));}
else{if((p5num(((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_))<2)){p5pkg["Perlito5::Expression"].die([[('missing value after operator '+String.fromCharCode(39)+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+String.fromCharCode(39))]],null);};var v_v2;(v_v2=(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],0)));return((v_num_stack||(v_num_stack=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('namespace','','code',('infix:<'+p5str((v_last_op||(v_last_op=new p5ArrayRef([])))._array_.p5aget(1))+'>'),'arguments',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Expression"].pop_term([v_num_stack],1),v_v2)))),1))));}}}}}}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}}));p5make_sub("Perlito5::Expression","term_arrow",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([p5and(('->'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5or(p5or(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('('==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','.( )',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('paren_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5context([p5and(('['==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"square_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('square_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((']'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','.[ ]',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('square_parse')),1))))));return(p5context([1],p5want));})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5context([p5and(('{'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"curly_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('curly_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','.{ }',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('curly_parse')),1))))));return(p5context([1],p5want));})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5context([p5and(('$'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('('==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','methcall',p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','$','namespace','','name',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.ident')),1)),1),p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('paren_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','methcall_no_params',p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil','$','namespace','','name',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.ident')),1)),1))))));return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"full_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.full_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('('==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','methcall',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.full_ident')),1),p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('paren_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','methcall_no_params',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.full_ident')),1))))));return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_digit",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"val_num",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.val_num',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.val_num')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"val_int",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.val_int',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.val_int')),1))))));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_ternary",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('?'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"ternary5_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('ternary5_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((':'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('op','? :',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('ternary5_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_paren",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('('==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','( )',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('paren_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_square",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('['==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"square_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('square_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((']'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','[ ]',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('square_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_curly",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('{'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('postfix_or_term','block',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","declarator",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5or(p5context([(function(){return(p5and(('my'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('state'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),5],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((5+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('our'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),3],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((3+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('local'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),5],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((5+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_declarator",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"declarator",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('declarator',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"opt_type",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.opt_type',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"var_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.var_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_decl;(v_decl=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('declarator')),0)));var v_type;(v_type=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.opt_type')),0)));var v_var;(v_var=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('Perlito5::Grammar.var_ident')._hash_.p5hget('capture')));if((p5str(v_decl)=='local')){(v_MATCH=(p5call(p5pkg["Perlito5::Grammar::String"],"double_quoted_var_with_subscript",p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.var_ident')),0)));(v_var=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('capture')));};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Decl"],"new",['decl',v_decl,'type',v_type,'var',v_var],1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_return",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('return'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),6],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((6+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"list_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('list_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_args;(v_args=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('list_parse')),0)));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','return','arguments',((p5str(v_args)=='*undef*')?(new p5ArrayRef([])):(new p5ArrayRef([v_args]))),'namespace',''),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_anon_sub",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('sub'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),3],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((3+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"anon_sub_def",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.anon_sub_def',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.anon_sub_def')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_do",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5context([p5and(('do'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('{'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?v_tmp:0))));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"statement_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('statement_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Do"],"new",p5list_to_a('block',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('statement_parse')),1)),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_package",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('package'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),7],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((7+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"full_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.full_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_name;(v_name=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.full_ident')),0)));(p5pkg["Perlito5"]["v_PKG_NAME"]=(v_name));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','package','arguments',(new p5ArrayRef([])),'namespace',v_name),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_eval",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5context([p5and(('eval'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),4],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((4+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('{'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?v_tmp:0))));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"term_curly",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('term_curly',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','eval','arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Do"],"new",p5list_to_a('block',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)),1)),1)))),'namespace',''),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","map_or_sort",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){return(p5and(('map'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),3],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((3+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('sort'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),4],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((4+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('grep'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),4],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((4+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","term_map_or_sort",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"map_or_sort",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('map_or_sort',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('{'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?v_tmp:0))));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"term_curly",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('term_curly',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"list_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('list_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('map_or_sort')),1),'arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('term_curly')._hash_.p5hget_array('capture')._array_.p5aget(2)),1),(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('list_parse')._hash_.p5hget('capture')),p5want)||(p5pkg["Perlito5::Expression"].expand_list(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('list_parse')._hash_.p5hget('capture')),p5want)=new p5ArrayRef([])))._array_))),'namespace',''),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});var v_Argument_end_token;(v_Argument_end_token=((new p5HashRef({':':1,']':1,')':1,'}':1,';':1,',':1,'<':1,'>':1,'=':1,'|':1,'^':1,'?':1,'or':1,'if':1,'=>':1,'lt':1,'le':1,'gt':1,'ge':1,'<=':1,'>=':1,'==':1,'!=':1,'ne':1,'eq':1,'..':1,'~~':1,'&&':1,'||':1,'+=':1,'-=':1,'*=':1,'/=':1,'x=':1,'|=':1,'&=':1,'.=':1,'^=':1,'%=':1,'//':1,'for':1,'and':1,'xor':1,'...':1,'<=>':1,'cmp':1,'<<=':1,'>>=':1,'||=':1,'&&=':1,'//=':1,'**=':1,'when':1,'while':1,'unless':1,'foreach':1}))));var v_Argument_end_token_chars;(v_Argument_end_token_chars=((new p5ArrayRef([7,6,5,4,3,2,1]))));var v_List_end_token;(v_List_end_token=((new p5HashRef({':':1,']':1,')':1,'}':1,';':1,'or':1,'if':1,'for':1,'and':1,'xor':1,'else':1,'when':1,'while':1,'elsif':1,'unless':1,'foreach':1}))));var v_List_end_token_chars;(v_List_end_token_chars=((new p5ArrayRef([7,6,5,4,3,2,1]))));var v_Expr_end_token;(v_Expr_end_token=((new p5HashRef({']':1,')':1,'}':1,';':1,'if':1,'for':1,'else':1,'when':1,'while':1,'elsif':1,'unless':1,'foreach':1}))));var v_Expr_end_token_chars;(v_Expr_end_token_chars=((new p5ArrayRef([7,6,5,4,3,2,1]))));p5make_sub("Perlito5::Expression","op_parse_spc",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_last_is_term;(v_last_is_term=(List__.p5aget(3)));var v_m;(v_m=(p5call(p5pkg["Perlito5::Precedence"],"op_parse",[v_str,v_pos,v_last_is_term],0)));if(!(p5bool(v_m))){throw(p5context([v_m],p5want));};var v_spc;(v_spc=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_spc)){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('to',((v_spc||(v_spc=new p5HashRef({})))._hash_.p5hget('to')));};return(p5context([v_m],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","argument_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_expr;var v_last_pos;(v_last_pos=(v_pos));var v_is_first_token;(v_is_first_token=(1));var v_lexer_stack;(v_lexer_stack=((new p5ArrayRef([]))));var v_last_token_was_space;(v_last_token_was_space=(1));var v_get_token;(v_get_token=(function(List__,p5want){try{var v_last_is_term;(v_last_is_term=(List__.p5aget(0)));var v_v;if(p5bool(((v_lexer_stack||(v_lexer_stack=new p5ArrayRef([])))._array_))){(v_v=((v_lexer_stack||(v_lexer_stack=new p5ArrayRef([])))._array_.pop()));if(((p5bool(v_is_first_token)&&(p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))=='op'))&&!(p5bool(p5pkg["Perlito5::Precedence"].is_fixity_type(p5list_to_a('prefix',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1)),0))))){(v_v||(v_v=new p5ArrayRef([])))._array_.p5aset(0,('end'));};}
else{(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Expression"],"op_parse_spc",[v_str,v_last_pos,v_last_is_term],0)));if(!(p5bool(v_m))){throw((new p5ArrayRef(['end','*end*'])));};(v_v=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')));if(((p5bool(v_is_first_token)&&(p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))=='op'))&&!(p5bool(p5pkg["Perlito5::Precedence"].is_fixity_type(p5list_to_a('prefix',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1)),0))))){(v_v||(v_v=new p5ArrayRef([])))._array_.p5aset(0,('end'));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))!='end')){(v_last_pos=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};})();};(v_last_token_was_space=(p5context([(p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))=='space')],0)));(v_is_first_token=(0));return(p5context([v_v],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}}));var v_prec;(v_prec=(p5call(p5pkg["Perlito5::Precedence"],"new",['get_token',v_get_token,'reduce',v_reduce_to_ast,'end_token',v_Argument_end_token,'end_token_chars',v_Argument_end_token_chars],0)));var v_res;(v_res=(p5call(v_prec,"precedence_parse",[],0)));if((p5num(((v_res||(v_res=new p5ArrayRef([])))._array_))==0)){throw((new p5HashRef({'str':v_str,'from':v_pos,'to':v_last_pos,'capture':'*undef*'})));};var v_result;(v_result=(p5pkg["Perlito5::Expression"].pop_term([v_res],0)));return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_last_pos,'capture':v_result})));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","list_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_expr;var v_last_pos;(v_last_pos=(v_pos));var v_is_first_token;(v_is_first_token=(1));var v_lexer_stack;(v_lexer_stack=((new p5ArrayRef([]))));var v_last_token_was_space;(v_last_token_was_space=(1));var v_get_token;(v_get_token=(function(List__,p5want){try{var v_last_is_term;(v_last_is_term=(List__.p5aget(0)));var v_v;if(p5bool(((v_lexer_stack||(v_lexer_stack=new p5ArrayRef([])))._array_))){(v_v=((v_lexer_stack||(v_lexer_stack=new p5ArrayRef([])))._array_.pop()));if(((p5bool(v_is_first_token)&&(p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))=='op'))&&!(p5bool(p5pkg["Perlito5::Precedence"].is_fixity_type(p5list_to_a('prefix',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1)),0))))){(v_v||(v_v=new p5ArrayRef([])))._array_.p5aset(0,('end'));};}
else{(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Expression"],"op_parse_spc",[v_str,v_last_pos,v_last_is_term],0)));if(!(p5bool(v_m))){throw((new p5ArrayRef(['end','*end*'])));};(v_v=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')));if(((p5bool(v_is_first_token)&&(p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))=='op'))&&!(p5bool(p5pkg["Perlito5::Precedence"].is_fixity_type(p5list_to_a('prefix',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(1)),0))))){(v_v||(v_v=new p5ArrayRef([])))._array_.p5aset(0,('end'));};if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))!='end')){(v_last_pos=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};})();};(v_last_token_was_space=(p5context([(p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))=='space')],0)));(v_is_first_token=(0));return(p5context([v_v],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}}));var v_prec;(v_prec=(p5call(p5pkg["Perlito5::Precedence"],"new",['get_token',v_get_token,'reduce',v_reduce_to_ast,'end_token',v_List_end_token,'end_token_chars',v_List_end_token_chars],0)));var v_res;(v_res=(p5call(v_prec,"precedence_parse",[],0)));if((p5num(((v_res||(v_res=new p5ArrayRef([])))._array_))==0)){throw((new p5HashRef({'str':v_str,'from':v_pos,'to':v_last_pos,'capture':'*undef*'})));};var v_result;(v_result=(p5pkg["Perlito5::Expression"].pop_term([v_res],0)));return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_last_pos,'capture':v_result})));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","circumfix_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(List__.p5aget(3)));var v_expr;var v_last_pos;(v_last_pos=(v_pos));var v_get_token;(v_get_token=(function(List__,p5want){var v_last_is_term;(v_last_is_term=(List__.p5aget(0)));var v_m;(v_m=(p5call(p5pkg["Perlito5::Expression"],"op_parse_spc",[v_str,v_last_pos,v_last_is_term],0)));if(!(p5bool(v_m))){p5pkg["Perlito5::Expression"].die([['Expected closing delimiter: ',v_delimiter,' near ',v_last_pos]],null);};var v_v;(v_v=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')));if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))!='end')){(v_last_pos=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};return(p5context([v_v],p5want));}));var Hash_delim_token={};Hash_delim_token.p5hset(p5str(v_delimiter),(1));var v_prec;(v_prec=(p5call(p5pkg["Perlito5::Precedence"],"new",p5list_to_a('get_token',v_get_token,'reduce',v_reduce_to_ast,'end_token',(new p5HashRef(Hash_delim_token)),'end_token_chars',(new p5ArrayRef([p5pkg["Perlito5::Expression"].length([v_delimiter],1)]))),0)));var v_res;(v_res=(p5call(v_prec,"precedence_parse",[],0)));(v_res=(p5pkg["Perlito5::Expression"].pop_term([v_res],0)));if(!((v_res!=null))){(v_res=('*undef*'));};return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_last_pos,'capture':v_res})));});p5make_sub("Perlito5::Expression","ternary5_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));return(p5call(v_self,"circumfix_parse",[v_str,v_pos,':'],p5want));});p5make_sub("Perlito5::Expression","curly_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));return(p5call(v_self,"circumfix_parse",[v_str,v_pos,'}'],p5want));});p5make_sub("Perlito5::Expression","square_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));return(p5call(v_self,"circumfix_parse",[v_str,v_pos,']'],p5want));});p5make_sub("Perlito5::Expression","paren_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));return(p5call(v_self,"circumfix_parse",[v_str,v_pos,')'],p5want));});p5make_sub("Perlito5::Expression","exp_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_expr;var v_last_pos;(v_last_pos=(v_pos));var v_lexer_stack;(v_lexer_stack=((new p5ArrayRef([]))));var v_get_token;(v_get_token=(function(List__,p5want){try{var v_last_is_term;(v_last_is_term=(List__.p5aget(0)));var v_v;if(p5bool(((v_lexer_stack||(v_lexer_stack=new p5ArrayRef([])))._array_))){(v_v=((v_lexer_stack||(v_lexer_stack=new p5ArrayRef([])))._array_.pop()));}
else{(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Expression"],"op_parse_spc",[v_str,v_last_pos,v_last_is_term],0)));if(!(p5bool(v_m))){throw((new p5ArrayRef(['end','*end*'])));};(v_v=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')));if((p5str((v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(0))!='end')){(v_last_pos=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};})();};return(p5context([v_v],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}}));var v_prec;(v_prec=(p5call(p5pkg["Perlito5::Precedence"],"new",['get_token',v_get_token,'reduce',v_reduce_to_ast,'end_token',v_Expr_end_token,'end_token_chars',v_Expr_end_token_chars],0)));var v_res;(v_res=(p5call(v_prec,"precedence_parse",[],0)));if((p5num(((v_res||(v_res=new p5ArrayRef([])))._array_))==0)){throw(p5context([0],p5want));};var v_result;(v_result=(p5pkg["Perlito5::Expression"].pop_term([v_res],0)));return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_last_pos,'capture':v_result})));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var List_Statement_chars=[];(List_Statement_chars=[9,8,7,6,5,4,3,2,1]);var Hash_Statement={};(Hash_Statement={'if':function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar"],"if",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'for':function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar"],"for",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'when':function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar"],"when",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'while':function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar"],"while",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'given':function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar"],"given",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));},'unless':function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar"],"unless",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}});p5make_sub("Perlito5::Expression","add_statement",function(List__,p5want){var v_name;(v_name=(List__.shift()));var v_param;(v_param=(List__.shift()));return(Hash_Statement.p5hset(p5str(v_name),(v_param)));});p5make_sub("Perlito5::Expression","exp_stmt",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));p5for_lex(function(v_len){var v_term;(v_term=(p5pkg["Perlito5::Expression"].substr([v_str,v_pos,v_len],0)));if((Hash_Statement).hasOwnProperty(v_term)){(function(){var v_m;(v_m=((Hash_Statement.p5hget(p5str(v_term)))([v_str,v_pos],0)));if(p5bool(v_m)){throw(p5context([v_m],p5want));};})();};},p5list_to_a(List_Statement_chars),false,"");return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var List_Modifier_chars=[];(List_Modifier_chars=[7,6,5,4,3,2]);var Hash_Modifier={};(Hash_Modifier={'if':1,'unless':1,'when':1,'for':1,'foreach':1,'while':1,'when':1});p5make_sub("Perlito5::Expression","statement_modifier",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_expression;(v_expression=(List__.p5aget(3)));p5for_lex(function(v_len){var v_term;(v_term=(p5pkg["Perlito5::Expression"].substr([v_str,v_pos,v_len],0)));if((Hash_Modifier).hasOwnProperty(v_term)){(function(){var v_m;(v_m=(p5call(v_self,"modifier",[v_str,(p5num(v_pos)+p5num(v_len)),v_term,v_expression],0)));if(p5bool(v_m)){throw(p5context([v_m],p5want));};})();};},p5list_to_a(List_Modifier_chars),false,"");return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","modifier",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_modifier;(v_modifier=(List__.p5aget(3)));var v_expression;(v_expression=(List__.p5aget(4)));var v_modifier_exp;(v_modifier_exp=(p5call(v_self,"exp_parse",[v_str,v_pos],0)));if(!(p5bool(v_modifier_exp))){p5pkg["Perlito5::Expression"].die([p5list_to_a('Expected expression after '+String.fromCharCode(39),p5pkg["Perlito5::Match"].flat([v_modifier],1),String.fromCharCode(39))],null);};if((p5str(v_modifier)=='if')){throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(v_modifier_exp||(v_modifier_exp=new p5HashRef({})))._hash_.p5hget('to'),'capture',p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat([v_modifier_exp],1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([v_expression]))),1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),1)),1))))));};if((p5str(v_modifier)=='unless')){throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(v_modifier_exp||(v_modifier_exp=new p5HashRef({})))._hash_.p5hget('to'),'capture',p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat([v_modifier_exp],1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([v_expression]))),1)),1))))));};if((p5str(v_modifier)=='when')){throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(v_modifier_exp||(v_modifier_exp=new p5HashRef({})))._hash_.p5hget('to'),'capture',p5call(p5pkg["Perlito5::AST::When"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat([v_modifier_exp],1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([v_expression]))),1)),1))))));};if((p5str(v_modifier)=='while')){throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(v_modifier_exp||(v_modifier_exp=new p5HashRef({})))._hash_.p5hget('to'),'capture',p5call(p5pkg["Perlito5::AST::While"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat([v_modifier_exp],1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([v_expression]))),1),'continue',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),1)),1))))));};if(((p5str(v_modifier)=='for')||(p5str(v_modifier)=='foreach'))){throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(v_modifier_exp||(v_modifier_exp=new p5HashRef({})))._hash_.p5hget('to'),'capture',p5call(p5pkg["Perlito5::AST::For"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat([v_modifier_exp],1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([v_expression]))),1),'continue',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),1)),1))))));};return(p5pkg["Perlito5::Expression"].die([[('Unexpected statement modifier '+String.fromCharCode(39)+p5str(v_modifier)+String.fromCharCode(39))]],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Expression","delimited_statement",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and((';'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"statement_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('statement_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){return(p5and((';'==p5pkg["Perlito5::Expression"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('statement_parse')._hash_.p5hget('capture')));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Expression","statement_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_res;(v_res=(p5call(v_self,"exp_stmt",[v_str,v_pos],0)));if(p5bool(v_res)){throw(p5context([v_res],p5want));};(v_res=(p5call(v_self,"exp_parse",[v_str,v_pos],0)));if(!(p5bool(v_res))){throw(p5context([],p5want));};if((((p5pkg["Perlito5::Expression"].substr([v_str,(v_res||(v_res=new p5HashRef({})))._hash_.p5hget('to'),1],0)==':')&&p5bool(p5call((v_res||(v_res=new p5HashRef({})))._hash_.p5hget('capture'),"isa",['Perlito5::AST::Apply'],0)))&&p5bool((v_res||(v_res=new p5HashRef({})))._hash_.p5hget_hash('capture')._hash_.p5hget('bareword')))){(function(){var v_label;(v_label=((v_res||(v_res=new p5HashRef({})))._hash_.p5hget_hash('capture')._hash_.p5hget('code')));var v_ws;(v_ws=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",[v_str,(p5num((v_res||(v_res=new p5HashRef({})))._hash_.p5hget('to'))+1)],0)));var v_stmt;(v_stmt=(p5call(v_self,"statement_parse",p5list_to_a(v_str,(v_ws||(v_ws=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_stmt)){(v_stmt||(v_stmt=new p5HashRef({})))._hash_.p5hget_hash('capture')._hash_.p5hset('label',(v_label));throw(p5context([v_stmt],p5want));};(v_res||(v_res=new p5HashRef({})))._hash_.p5hset('to',((v_ws||(v_ws=new p5HashRef({})))._hash_.p5hget('to')));(v_res||(v_res=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef([])),'code','undef','namespace','','label',v_label),0)));throw(p5context([v_res],p5want));})();};var v_modifier;(v_modifier=(p5call(v_self,"statement_modifier",p5list_to_a(v_str,(v_res||(v_res=new p5HashRef({})))._hash_.p5hget('to'),p5pkg["Perlito5::Match"].flat([v_res],1)),0)));var v_p;(v_p=((p5bool(v_modifier)?(v_modifier||(v_modifier=new p5HashRef({})))._hash_.p5hget('to'):(v_res||(v_res=new p5HashRef({})))._hash_.p5hget('to'))));var v_terminator;(v_terminator=(p5pkg["Perlito5::Expression"].substr([v_str,v_p,1],0)));if((((p5str(v_terminator)!=';')&&(p5str(v_terminator)!='}'))&&(p5str(v_terminator)!=''))){p5pkg["Perlito5::Expression"].die([['Number or Bareword found where operator expected']],null);};if(!(p5bool(v_modifier))){throw(p5context([v_res],p5want));};return(p5context([v_modifier],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){var p5151=p5make_package("Perlito5::Grammar");p5make_sub("Perlito5::Grammar","unless",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('u'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([p5and(('n'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('l'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('s'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('s'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"term_paren",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.term_paren',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"term_curly",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.term_curly',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('l'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('s'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_body;(v_body=((p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)));if(!((v_body!=null))){p5pkg["Perlito5::Grammar"].die([['Missing code block in '+String.fromCharCode(39)+'if'+String.fromCharCode(39)]],null);};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)=new p5ArrayRef([])))._array_.p5aget(2),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5or(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),0),function(){return(new p5ArrayRef([]))})),1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",['stmts',v_body],1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_body;(v_body=((p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)));if(!((v_body!=null))){p5pkg["Perlito5::Grammar"].die([['Missing code block in '+String.fromCharCode(39)+'unless'+String.fromCharCode(39)]],null);};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)=new p5ArrayRef([])))._array_.p5aget(2),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",['stmts',v_body],1)),0)));return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","if",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('i'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([p5and(('f'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"term_paren",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.term_paren',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"term_curly",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.term_curly',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('l'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('s'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_body;(v_body=((p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)));if(!((v_body!=null))){p5pkg["Perlito5::Grammar"].die([['Missing code block in '+String.fromCharCode(39)+'if'+String.fromCharCode(39)]],null);};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)=new p5ArrayRef([])))._array_.p5aget(2),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",['stmts',v_body],1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5or(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),0),function(){return(new p5ArrayRef([]))})),1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('l'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('s'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"if",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('if',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_body;(v_body=((p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)));if(!((v_body!=null))){p5pkg["Perlito5::Grammar"].die([['Missing code block in '+String.fromCharCode(39)+'if'+String.fromCharCode(39)]],null);};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)=new p5ArrayRef([])))._array_.p5aget(2),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",['stmts',v_body],1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('if')),1))))),1)),0)));return(p5context([1],p5want));})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_body;(v_body=((p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)));if(!((v_body!=null))){p5pkg["Perlito5::Grammar"].die([['Missing code block in '+String.fromCharCode(39)+'if'+String.fromCharCode(39)]],null);};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::If"],"new",p5list_to_a('cond',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)=new p5ArrayRef([])))._array_.p5aget(2),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",['stmts',v_body],1),'otherwise',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),1)),0)));return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","when",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('w'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([p5and(('h'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('n'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"term_paren",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.term_paren',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"term_curly",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.term_curly',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_body;(v_body=((p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_curly')),p5want)=new p5ArrayRef([])))._array_.p5aget(2)));if(!((v_body!=null))){p5pkg["Perlito5::Grammar"].die([['Missing code block in '+String.fromCharCode(39)+'when'+String.fromCharCode(39)]],null);};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::When"],"new",p5list_to_a('cond',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)||(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.term_paren')),p5want)=new p5ArrayRef([])))._array_.p5aget(2),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",['stmts',v_body],1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","for",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5context([p5and(('f'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([p5and(('o'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('r'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){return(p5and(('each'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),4],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((4+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([p5and(('m'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('y'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"var_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.var_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('('==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_continue_block",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('opt_continue_block',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::For"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.paren_parse')),1),'topic',null,'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),1),'sig',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.var_ident')),1)),1),'continue',(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('opt_continue_block')._hash_.p5hget('capture')),0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([p5and(('('==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"exp_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.exp_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5and(p5context([p5and((';'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('c_style_for',(1));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0)}),function(){return p5context([p5and((';'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp2",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp2',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([1],p5want));})()],p5want)}));})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts2",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts2',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_continue_block",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('opt_continue_block',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_header;if(p5bool((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('c_style_for'))){(v_header=((new p5ArrayRef(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('Perlito5::Expression.exp_parse')._hash_.p5hget('capture'),(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('Perlito5::Grammar.exp')._hash_.p5hget('capture'),(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('Perlito5::Grammar.exp2')._hash_.p5hget('capture'))))));}
else{(v_header=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('Perlito5::Expression.exp_parse')._hash_.p5hget('capture')));};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::For"],"new",p5list_to_a('cond',v_header,'topic',null,'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts2')),1),'sig',null),1),'continue',(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('opt_continue_block')._hash_.p5hget('capture')),0)));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","while",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('w'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([p5and(('h'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('i'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('l'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('('==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_continue_block",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('opt_continue_block',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::While"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.paren_parse')),1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),1),'sig',null),1),'continue',(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_hash('opt_continue_block')._hash_.p5hget('capture')),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","given",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('g'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([p5and(('i'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('v'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([p5and(('n'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('('==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"paren_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.paren_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Given"],"new",p5list_to_a('cond',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.paren_parse')),1),'body',p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),1),'sig',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.var_ident')),1)),1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","opt_continue_block",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([p5and(('continue'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),8],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((8+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),1),'sig',null),0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([])),'sig',null),0)));return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});})();(function(){null;var p5152=p5make_package("Perlito5::Grammar::String");;p5pkg["Perlito5::Precedence"].add_term([String.fromCharCode(39),function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_q_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['"',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_qq_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['/',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_m_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['<',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_glob",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['<<',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"here_doc_wanted",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['`',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_qx",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['m',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_m_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['q',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_q_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['qq',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_qq_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['qw',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_qw_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['qx',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_qx",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['qr',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_qr_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['s',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_s_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['tr',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_tr_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['y',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::String"],"term_tr_quote",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5make_sub("Perlito5::Grammar::String","term_q_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and(('q'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and((String.fromCharCode(39)==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"q_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('q_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('q_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_qq_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and(('qq'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('"'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"qq_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('qq_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('qq_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_qw_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('qw'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"qw_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('qw_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('qw_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_m_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and(('m'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('/'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"m_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('m_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('m_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_s_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('s'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"s_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('s_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('s_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_qx",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and(('qx'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('`'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"qx_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('qx_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('qx_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_glob",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([p5and(('<'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"glob_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('glob_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('glob_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_tr_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('tr'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('y'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"tr_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('tr_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('tr_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","term_qr_quote",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('qr'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('#'==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)})],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"qr_quote_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('qr_quote_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('qr_quote_parse')),1))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});var Hash_pair={};(Hash_pair=p5a_to_h(['{','}','(',')','[',']','<','>']));var Hash_escape_sequence={};(Hash_escape_sequence={'a':'7','b':'8','e':'27','f':'12','n':'10','r':'13','t':'9'});var Hash_hex={};(Hash_hex=p5a_to_h(p5list_to_a(p5map(p5pkg["Perlito5::Grammar::String"],function(p5want){return((p5context([p5pkg["Perlito5::Grammar::String"]["v__"],1],p5want)));},['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']))));var Hash_octal={};(Hash_octal=p5a_to_h(p5list_to_a(p5map(p5pkg["Perlito5::Grammar::String"],function(p5want){return((p5context([p5pkg["Perlito5::Grammar::String"]["v__"],1],p5want)));},['0','1','2','3','4','5','6','7']))));p5make_sub("Perlito5::Grammar::String","q_quote_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};return(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_delimiter,0],p5want));});p5make_sub("Perlito5::Grammar::String","qq_quote_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};return(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_delimiter,1],p5want));});p5make_sub("Perlito5::Grammar::String","qw_quote_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_m;(v_m=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_delimiter,0],0)));if(p5bool(v_m)){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','list:<,>','arguments',(new p5ArrayRef(p5list_to_a(p5map(p5pkg["Perlito5::Grammar::String"],function(p5want){return(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"]["v__"]],p5want));},p5list_to_a(p5pkg["Perlito5::Grammar::String"].split(p5list_to_a(' ',(p5pkg["Perlito5::Match"].flat([v_m],p5want)||(p5pkg["Perlito5::Match"].flat([v_m],p5want)=new p5HashRef({})))._hash_.p5hget('buf')),1)))))),'namespace',''),0)));};return(p5context([v_m],p5want));});p5make_sub("Perlito5::Grammar::String","m_quote_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));var v_closing_delimiter;(v_closing_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_closing_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_part1;(v_part1=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_closing_delimiter,2],0)));if(p5bool(v_part1)){null;}
else{throw(p5context([v_part1],p5want));};var v_str_regex;(v_str_regex=((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('capture')));var v_p;(v_p=((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('to')));var v_modifiers;(v_modifiers=(''));var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m)){(v_modifiers=(p5pkg["Perlito5::Match"].flat([v_m],0)));(v_part1||(v_part1=new p5HashRef({})))._hash_.p5hset('to',((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};(v_part1||(v_part1=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','p5:m','arguments',(new p5ArrayRef([v_str_regex,v_modifiers])),'namespace',''),0)));return(p5context([v_part1],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","s_quote_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));var v_closing_delimiter;(v_closing_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_closing_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_part1;(v_part1=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_closing_delimiter,1],0)));if(p5bool(v_part1)){null;}
else{throw(p5context([v_part1],p5want));};var v_str_regex;(v_str_regex=(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"].substr([v_str,v_pos,((p5num((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('to'))-p5num(v_pos))-1)],1)],0)));var v_part2;var v_m;var v_p;(v_p=((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('to')));if((Hash_pair).hasOwnProperty(v_delimiter)){(function(){(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",[v_str,v_p],0)));(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));(v_p)++;(v_closing_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_closing_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};(v_part2=(p5call(v_self,"string_interpolation_parse",[v_str,v_p,v_open_delimiter,v_closing_delimiter,1],0)));if(p5bool(v_part2)){null;}
else{throw(p5context([v_part2],p5want));};})();}
else{(v_part2=(p5call(v_self,"string_interpolation_parse",[v_str,v_p,v_open_delimiter,v_closing_delimiter,1],0)));if(p5bool(v_part2)){null;}
else{throw(p5context([v_part2],p5want));};};(v_p=((v_part2||(v_part2=new p5HashRef({})))._hash_.p5hget('to')));var v_modifiers;(v_modifiers=(''));(v_m=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m)){(v_modifiers=(p5pkg["Perlito5::Match"].flat([v_m],0)));(v_part2||(v_part2=new p5HashRef({})))._hash_.p5hset('to',((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};(v_part2||(v_part2=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','p5:s','arguments',(new p5ArrayRef(p5list_to_a(v_str_regex,p5pkg["Perlito5::Match"].flat([v_part2],1),v_modifiers))),'namespace',''),0)));return(p5context([v_part2],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","qr_quote_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));var v_closing_delimiter;(v_closing_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_closing_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_part1;(v_part1=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_closing_delimiter,2],0)));if(p5bool(v_part1)){null;}
else{throw(p5context([v_part1],p5want));};var v_str_regex;(v_str_regex=((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('capture')));var v_p;(v_p=((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('to')));var v_modifiers;(v_modifiers=(''));var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m)){(v_modifiers=(p5pkg["Perlito5::Match"].flat([v_m],0)));(v_part1||(v_part1=new p5HashRef({})))._hash_.p5hset('to',((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};(v_part1||(v_part1=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','p5:qr','arguments',(new p5ArrayRef([v_str_regex,v_modifiers])),'namespace',''),0)));return(p5context([v_part1],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","qx_quote_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_m;(v_m=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_delimiter,0],0)));if(p5bool(v_m)){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','qx','arguments',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Match"].flat([v_m],1)))),'namespace',''),0)));};return(p5context([v_m],p5want));});p5make_sub("Perlito5::Grammar::String","glob_quote_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_m;(v_m=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_delimiter,0],0)));if(p5bool(v_m)){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','glob','arguments',(new p5ArrayRef(p5list_to_a(p5pkg["Perlito5::Match"].flat([v_m],1)))),'namespace',''),0)));};return(p5context([v_m],p5want));});p5make_sub("Perlito5::Grammar::String","tr_quote_parse",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)-1),1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));var v_closing_delimiter;(v_closing_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_closing_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};var v_part1;(v_part1=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,v_open_delimiter,v_closing_delimiter,1],0)));if(p5bool(v_part1)){null;}
else{throw(p5context([v_part1],p5want));};var v_str_regex;(v_str_regex=(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"].substr([v_str,v_pos,((p5num((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('to'))-p5num(v_pos))-1)],1)],0)));var v_part2;var v_m;var v_p;(v_p=((v_part1||(v_part1=new p5HashRef({})))._hash_.p5hget('to')));if((Hash_pair).hasOwnProperty(v_delimiter)){(function(){(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",[v_str,v_p],0)));(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_delimiter=(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)));var v_open_delimiter;(v_open_delimiter=(v_delimiter));(v_p)++;(v_closing_delimiter=(v_delimiter));if((Hash_pair).hasOwnProperty(v_delimiter)){(v_closing_delimiter=(Hash_pair.p5hget(p5str(v_delimiter))));};(v_part2=(p5call(v_self,"string_interpolation_parse",[v_str,v_p,v_open_delimiter,v_closing_delimiter,1],0)));if(p5bool(v_part2)){null;}
else{throw(p5context([v_part2],p5want));};})();}
else{(v_part2=(p5call(v_self,"string_interpolation_parse",[v_str,v_p,v_open_delimiter,v_closing_delimiter,1],0)));if(p5bool(v_part2)){null;}
else{throw(p5context([v_part2],p5want));};};(v_p=((v_part2||(v_part2=new p5HashRef({})))._hash_.p5hget('to')));var v_modifiers;(v_modifiers=(''));(v_m=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m)){(v_modifiers=(p5pkg["Perlito5::Match"].flat([v_m],0)));(v_part2||(v_part2=new p5HashRef({})))._hash_.p5hset('to',((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};(v_part2||(v_part2=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','p5:tr','arguments',(new p5ArrayRef(p5list_to_a(v_str_regex,p5pkg["Perlito5::Match"].flat([v_part2],1),v_modifiers))),'namespace',''),0)));return(p5context([v_part2],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","string_interpolation_parse",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_open_delimiter;(v_open_delimiter=(List__.p5aget(3)));var v_delimiter;(v_delimiter=(List__.p5aget(4)));var v_interpolate;(v_interpolate=(List__.p5aget(5)));var v_p;(v_p=(v_pos));var v_balanced;(v_balanced=(p5and(v_open_delimiter,function(){return(Hash_pair).hasOwnProperty(v_open_delimiter)})));var List_args=[];var v_buf;(v_buf=(''));p5while(function(){var v_c;(v_c=(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)));var v_c2;(v_c2=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_p)+1),1],0)));var v_m;var v_more;(v_more=(''));if(((p5bool(v_balanced)&&(p5str(v_c)==String.fromCharCode(92)))&&((p5str(v_c2)==p5str(v_open_delimiter))||(p5str(v_c2)==p5str(v_delimiter))))){(v_p)++;(v_c=(v_c2));}
else{if((p5bool(v_balanced)&&(p5str(v_c)==p5str(v_open_delimiter)))){(v_buf=((p5str(v_buf)+p5str(v_c))));(v_p)++;(v_m=(p5call(v_self,"string_interpolation_parse",[v_str,v_p,v_open_delimiter,v_delimiter,v_interpolate],0)));(v_more=(v_delimiter));}
else{if((p5bool(v_interpolate)&&((p5str(v_c)=='$')||(p5str(v_c)=='@')))){(v_m=(p5call(p5pkg["Perlito5::Grammar::String"],"double_quoted_var",[v_str,v_p,v_delimiter,v_interpolate],0)));}
else{if((p5str(v_c)==String.fromCharCode(92))){if((p5num(v_interpolate)==2)){(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_p,'to',(p5num(v_p)+2),'capture',p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,2],1)],1)))))));}
else{if((p5num(v_interpolate)==1)){(v_m=(p5call(p5pkg["Perlito5::Grammar::String"],"double_quoted_unescape",[v_str,v_p],0)));}
else{(v_m=(((p5str(v_c2)==String.fromCharCode(92))?(new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_p,'to',(p5num(v_p)+2),'capture',p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',String.fromCharCode(92)],1))))):((p5str(v_c2)==String.fromCharCode(39))?(new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_p,'to',(p5num(v_p)+2),'capture',p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',String.fromCharCode(39)],1))))):0))));};};};};};};if(p5bool(v_m)){(function(){var v_obj;(v_obj=(p5pkg["Perlito5::Match"].flat([v_m],0)));if((p5str(p5pkg["Perlito5::Grammar::String"].ref([v_obj],0))=='Perlito5::AST::Val::Buf')){(v_buf=((p5str(v_buf)+p5str((v_obj||(v_obj=new p5HashRef({})))._hash_.p5hget('buf')))));(v_obj=(null));};if(p5bool(v_obj)){if(p5bool(p5pkg["Perlito5::Grammar::String"].length([v_buf],0))){List_args.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_buf],1)));(v_buf=(''));};List_args.p5push([v_obj]);};(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_buf=((p5str(v_buf)+p5str(v_more))));})();}
else{(v_p)++;if(((p5str(v_c)==p5pkg["Perlito5::Grammar::String"].chr([10],0))||(p5str(v_c)==p5pkg["Perlito5::Grammar::String"].chr([13],0)))){(function(){var v_m;(v_m=(p5call(v_self,"here_doc",[v_str,v_p],0)));if((p5num(v_p)!=p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')))){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));}
else{(v_buf=((p5str(v_buf)+p5str(v_c))));};})();}
else{(v_buf=((p5str(v_buf)+p5str(v_c))));};};},function(){return p5and((p5num(v_p)<p5pkg["Perlito5::Grammar::String"].length([v_str],0)),function(){return(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0)],0)!=p5str(v_delimiter))})},false,"");if(p5bool(p5pkg["Perlito5::Grammar::String"].length([v_buf],0))){List_args.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_buf],1)));};if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0)],0)!=p5str(v_delimiter))){p5pkg["Perlito5::Grammar::String"].die([[('Can'+String.fromCharCode(39)+'t find string terminator '+String.fromCharCode(39)+p5str(v_delimiter)+String.fromCharCode(39)+' anywhere before EOF')]],null);};(v_p=((p5num(v_p)+p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0))));var v_ast;if(!(p5bool(List_args.length))){(v_ast=(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',''],0)));}
else{if((p5num(List_args.length)==1)){(v_ast=(List_args.p5aget(0)));}
else{(v_ast=(p5call(p5pkg["Perlito5::AST::Apply"],"new",['namespace','','code','list:<.>','arguments',(new p5ArrayRef(List_args))],0)));};};return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_p,'capture':v_ast})));});var List_Here_doc=[];p5make_sub("Perlito5::Grammar::String","here_doc_wanted",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;var v_type;(v_type=('double_quote'));var v_p;(v_p=(v_pos));if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,2],0)=='<<')){(function(){(v_p=((p5num(v_p)+2)));var v_quote;(v_quote=(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)));if(((p5str(v_quote)==String.fromCharCode(39))||(p5str(v_quote)=='"'))){(function(){(v_p=((p5num(v_p)+1)));var v_m;(v_m=(p5call(v_self,"string_interpolation_parse",[v_str,v_p,v_quote,v_quote,0],0)));if(p5bool(v_m)){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_delimiter=((p5pkg["Perlito5::Match"].flat([v_m],p5want)||(p5pkg["Perlito5::Match"].flat([v_m],p5want)=new p5HashRef({})))._hash_.p5hget('buf')));(v_type=(((p5str(v_quote)==String.fromCharCode(39))?'single_quote':'double_quote')));};})();}
else{(function(){if((p5str(v_quote)==String.fromCharCode(92))){(v_p=((p5num(v_p)+1)));};var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m)){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_delimiter=(p5pkg["Perlito5::Match"].flat([v_m],0)));(v_type=(((p5str(v_quote)==String.fromCharCode(92))?'single_quote':'double_quote')));}
else{p5pkg["Perlito5::Grammar::String"].die([['Use of bare << to mean <<"" is deprecated']],null);};})();};})();};if(!((v_delimiter!=null))){throw(p5context([0],p5want));};var v_placeholder;(v_placeholder=(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','list:<.>','namespace','','arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','list:<.>','namespace','','arguments',(new p5ArrayRef([]))),1))))),0)));List_Here_doc.p5push(p5list_to_a((new p5ArrayRef(p5list_to_a(v_type,(v_placeholder||(v_placeholder=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget_hash(0)._hash_.p5hget('arguments'),v_delimiter)))));return((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',v_p,'capture',(new p5ArrayRef(['term',v_placeholder])))))));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","newline",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and((String.fromCharCode(10)==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){return(p5and((String.fromCharCode(13)==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5context([p5and((String.fromCharCode(13)==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){return(p5and((String.fromCharCode(10)==p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::String","here_doc",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));if(!(p5bool(List_Here_doc.length))){throw((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos})));};var v_p;(v_p=(v_pos));var v_here;(v_here=(List_Here_doc.shift()));var v_type;(v_type=((v_here||(v_here=new p5ArrayRef([])))._array_.p5aget(0)));var v_result;(v_result=((v_here||(v_here=new p5ArrayRef([])))._array_.p5aget(1)));var v_delimiter;(v_delimiter=((v_here||(v_here=new p5ArrayRef([])))._array_.p5aget(2)));if((p5str(v_type)=='single_quote')){p5while(function(){if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0)],0)==p5str(v_delimiter))){(function(){(v_result||(v_result=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"].substr([v_str,v_pos,(p5num(v_p)-p5num(v_pos))],1)],1)));(v_p=((p5num(v_p)+p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0))));var v_m;(v_m=(p5call(v_self,"newline",[v_str,v_p],0)));if(((p5num(v_p)>=p5pkg["Perlito5::Grammar::String"].length([v_str],0))||p5bool(v_m))){if(p5bool(v_m)){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};throw((new p5HashRef({'str':v_str,'from':v_pos,'to':(p5num(v_p)-1)})));};})();};p5while(function(){(v_p)++;},function(){return p5and((p5num(v_p)<p5pkg["Perlito5::Grammar::String"].length([v_str],0)),function(){return p5context([p5and((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)!=p5pkg["Perlito5::Grammar::String"].chr([10],0)),function(){return(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)!=p5pkg["Perlito5::Grammar::String"].chr([13],0))})],0)})},false,"");p5while(function(){(v_p)++;},function(){return p5and((p5num(v_p)<p5pkg["Perlito5::Grammar::String"].length([v_str],0)),function(){return p5context([p5or((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)==p5pkg["Perlito5::Grammar::String"].chr([10],0)),function(){return(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)==p5pkg["Perlito5::Grammar::String"].chr([13],0))})],0)})},false,"");},function(){return(p5num(v_p)<p5pkg["Perlito5::Grammar::String"].length([v_str],0))},false,"");}
else{(function(){var v_m;if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0)],0)==p5str(v_delimiter))){(v_p=((p5num(v_p)+p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0))));(v_m=(p5call(v_self,"newline",[v_str,v_p],0)));if(((p5num(v_p)>=p5pkg["Perlito5::Grammar::String"].length([v_str],0))||p5bool(v_m))){(v_result||(v_result=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',''],1)));if(p5bool(v_m)){(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};throw((new p5HashRef({'str':v_str,'from':v_pos,'to':v_p})));};};(v_m=(p5call(v_self,"string_interpolation_parse",[v_str,v_pos,'',(String.fromCharCode(10)+p5str(v_delimiter)+String.fromCharCode(10)),1],0)));if(p5bool(v_m)){(v_result||(v_result=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5pkg["Perlito5::Match"].flat([v_m],1)));(v_result||(v_result=new p5ArrayRef([])))._array_.p5push(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',String.fromCharCode(10)],1)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('to',((p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'))-1)));throw(p5context([v_m],p5want));};})();};return(p5pkg["Perlito5::Grammar::String"].die([[('Can'+String.fromCharCode(39)+'t find string terminator "'+p5str(v_delimiter)+'" anywhere before EOF')]],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","double_quoted_unescape",function(List__,p5want){var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_c2;(v_c2=(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+1),1],0)));var v_m;if((Hash_escape_sequence).hasOwnProperty(v_c2)){(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(p5num(v_pos)+2),'capture',p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"].chr([Hash_escape_sequence.p5hget(p5str(v_c2))],1)],1)))))));}
else{if((p5str(v_c2)=='c')){(function(){var v_c3;(v_c3=(((p5pkg["Perlito5::Grammar::String"].ord([p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+2),1],0)],0)-p5pkg["Perlito5::Grammar::String"].ord(['A'],0))+1)));if((p5num(v_c3)<0)){(v_c3=((128+p5num(v_c3))));};(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(p5num(v_pos)+3),'capture',p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',p5pkg["Perlito5::Grammar::String"].chr([v_c3],1)],1)))))));})();}
else{if((p5str(v_c2)=='x')){if((p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+2),1],0)=='{')){(function(){var v_p;(v_p=((p5num(v_pos)+3)));p5while(function(){(v_p)++;},function(){return p5and((p5num(v_p)<p5pkg["Perlito5::Grammar::String"].length([v_str],0)),function(){return(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)!='}')})},false,"");var v_tmp;(v_tmp=(p5pkg["Perlito5::Grammar::String"].oct([('0x'+p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+3),(p5num(v_p)-p5num(v_pos))],0))],0)));(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(p5num(v_p)+1),'capture',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Int"],"new",['int',v_tmp],1)))),'code','chr'),1)))))));})();}
else{(function(){var v_p;(v_p=((p5num(v_pos)+2)));if(p5bool(Hash_hex.p5hget(p5str(p5pkg["Perlito5::Grammar::String"].uc([p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)],0))))){(v_p)++;};if(p5bool(Hash_hex.p5hget(p5str(p5pkg["Perlito5::Grammar::String"].uc([p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)],0))))){(v_p)++;};var v_tmp;(v_tmp=(p5pkg["Perlito5::Grammar::String"].oct([('0x'+p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+2),(p5num(v_p)-p5num(v_pos))],0))],0)));(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',v_p,'capture',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Int"],"new",['int',v_tmp],1)))),'code','chr'),1)))))));})();};}
else{if((Hash_octal).hasOwnProperty(v_c2)){(function(){var v_p;(v_p=((p5num(v_pos)+2)));if(p5bool(Hash_octal.p5hget(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)))){(v_p)++;};if(p5bool(Hash_octal.p5hget(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)))){(v_p)++;};var v_tmp;(v_tmp=(p5pkg["Perlito5::Grammar::String"].oct([p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+1),(p5num(v_p)-p5num(v_pos))],0)],0)));(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',v_p,'capture',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Int"],"new",['int',v_tmp],1)))),'code','chr'),1)))))));})();}
else{(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(p5num(v_pos)+2),'capture',p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_c2],1)))))));};};};};return(p5context([v_m],p5want));});p5make_sub("Perlito5::Grammar::String","double_quoted_var_with_subscript",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_m_var;(v_m_var=(List__.p5aget(1)));var v_interpolate;(v_interpolate=(List__.p5aget(2)));var v_str;(v_str=((v_m_var||(v_m_var=new p5HashRef({})))._hash_.p5hget('str')));var v_pos;(v_pos=((v_m_var||(v_m_var=new p5HashRef({})))._hash_.p5hget('to')));var v_p;(v_p=(v_pos));var v_m_index;if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,3],0)=='->[')){(function(){(v_p=((p5num(v_p)+3)));(v_m_index=(p5call(p5pkg["Perlito5::Expression"],"list_parse",[v_str,v_p],0)));if(p5bool(v_m_index)){null;}
else{p5pkg["Perlito5::Grammar::String"].die([['syntax error']],null);};var v_exp;(v_exp=((v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hget('capture')));(v_p=((v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hget('to')));if(((p5str(v_exp)=='*undef*')||(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)!=']'))){p5pkg["Perlito5::Grammar::String"].die([['syntax error']],null);};(v_p)++;(v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('method','postcircumfix:<[ ]>','invocant',(v_m_var||(v_m_var=new p5HashRef({})))._hash_.p5hget('capture'),'arguments',v_exp),0)));(v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hset('to',(v_p));throw(p5call(v_self,"double_quoted_var_with_subscript",[v_m_index,v_interpolate],p5want));})();};if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,3],0)=='->{')){(v_pos=((p5num(v_pos)+2)));(v_m_index=(p5call(p5pkg["Perlito5::Expression"],"term_curly",[v_str,v_pos],0)));if(p5bool(v_m_index)){null;}
else{p5pkg["Perlito5::Grammar::String"].die([['syntax error']],null);};(v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Call"],"new",p5list_to_a('method','postcircumfix:<{ }>','invocant',(v_m_var||(v_m_var=new p5HashRef({})))._hash_.p5hget('capture'),'arguments',(p5pkg["Perlito5::Match"].flat([v_m_index],p5want)||(p5pkg["Perlito5::Match"].flat([v_m_index],p5want)=new p5ArrayRef([])))._array_.p5aget_array(2)._array_.p5aget(0)),0)));throw(p5call(v_self,"double_quoted_var_with_subscript",[v_m_index,v_interpolate],p5want));};if((p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)=='[')){if((p5num(v_interpolate)==2)){(function(){var v_m;(v_m=(p5or(p5or(p5call(p5pkg["Perlito5::Expression"],"term_digit",[v_str,(p5num(v_p)+1)],0),function(){return p5context([p5and((p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_p)+1),1],0)=='-'),function(){return p5call(p5pkg["Perlito5::Expression"],"term_digit",[v_str,(p5num(v_p)+2)],0)})],0)}),function(){return p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",[v_str,(p5num(v_p)+1)],0)})));if(p5bool(v_m)){null;}
else{throw(p5context([v_m_var],p5want));};if((p5pkg["Perlito5::Grammar::String"].substr([v_str,(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'),1],0)==']')){null;}
else{throw(p5context([v_m_var],p5want));};})();};(v_p)++;(v_m_index=(p5call(p5pkg["Perlito5::Expression"],"list_parse",[v_str,v_p],0)));if(p5bool(v_m_index)){(function(){var v_exp;(v_exp=((v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hget('capture')));(v_p=((v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hget('to')));if(((p5str(v_exp)!='*undef*')&&(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_p,1],0)==']'))){(v_p)++;(v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Index"],"new",p5list_to_a('obj',(v_m_var||(v_m_var=new p5HashRef({})))._hash_.p5hget('capture'),'index_exp',v_exp),0)));(v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hset('to',(v_p));throw(p5call(v_self,"double_quoted_var_with_subscript",[v_m_index,v_interpolate],p5want));};})();};};(v_m_index=(p5call(p5pkg["Perlito5::Expression"],"term_curly",[v_str,v_pos],0)));if(p5bool(v_m_index)){(v_m_index||(v_m_index=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Lookup"],"new",p5list_to_a('obj',(v_m_var||(v_m_var=new p5HashRef({})))._hash_.p5hget('capture'),'index_exp',(p5pkg["Perlito5::Match"].flat([v_m_index],p5want)||(p5pkg["Perlito5::Match"].flat([v_m_index],p5want)=new p5ArrayRef([])))._array_.p5aget_array(2)._array_.p5aget(0)),0)));throw(p5call(v_self,"double_quoted_var_with_subscript",[v_m_index,v_interpolate],p5want));};return(p5context([v_m_var],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::String","double_quoted_var",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_delimiter;(v_delimiter=(List__.p5aget(3)));var v_interpolate;(v_interpolate=(List__.p5aget(4)));var v_c;(v_c=(p5pkg["Perlito5::Grammar::String"].substr([v_str,v_pos,1],0)));if(((p5str(v_c)=='$')&&(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+1),1],0)=='{'))){(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",[v_str,v_pos],0)));if(p5bool(v_m)){null;}
else{throw(p5context([v_m],p5want));};var v_var;(v_var=((p5pkg["Perlito5::Match"].flat([v_m],p5want)||(p5pkg["Perlito5::Match"].flat([v_m],p5want)=new p5ArrayRef([])))._array_.p5aget(1)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(v_var));throw(p5context([v_m],p5want));})();}
else{if(((p5str(v_c)=='$')&&(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+1),p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0)],0)!=p5str(v_delimiter)))){(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",[v_str,v_pos],0)));if(p5bool(v_m)){null;}
else{throw(p5context([v_m],p5want));};(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((v_m||(v_m=new p5HashRef({})))._hash_.p5hget_array('capture')._array_.p5aget(1)));throw(p5call(v_self,"double_quoted_var_with_subscript",[v_m,v_interpolate],p5want));})();}
else{if(((p5str(v_c)=='@')&&(p5pkg["Perlito5::Grammar::String"].substr([v_str,(p5num(v_pos)+1),p5pkg["Perlito5::Grammar::String"].length([v_delimiter],0)],0)!=p5str(v_delimiter)))){(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",[v_str,v_pos],0)));if(p5bool(v_m)){null;}
else{throw(p5context([v_m],p5want));};(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((v_m||(v_m=new p5HashRef({})))._hash_.p5hget_array('capture')._array_.p5aget(1)));(v_m=(p5call(v_self,"double_quoted_var_with_subscript",[v_m,v_interpolate],0)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','join','arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',' '],1),(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')))),'namespace',''),0)));throw(p5context([v_m],p5want));})();};};};return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){null;var p5153=p5make_package("Perlito5::Grammar::Sigil");;p5pkg["Perlito5::Precedence"].add_term(['$',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['@',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['%',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['&',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['*',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Sigil"],"term_sigil",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);var Hash_special_var={};(Hash_special_var=p5a_to_h(['$_','','$&','','$`','','$'+String.fromCharCode(39),'','$+','','@+','','%+','','$.','','$/','','$|','','$,','','$'+String.fromCharCode(92),'','$"','','$;','','$%','','$=','','$-','','@-','','%-','','$~','','$^','','$:','','$?','','$!','','%!','','$@','','$$','','$<','','$>','','$(','','$)','','$[','','$]','main','@_','','*_','','*&','','*`','','*'+String.fromCharCode(39),'','*+','','*.','','*/','','*|','','*,','','*'+String.fromCharCode(92),'','*"','','*;','','*%','','*=','','*-','','*~','','*^','','*:','','*?','','*!','','*@','','*$','','*<','','*>','','*(','','*)','','*[','','*]','','*_','','**','','*#','','$#+','','$#-','','$#_','']));p5make_sub("Perlito5::Grammar::Sigil","term_special_var",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_len;(v_len=(0));var v_s;(v_s=(p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_pos,3],0)));if((p5str(v_s)=='$#[')){(v_len=(2));}
else{if((Hash_special_var).hasOwnProperty(v_s)){(v_len=(3));}
else{(v_s=(p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_pos,2],0)));if((Hash_special_var).hasOwnProperty(v_s)){(v_len=(2));};};};if(p5bool(v_len)){(function(){var v_c0;(v_c0=(p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,((p5num(v_pos)+p5num(v_len))-1),1],0)));var v_c1;(v_c1=(p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,(p5num(v_pos)+p5num(v_len)),1],0)));if(((((((p5str(v_c0)=='$')||(p5str(v_c0)=='@'))||(p5str(v_c0)=='%'))||(p5str(v_c0)=='*'))||(p5str(v_c0)=='&'))&&((((((((p5str(v_c1)=='$')||(p5str(v_c1)=='@'))||(p5str(v_c1)=='%'))||(p5str(v_c1)=='*'))||(p5str(v_c1)=='&'))||((p5str(v_c1)>='a')&&(p5str(v_c1)<='z')))||((p5str(v_c1)>='A')&&(p5str(v_c1)<='Z')))||((p5str(v_c1)>='0')&&(p5str(v_c1)<='9'))))){null;}
else{throw((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',(p5num(v_pos)+p5num(v_len)),'capture',(new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil',p5pkg["Perlito5::Grammar::Sigil"].substr([v_s,0,(p5num(v_len)-1)],1),'namespace',Hash_special_var.p5hget(p5str(v_s)),'name',p5pkg["Perlito5::Grammar::Sigil"].substr([v_s,(p5num(v_len)-1),1],1)),1)))))))));};})();};return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var Hash_sigil={};(Hash_sigil={'$':1,'%':1,'@':1,'&':1,'*':1});p5make_sub("Perlito5::Grammar::Sigil","term_sigil",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_c1;(v_c1=(p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_pos,1],0)));if((Hash_sigil).hasOwnProperty(v_c1)){null;}
else{throw(p5context([],p5want));};var v_p;(v_p=((p5num(v_pos)+1)));var v_sigil;(v_sigil=(v_c1));if((p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_pos,2],0)=='$#')){(v_sigil=('$#'));(v_p)++;};var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",[v_str,v_p],0)));(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_c1=(p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_p,1],0)));var v_q;(v_q=((p5num(v_p)+1)));if((p5str(v_c1)=='{')){(function(){var v_p;(v_p=(v_q));(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",[v_str,v_p],0)));(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_m=(p5call(p5pkg["Perlito5::Grammar"],"optional_namespace_before_ident",[v_str,v_p],0)));if(p5bool(v_m)){(function(){var v_n;(v_n=(p5call(p5pkg["Perlito5::Grammar"],"var_name",p5list_to_a(v_str,(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_n)){(function(){var v_spc;(v_spc=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_n||(v_n=new p5HashRef({})))._hash_.p5hget('to')),0)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil',v_sigil,'namespace',p5pkg["Perlito5::Match"].flat([v_m],1),'name',p5pkg["Perlito5::Match"].flat([v_n],1)),0)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('to',((v_spc||(v_spc=new p5HashRef({})))._hash_.p5hget('to')));(v_m=(p5call(p5pkg["Perlito5::Grammar::String"],"double_quoted_var_with_subscript",[v_m],0)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture'))))));(v_spc=(p5call(p5pkg["Perlito5::Grammar::Space"],"opt_ws",p5list_to_a(v_str,(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')),0)));var v_p;(v_p=((v_spc||(v_spc=new p5HashRef({})))._hash_.p5hget('to')));if((p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_p,1],0)=='}')){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('to',((p5num(v_p)+1)));throw(p5context([v_m],p5want));};})();};})();};var v_caret;(v_caret=(p5call(p5pkg["Perlito5::Grammar"],"caret_char",[v_str,v_p],0)));if(p5bool(v_caret)){(function(){var v_p;(v_p=((v_caret||(v_caret=new p5HashRef({})))._hash_.p5hget('to')));var v_name;(v_name=(p5pkg["Perlito5::Match"].flat([v_caret],0)));(v_m=(p5call(p5pkg["Perlito5::Grammar"],"var_name",[v_str,v_p],0)));if(p5bool(v_m)){(v_name=((p5str(v_name)+p5str(p5pkg["Perlito5::Match"].flat([v_m],0)))));(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));};if((p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_p,1],0)=='}')){(v_caret||(v_caret=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_name],1)))),'code',('prefix:<'+p5str(v_sigil)+'>'),'namespace',''),1))))));(v_caret||(v_caret=new p5HashRef({})))._hash_.p5hset('to',((p5num(v_p)+1)));throw(p5context([v_caret],p5want));};})();};(v_m=(p5call(p5pkg["Perlito5::Expression"],"curly_parse",[v_str,v_p],0)));if(p5bool(v_m)){(function(){var v_p;(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));if((p5pkg["Perlito5::Grammar::Sigil"].substr([v_str,v_p,1],0)=='}')){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('to',((p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'))+1)));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('capture')))),'code',('prefix:<'+p5str(v_sigil)+'>'),'namespace',''),1))))));throw(p5context([v_m],p5want));};})();};})();};var v_caret;(v_caret=(p5call(p5pkg["Perlito5::Grammar"],"caret_char",[v_str,v_p],0)));if(p5bool(v_caret)){(function(){var v_name;(v_name=(p5pkg["Perlito5::Match"].flat([v_caret],0)));(v_caret||(v_caret=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::Val::Buf"],"new",['buf',v_name],1)))),'code',('prefix:<'+p5str(v_sigil)+'>'),'namespace',''),1))))));throw(p5context([v_caret],p5want));})();};if((p5str(v_c1)=='$')){(v_m=(p5call(v_self,"term_sigil",[v_str,v_p],0)));if(p5bool(v_m)){(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('arguments',(new p5ArrayRef(p5list_to_a((v_m||(v_m=new p5HashRef({})))._hash_.p5hget_array('capture')._array_.p5aget(1)))),'code',('prefix:<'+p5str(v_sigil)+'>'),'namespace',''),1))))));throw(p5context([v_m],p5want));};};(v_m=(p5call(p5pkg["Perlito5::Grammar"],"optional_namespace_before_ident",[v_str,v_p],0)));if(p5bool(v_m)){(function(){var v_n;(v_n=(p5call(p5pkg["Perlito5::Grammar"],"var_name",p5list_to_a(v_str,(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_n)){(v_n||(v_n=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil',v_sigil,'namespace',p5pkg["Perlito5::Match"].flat([v_m],1),'name',p5pkg["Perlito5::Match"].flat([v_n],1)),1))))));throw(p5context([v_n],p5want));};})();};return(p5call(v_self,"term_special_var",[v_str,v_pos],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){var p5154=p5make_package("Perlito5::Grammar::Use");;;;p5pkg["Perlito5::Precedence"].add_term(['no',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Use"],"term_use",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Precedence"].add_term(['use',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Use"],"term_use",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);var Hash_Perlito_internal_module={};(Hash_Perlito_internal_module={'strict':'Perlito5::strict','warnings':'Perlito5::warnings','utf8':'Perlito5::utf8','bytes':'Perlito5::bytes','encoding':'Perlito5::encoding'});p5make_sub("Perlito5::Grammar::Use","use_decl",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('use'==p5pkg["Perlito5::Grammar::Use"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),3],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((3+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('no'==p5pkg["Perlito5::Grammar::Use"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::Use","term_use",function(List__,p5want){try{var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"use_decl",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('use_decl',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"val_version",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.val_version',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a('term',p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','undef','namespace','','arguments',(new p5ArrayRef([]))),1))))));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"full_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.full_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([p5and(('-'==p5pkg["Perlito5::Grammar::Use"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));if((v_MATCH)._hash_.hasOwnProperty('Perlito5::Grammar.ident')){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_array('Perlito5::Grammar.ident')._array_.p5push([v_m2]);}
else{(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.ident',((new p5ArrayRef([v_m2]))));};return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)}));})()],p5want));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"list_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.list_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_list;(v_list=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.list_parse')),0)));if((p5str(v_list)=='*undef*')){(v_list=(null));}
else{(function(){var v_m;(v_m=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.list_parse')));var v_list_code;(v_list_code=(p5pkg["Perlito5::Grammar::Use"].substr([v_str,(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('from'),(p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'))-p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('from')))],0)));var List_list=[];(List_list=p5list_to_a((function(p5want){var r;p5pkg["main"]["v_@"]="";try{r=eval(perl5_to_js(p5str(v_list_code),"Perlito5::Grammar::Use",(new p5ArrayRef(p5list_to_a((new p5HashRef(p5a_to_h(p5list_to_a('$list_code',(new p5HashRef({'decl':'my'})),'$m',(new p5HashRef({'decl':'my'})),'@list',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$list',(new p5HashRef({'decl':'my'})))))),(new p5HashRef({})),(new p5HashRef(p5a_to_h(p5list_to_a('$pos1',(new p5HashRef({'decl':'my'})))))),(new p5HashRef({})),(new p5HashRef(p5a_to_h(p5list_to_a('$pos1',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$MATCH',(new p5HashRef({'decl':'my'})),'$grammar',(new p5HashRef({'decl':'my'})),'$pos',(new p5HashRef({'decl':'my'})),'$str',(new p5HashRef({'decl':'my'})),'$tmp',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'$_',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'$a',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'$b',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'%Perlito_internal_module',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$_',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$a',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$b',(new p5HashRef({'decl':'our','namespace':'Perlito5'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$@',(new p5HashRef({'decl':'our','namespace':'main'})),'$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'main'})),'$^O',(new p5HashRef({'decl':'our','namespace':'main'})),'$_',(new p5HashRef({'decl':'our','namespace':'main'})),'$a',(new p5HashRef({'decl':'our','namespace':'main'})),'$b',(new p5HashRef({'decl':'our','namespace':'main'})),'$|',(new p5HashRef({'decl':'our','namespace':'main'})),'%ENV',(new p5HashRef({'decl':'our','namespace':'main'})),'%INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@#',(new p5HashRef({'decl':'our','namespace':'main'})),'@ARGV',(new p5HashRef({'decl':'our','namespace':'main'})),'@INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@_',(new p5HashRef({'decl':'my'}))))))))),"list"))}
catch(err){if(err instanceof p5_error||err instanceof Error){p5pkg["main"]["v_@"]=err;try{p5pkg["main"]["v_@"]=p5pkg["main"]["v_@"]+"\n"+err.stack;}
catch(err){}}
else{return(err);}}
return r;})(1)));(v_list=((new p5ArrayRef(List_list))));})();};var v_ast;(v_ast=(p5call(p5pkg["Perlito5::AST::Use"],"new",p5list_to_a('code',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('use_decl')),1),'mod',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.full_ident')),1),'arguments',v_list),0)));p5pkg["Perlito5::Grammar::Use"].parse_time_eval([v_ast],null);(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(['term',v_ast]))));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::Use","parse_time_eval",function(List__,p5want){var v_self;(v_self=(List__.shift()));var v_module_name;(v_module_name=(p5call(v_self,"mod",[],0)));var v_use_or_not;(v_use_or_not=(p5call(v_self,"code",[],0)));var v_arguments;(v_arguments=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')));var v_skip_import;(v_skip_import=(p5and((v_arguments!=null),function(){return(p5num((v_arguments||(v_arguments=new p5ArrayRef([])))._array_)==0)})));if((v_arguments!=null)){null;}
else{(v_arguments=((new p5ArrayRef([]))));};if((p5str(v_module_name)=='feature')){null;}
else{if(p5bool(p5pkg["Perlito5"]["v_EXPAND_USE"])){if((Hash_Perlito_internal_module).hasOwnProperty(v_module_name)){(v_module_name=(Hash_Perlito_internal_module.p5hget(p5str(v_module_name))));};var v_filename;(v_filename=(p5pkg["Perlito5::Grammar::Use"].modulename_to_filename([v_module_name],0)));p5pkg["Perlito5::Grammar::Use"]["require"]([p5str(v_filename),0]);if(!(p5bool(v_skip_import))){if((p5str(v_use_or_not)=='use')){if((p5code_lookup_by_name("Perlito5::Grammar::Use",(p5str(v_module_name)+'::import'))!=null)){(p5pkg["Perlito5"]["v_CALLER"]||(p5pkg["Perlito5"]["v_CALLER"]=new p5ArrayRef([])))._array_.p5unshift(p5list_to_a((new p5ArrayRef([p5pkg["Perlito5"]["v_PKG_NAME"]]))));p5call(v_module_name,"import",p5list_to_a((v_arguments||(v_arguments=new p5ArrayRef([])))._array_),null);return((p5pkg["Perlito5"]["v_CALLER"]||(p5pkg["Perlito5"]["v_CALLER"]=new p5ArrayRef([])))._array_.shift());}
else{null;}}
else{if((p5str(v_use_or_not)=='no')){if((p5code_lookup_by_name("Perlito5::Grammar::Use",(p5str(v_module_name)+'::unimport'))!=null)){(p5pkg["Perlito5"]["v_CALLER"]||(p5pkg["Perlito5"]["v_CALLER"]=new p5ArrayRef([])))._array_.p5unshift(p5list_to_a((new p5ArrayRef([p5pkg["Perlito5"]["v_PKG_NAME"]]))));p5call(v_module_name,"unimport",p5list_to_a((v_arguments||(v_arguments=new p5ArrayRef([])))._array_),null);return((p5pkg["Perlito5"]["v_CALLER"]||(p5pkg["Perlito5"]["v_CALLER"]=new p5ArrayRef([])))._array_.shift());}
else{null;}}
else{null;}}}
else{null;}}
else{null;}}});p5make_sub("Perlito5::Grammar::Use","emit_time_eval",function(List__,p5want){var v_self;(v_self=(List__.shift()));if((p5str(p5call(v_self,"mod",[],0))=='strict')){if((p5str(p5call(v_self,"code",[],0))=='use')){return(p5call(p5pkg["Perlito5::strict"],"import",[],p5want));}
else{if((p5str(p5call(v_self,"code",[],0))=='no')){return(p5call(p5pkg["Perlito5::strict"],"unimport",[],p5want));}
else{null;}}}
else{null;}});p5make_sub("Perlito5::Grammar::Use","modulename_to_filename",function(List__,p5want){var v_s;(v_s=(List__.shift()));v_s=p5str(v_s).replace(/::/g,'/');return(p5context([(p5str(v_s)+'.pm')],p5want));});p5make_sub("Perlito5::Grammar::Use","filename_lookup",function(List__,p5want){try{var v_filename;(v_filename=(List__.shift()));if((p5pkg["main"]["Hash_INC"]).hasOwnProperty(v_filename)){if(p5bool(p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename)))){throw(p5context(['done'],p5want));};p5pkg["Perlito5::Grammar::Use"].die([['Compilation failed in require']],null);};p5for_lex(function(v_prefix){var v_realfilename;(v_realfilename=((p5str(v_prefix)+'/'+p5str(v_filename))));if(p5bool(p5is_file(p5str(v_realfilename)))){p5pkg["main"]["Hash_INC"].p5hset(p5str(v_filename),(v_realfilename));throw(p5context(['todo'],p5want));};},p5list_to_a(p5pkg["main"]["List_INC"],'.'),false,"");return(p5pkg["Perlito5::Grammar::Use"].die([[('Can'+String.fromCharCode(39)+'t locate '+p5str(v_filename)+' in @INC '+'(@INC contains '+p5pkg["Perlito5::Grammar::Use"].join([' ',p5list_to_a(p5pkg["main"]["List_INC"])],0)+').')]],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::Use","expand_use",function(List__,p5want){try{var v_comp_units;(v_comp_units=(List__.shift()));var v_stmt;(v_stmt=(List__.shift()));var v_module_name;(v_module_name=(p5call(v_stmt,"mod",[],0)));if((((p5str(v_module_name)=='strict')||(p5str(v_module_name)=='warnings'))||(p5str(v_module_name)=='feature'))){throw(p5context([],p5want));};if((Hash_Perlito_internal_module).hasOwnProperty(v_module_name)){(v_module_name=(Hash_Perlito_internal_module.p5hget(p5str(v_module_name))));};var v_filename;(v_filename=(p5pkg["Perlito5::Grammar::Use"].modulename_to_filename([v_module_name],0)));if((p5str(p5pkg["Perlito5::Grammar::Use"].filename_lookup([v_filename],0))=='done')){throw(p5context([],p5want));};var v_realfilename;(v_realfilename=(p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename))));var v_source;(v_source=(p5call_sub("Perlito5::IO","slurp",[v_realfilename],0)));var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",[v_source,0],0)));if((p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'))!=p5pkg["Perlito5::Grammar::Use"].length([v_source],0))){p5pkg["Perlito5::Grammar::Use"].die([p5list_to_a('Syntax Error near ',(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'))],null);};return((v_comp_units||(v_comp_units=new p5ArrayRef([])))._array_.p5push(p5list_to_a((p5pkg["Perlito5::Grammar::Use"].add_comp_unit(p5list_to_a((new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::CompUnit"],"new",p5list_to_a('name','main','body',p5pkg["Perlito5::Match"].flat([v_m],1)),1))))),p5want)||(p5pkg["Perlito5::Grammar::Use"].add_comp_unit(p5list_to_a((new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::CompUnit"],"new",p5list_to_a('name','main','body',p5pkg["Perlito5::Match"].flat([v_m],1)),1))))),p5want)=new p5ArrayRef([])))._array_)));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::Use","add_comp_unit",function(List__,p5want){var v_parse;(v_parse=(List__.shift()));var v_comp_units;(v_comp_units=((new p5ArrayRef([]))));p5for_lex(function(v_comp_unit){if((v_comp_unit!=null)){if(p5bool(p5call(v_comp_unit,"isa",['Perlito5::AST::Use'],0))){p5pkg["Perlito5::Grammar::Use"].expand_use([v_comp_units,v_comp_unit],null);}
else{if(p5bool(p5call(v_comp_unit,"isa",['Perlito5::AST::CompUnit'],0))){p5for_lex(function(v_stmt){if(p5bool(p5call(v_stmt,"isa",['Perlito5::AST::Use'],0))){p5pkg["Perlito5::Grammar::Use"].expand_use([v_comp_units,v_stmt],null);};},p5list_to_a(p5call(v_comp_unit,"body",[],p5want)._array_),false,"");};};(v_comp_units||(v_comp_units=new p5ArrayRef([])))._array_.p5push([v_comp_unit]);};},p5list_to_a((v_parse||(v_parse=new p5ArrayRef([])))._array_),false,"");return(p5context([v_comp_units],p5want));});p5make_sub("Perlito5::Grammar::Use","require",function(List__,p5want){try{var v_filename;(v_filename=(List__.shift()));var v_is_bareword;(v_is_bareword=(List__.shift()));if(p5bool(v_is_bareword)){(v_filename=(p5pkg["Perlito5::Grammar::Use"].modulename_to_filename([v_filename],0)));};if((p5str(p5pkg["Perlito5::Grammar::Use"].filename_lookup([v_filename],0))=='done')){throw(p5context([],p5want));};var v_result;(v_result=((function(p5want){var r;p5pkg["main"]["v_@"]="";try{r=eval(perl5_to_js(p5str(p5call_sub("Perlito5::IO","slurp",p5list_to_a(p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename))),0)),"Perlito5::Grammar::Use",(new p5ArrayRef(p5list_to_a((new p5HashRef(p5a_to_h(p5list_to_a('$filename',(new p5HashRef({'decl':'my'})),'$is_bareword',(new p5HashRef({'decl':'my'})),'$result',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'$_',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'$a',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'$b',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Use'})),'%Perlito_internal_module',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$_',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$a',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$b',(new p5HashRef({'decl':'our','namespace':'Perlito5'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$@',(new p5HashRef({'decl':'our','namespace':'main'})),'$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'main'})),'$^O',(new p5HashRef({'decl':'our','namespace':'main'})),'$_',(new p5HashRef({'decl':'our','namespace':'main'})),'$a',(new p5HashRef({'decl':'our','namespace':'main'})),'$b',(new p5HashRef({'decl':'our','namespace':'main'})),'$|',(new p5HashRef({'decl':'our','namespace':'main'})),'%ENV',(new p5HashRef({'decl':'our','namespace':'main'})),'%INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@#',(new p5HashRef({'decl':'our','namespace':'main'})),'@ARGV',(new p5HashRef({'decl':'our','namespace':'main'})),'@INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@_',(new p5HashRef({'decl':'my'}))))))))),""))}
catch(err){if(err instanceof p5_error||err instanceof Error){p5pkg["main"]["v_@"]=err;try{p5pkg["main"]["v_@"]=p5pkg["main"]["v_@"]+"\n"+err.stack;}
catch(err){}}
else{return(err);}}
return r;})(p5want)));if(p5bool(p5pkg["main"]["v_@"])){p5pkg["main"]["Hash_INC"].p5hset(p5str(v_filename),(null));return(p5pkg["Perlito5::Grammar::Use"].die([[p5pkg["main"]["v_@"]]],p5want));}
else{if(!(p5bool(v_result))){(delete p5pkg["main"]["Hash_INC"].p5hget(p5str(v_filename)));if(p5bool(p5pkg["main"]["v_@"])){p5pkg["Perlito5::Grammar::Use"].warn([[p5pkg["main"]["v_@"]]],null);};return(p5pkg["Perlito5::Grammar::Use"].die([[(p5str(v_filename)+' did not return true value')]],p5want));}
else{throw(p5context([v_result],p5want))}}}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){var p5155=p5make_package("Perlito5::Grammar::Block");;;(p5pkg["Perlito5::Grammar::Block"]["Hash_Named_block"]={'BEGIN':1,'UNITCHECK':1,'CHECK':1,'INIT':1,'END':1});p5pkg["Perlito5::Expression"].add_statement(['{',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Block"],"term_block",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5pkg["Perlito5::Expression"].add_statement(['sub',function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Block"],"named_sub",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);p5for(p5pkg["Perlito5::Grammar::Block"],function(){p5pkg["Perlito5::Expression"].add_statement([p5pkg["Perlito5::Grammar::Block"]["v__"],function(List__,p5want){return(p5call(p5pkg["Perlito5::Grammar::Block"],"term_block",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),p5want));}],null);},p5list_to_a(p5pkg["Perlito5::Grammar::Block"].keys([p5pkg["Perlito5::Grammar::Block"]["Hash_Named_block"]],1)),false,"");p5make_sub("Perlito5::Grammar::Block","term_block",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_p;(v_p=(v_pos));var v_block_name;var v_m_name;(v_m_name=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m_name)){(v_p=((v_m_name||(v_m_name=new p5HashRef({})))._hash_.p5hget('to')));(v_block_name=(p5pkg["Perlito5::Match"].flat([v_m_name],0)));};var v_ws;(v_ws=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",[v_str,v_p],0)));if(p5bool(v_ws)){(v_p=((v_ws||(v_ws=new p5HashRef({})))._hash_.p5hget('to')));};if((p5pkg["Perlito5::Grammar::Block"].substr([v_str,v_p,1],0)=='{')){(function(){var v_m;(v_m=(p5call(p5pkg["Perlito5::Expression"],"term_curly",[v_str,v_p],0)));if(p5bool(v_m)){(function(){var v_block_start;(v_block_start=(v_p));(v_p=((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to')));(v_ws=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",[v_str,v_p],0)));if(p5bool(v_ws)){(v_p=((v_ws||(v_ws=new p5HashRef({})))._hash_.p5hget('to')));};var v_continue;(v_continue=(p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(new p5ArrayRef([]))),0)));var v_has_continue;(v_has_continue=(0));if((!(p5bool(v_block_name))&&(p5pkg["Perlito5::Grammar::Block"].substr([v_str,v_p,8],0)=='continue'))){(function(){(v_p=((p5num(v_p)+8)));(v_ws=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",[v_str,v_p],0)));if(p5bool(v_ws)){(v_p=((v_ws||(v_ws=new p5HashRef({})))._hash_.p5hget('to')));};var v_cont;(v_cont=(p5call(p5pkg["Perlito5::Expression"],"term_curly",[v_str,v_p],0)));if(p5bool(v_cont)){null;}
else{p5pkg["Perlito5::Grammar::Block"].die([['syntax error']],null);};p5pkg["Perlito5::Grammar::Block"].warn([['continue!']],null);(v_continue||(v_continue=new p5HashRef({})))._hash_.p5hset('stmts',((v_cont||(v_cont=new p5HashRef({})))._hash_.p5hget_array('capture')._array_.p5aget(2)));(v_has_continue=(1));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('to',((v_cont||(v_cont=new p5HashRef({})))._hash_.p5hget('to')));})();};var v_v;(v_v=(p5pkg["Perlito5::Match"].flat([v_m],0)));(v_v=(p5call(p5pkg["Perlito5::AST::Lit::Block"],"new",p5list_to_a('stmts',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(2),'sig',(v_v||(v_v=new p5ArrayRef([])))._array_.p5aget(3)),0)));if((p5bool(v_has_continue)||p5bool(v_block_name))){null;}
else{(v_v=(p5pkg["Perlito5::Expression"].block_or_hash([v_v],0)));};if((p5str(p5pkg["Perlito5::Grammar::Block"].ref([v_v],0))=='Perlito5::AST::Lit::Block')){if((p5str(v_block_name)=='BEGIN')){(function(p5want){var r;p5pkg["main"]["v_@"]="";try{r=eval(perl5_to_js(p5pkg["Perlito5::Grammar::Block"].substr([v_str,v_block_start,(p5num((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'))-p5num(v_block_start))],0),"Perlito5::Grammar::Block",(new p5ArrayRef(p5list_to_a((new p5HashRef({})),(new p5HashRef({})),(new p5HashRef(p5a_to_h(p5list_to_a('$block_start',(new p5HashRef({'decl':'my'})),'$continue',(new p5HashRef({'decl':'my'})),'$has_continue',(new p5HashRef({'decl':'my'})),'$v',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$m',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$block_name',(new p5HashRef({'decl':'my'})),'$m_name',(new p5HashRef({'decl':'my'})),'$p',(new p5HashRef({'decl':'my'})),'$pos',(new p5HashRef({'decl':'my'})),'$self',(new p5HashRef({'decl':'my'})),'$str',(new p5HashRef({'decl':'my'})),'$ws',(new p5HashRef({'decl':'my'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Block'})),'$_',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Block'})),'$a',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Block'})),'$b',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Block'})),'%Named_block',(new p5HashRef({'decl':'our','namespace':'Perlito5::Grammar::Block'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$_',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$a',(new p5HashRef({'decl':'our','namespace':'Perlito5'})),'$b',(new p5HashRef({'decl':'our','namespace':'Perlito5'})))))),(new p5HashRef(p5a_to_h(p5list_to_a('$@',(new p5HashRef({'decl':'our','namespace':'main'})),'$AUTOLOAD',(new p5HashRef({'decl':'our','namespace':'main'})),'$^O',(new p5HashRef({'decl':'our','namespace':'main'})),'$_',(new p5HashRef({'decl':'our','namespace':'main'})),'$a',(new p5HashRef({'decl':'our','namespace':'main'})),'$b',(new p5HashRef({'decl':'our','namespace':'main'})),'$|',(new p5HashRef({'decl':'our','namespace':'main'})),'%ENV',(new p5HashRef({'decl':'our','namespace':'main'})),'%INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@#',(new p5HashRef({'decl':'our','namespace':'main'})),'@ARGV',(new p5HashRef({'decl':'our','namespace':'main'})),'@INC',(new p5HashRef({'decl':'our','namespace':'main'})),'@_',(new p5HashRef({'decl':'my'}))))))))),"void"))}
catch(err){if(err instanceof p5_error||err instanceof Error){p5pkg["main"]["v_@"]=err;try{p5pkg["main"]["v_@"]=p5pkg["main"]["v_@"]+"\n"+err.stack;}
catch(err){}}
else{return(err);}}
return r;})(null);(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','undef','namespace','','arguments',(new p5ArrayRef([]))),0)));}
else{(v_v||(v_v=new p5HashRef({})))._hash_.p5hset('name',(v_block_name));(v_m||(v_m=new p5HashRef({})))._hash_.p5hset('capture',(v_v));(v_m||(v_m=new p5HashRef({})))._hash_.p5hget_hash('capture')._hash_.p5hset('continue',(v_continue));};throw(p5context([v_m],p5want));};})();};})();};return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::Block","named_sub_def",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"optional_namespace_before_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.optional_namespace_before_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"prototype",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.prototype',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar::Block"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Grammar.exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar"],"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('}'==p5pkg["Perlito5::Grammar::Block"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){p5pkg["Perlito5::Grammar::Block"].die([p5list_to_a('Syntax Error in sub '+String.fromCharCode(39),p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.ident')),1),String.fromCharCode(39))],null);return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_name;(v_name=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.ident')),0)));var v_sig;(v_sig=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.prototype')),0)));if((p5str(v_sig)=='*undef*')){(v_sig=(null));};var v_namespace;(v_namespace=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.optional_namespace_before_ident')),0)));if(p5bool(v_name)){(function(){if(!(p5bool(v_namespace))){(v_namespace=(((p5str(v_name)=='_')?'main':p5pkg["Perlito5"]["v_PKG_NAME"])));};var v_full_name;(v_full_name=((p5str(v_namespace)+'::'+p5str(v_name))));if((p5pkg["Perlito5"]["v_PROTO"])._hash_.hasOwnProperty(v_full_name)){p5pkg["Perlito5::Grammar::Block"].warn([[('Subroutine '+p5str(v_full_name)+' redefined')]],null);};(p5pkg["Perlito5"]["v_PROTO"]||(p5pkg["Perlito5"]["v_PROTO"]=new p5HashRef({})))._hash_.p5hset(p5str(v_full_name),(v_sig));})();};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Sub"],"new",p5list_to_a('name',v_name,'namespace',v_namespace,'sig',v_sig,'block',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Grammar.exp_stmts')),1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::Block","named_sub",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));if((p5pkg["Perlito5::Grammar::Block"].substr([v_str,v_pos,3],0)=='sub')){null;}
else{throw(p5context([],p5want));};var v_ws;(v_ws=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",[v_str,(p5num(v_pos)+3)],0)));if(p5bool(v_ws)){null;}
else{throw(p5context([],p5want));};var v_p;(v_p=((v_ws||(v_ws=new p5HashRef({})))._hash_.p5hget('to')));var v_m_name;(v_m_name=(p5call(p5pkg["Perlito5::Grammar"],"ident",[v_str,v_p],0)));if(p5bool(v_m_name)){null;}
else{throw(p5context([],p5want));};var v_block_name;(v_block_name=(p5pkg["Perlito5::Match"].flat([v_m_name],0)));if((p5pkg["Perlito5::Grammar::Block"]["Hash_Named_block"]).hasOwnProperty(v_block_name)){throw(p5call(p5pkg["Perlito5::Grammar::Block"],"term_block",[v_str,v_p],p5want));};return(p5call(p5pkg["Perlito5::Grammar::Block"],"named_sub_def",[v_str,v_p],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){var p5156=p5make_package("Perlito5::Grammar::Space");;var Hash_space={};(Hash_space=p5a_to_h(['#',function(List__,p5want){var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"to_eol",p5list_to_a(List__.p5aget(0),List__.p5aget(1)),0)));return((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'));},p5pkg["Perlito5::Grammar::Space"].chr([9],1),function(List__,p5want){return(List__.p5aget(1));},p5pkg["Perlito5::Grammar::Space"].chr([10],1),function(List__,p5want){var v_str;(v_str=(List__.p5aget(0)));var v_pos;(v_pos=(List__.p5aget(1)));if((p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_pos,1],0)==p5pkg["Perlito5::Grammar::Space"].chr([13],0))){(v_pos)++;};var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"start_of_line",p5list_to_a(List__.p5aget(0),v_pos),0)));return((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'));},p5pkg["Perlito5::Grammar::Space"].chr([12],1),function(List__,p5want){return(List__.p5aget(1));},p5pkg["Perlito5::Grammar::Space"].chr([13],1),function(List__,p5want){var v_str;(v_str=(List__.p5aget(0)));var v_pos;(v_pos=(List__.p5aget(1)));if((p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_pos,1],0)==p5pkg["Perlito5::Grammar::Space"].chr([10],0))){(v_pos)++;};var v_m;(v_m=(p5call(p5pkg["Perlito5::Grammar::Space"],"start_of_line",p5list_to_a(List__.p5aget(0),v_pos),0)));return((v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'));},p5pkg["Perlito5::Grammar::Space"].chr([32],1),function(List__,p5want){return(List__.p5aget(1));}]));p5make_sub("Perlito5::Grammar::Space","term_space",function(List__,p5want){try{var v_str;(v_str=(List__.p5aget(0)));var v_pos;(v_pos=(List__.p5aget(1)));var v_p;(v_p=(v_pos));p5while(function(){(v_p=((Hash_space.p5hget(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,1],0)))([v_str,(p5num(v_p)+1)],0)));},function(){return(Hash_space).hasOwnProperty(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,1],p5want))},false,"");if(((p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,7],0)=='__END__')||(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,8],0)=='__DATA__'))){throw((new p5HashRef({'str':v_str,'from':v_pos,'to':p5pkg["Perlito5::Grammar::Space"].length([v_str],p5want)})));};return((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',v_pos,'to',v_p,'capture',(new p5ArrayRef(['space',' '])))))));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::Space","term_end",function(List__,p5want){return((new p5HashRef(p5a_to_h(p5list_to_a('str',List__.p5aget(0),'from',List__.p5aget(1),'to',p5pkg["Perlito5::Grammar::Space"].length([List__.p5aget(0)],1),'capture',(new p5ArrayRef(['space',' '])))))));});p5pkg["Perlito5::Precedence"].add_term(['#',p5pkg["Perlito5::Grammar::Space"].term_space],null);p5pkg["Perlito5::Precedence"].add_term([p5pkg["Perlito5::Grammar::Space"].chr([9],1),p5pkg["Perlito5::Grammar::Space"].term_space],null);p5pkg["Perlito5::Precedence"].add_term([p5pkg["Perlito5::Grammar::Space"].chr([10],1),p5pkg["Perlito5::Grammar::Space"].term_space],null);p5pkg["Perlito5::Precedence"].add_term([p5pkg["Perlito5::Grammar::Space"].chr([12],1),p5pkg["Perlito5::Grammar::Space"].term_space],null);p5pkg["Perlito5::Precedence"].add_term([p5pkg["Perlito5::Grammar::Space"].chr([13],1),p5pkg["Perlito5::Grammar::Space"].term_space],null);p5pkg["Perlito5::Precedence"].add_term([p5pkg["Perlito5::Grammar::Space"].chr([32],1),p5pkg["Perlito5::Grammar::Space"].term_space],null);p5pkg["Perlito5::Precedence"].add_term(['__END__',p5pkg["Perlito5::Grammar::Space"].term_end],null);p5pkg["Perlito5::Precedence"].add_term(['__DATA__',p5pkg["Perlito5::Grammar::Space"].term_end],null);p5make_sub("Perlito5::Grammar::Space","to_eol",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and((String.fromCharCode(10)==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and((String.fromCharCode(13)==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0),function(){return p5context([p5and((''!=p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)}));})()],p5want));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::Space","pod_pod_begin",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and((String.fromCharCode(10)==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and((String.fromCharCode(13)==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([p5and(('=cut'==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),4],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((4+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"to_eol",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([p5and((''!=p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"to_eol",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"pod_pod_begin",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::Space","pod_begin",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and((String.fromCharCode(10)==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and((String.fromCharCode(13)==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([p5and(('=end'==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),4],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((4+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"to_eol",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([p5and((''!=p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"to_eol",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"pod_begin",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::Space","start_of_line",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::String"],"here_doc",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([p5and(('='==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5or(p5context([(function(){return(p5and(p5context([p5and(('pod'==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),3],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((3+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"pod_pod_begin",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5context([p5and(('head1'==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),5],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((5+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"pod_pod_begin",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5context([p5and(('begin'==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),5],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((5+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"pod_begin",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5context([p5and(('for'==p5pkg["Perlito5::Grammar::Space"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),3],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((3+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"pod_begin",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)})],p5want));})()],p5want)}));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([1],p5want));})()],p5want)}));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar::Space","ws",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_str;(v_str=(List__.shift()));var v_pos;(v_pos=(List__.shift()));var v_p;(v_p=(v_pos));p5while(function(){(v_p=((Hash_space.p5hget(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,1],0)))([v_str,(p5num(v_p)+1)],0)));},function(){return(Hash_space).hasOwnProperty(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,1],p5want))},false,"");if(((p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,7],0)=='__END__')||(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,8],0)=='__DATA__'))){throw((new p5HashRef({'str':v_str,'from':v_pos,'to':p5pkg["Perlito5::Grammar::Space"].length([v_str],p5want)})));};if((p5num(v_p)==p5num(v_pos))){throw(p5context([0],p5want));};return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_p})));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar::Space","opt_ws",function(List__,p5want){try{var v_self;(v_self=(List__.shift()));var v_str;(v_str=(List__.shift()));var v_pos;(v_pos=(List__.shift()));var v_p;(v_p=(v_pos));p5while(function(){(v_p=((Hash_space.p5hget(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,1],0)))([v_str,(p5num(v_p)+1)],0)));},function(){return(Hash_space).hasOwnProperty(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,1],p5want))},false,"");if(((p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,7],0)=='__END__')||(p5pkg["Perlito5::Grammar::Space"].substr([v_str,v_p,8],0)=='__DATA__'))){throw((new p5HashRef({'str':v_str,'from':v_pos,'to':p5pkg["Perlito5::Grammar::Space"].length([v_str],p5want)})));};return((new p5HashRef({'str':v_str,'from':v_pos,'to':v_p})));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});1;})();(function(){var p5157=p5make_package("Perlito5::Grammar");;;;;;;;p5make_sub("Perlito5::Grammar","word",function(List__,p5want){return((p5bool((p5str(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),List__.p5aget(2),1],p5want)).match(/\w/)?1:0))?(new p5HashRef(p5a_to_h(p5list_to_a('str',List__.p5aget(1),'from',List__.p5aget(2),'to',(p5num(List__.p5aget(2))+1))))):0));});p5make_sub("Perlito5::Grammar","digit",function(List__,p5want){return((p5bool((p5str(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),List__.p5aget(2),1],p5want)).match(/\d/)?1:0))?(new p5HashRef(p5a_to_h(p5list_to_a('str',List__.p5aget(1),'from',List__.p5aget(2),'to',(p5num(List__.p5aget(2))+1))))):0));});p5make_sub("Perlito5::Grammar","ident",function(List__,p5want){try{if((p5bool(!((p5str(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),List__.p5aget(2),1],p5want)).match(/\w/)?1:0)))||p5bool((p5str(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),List__.p5aget(2),1],p5want)).match(/\d/)?1:0)))){throw(p5context([],p5want));};var v_m;(v_m=((new p5HashRef(p5a_to_h(p5list_to_a('str',List__.p5aget(1),'from',List__.p5aget(2),'to',(p5num(List__.p5aget(2))+1)))))));p5while(function(){(v_m||(v_m=new p5HashRef({})))._hash_.p5postincr('to');},function(){return(p5str(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),(v_m||(v_m=new p5HashRef({})))._hash_.p5hget('to'),1],p5want)).match(/\w/)?1:0)},false,"");return(p5context([v_m],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar","caret_char",function(List__,p5want){try{var v_c;(v_c=(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),List__.p5aget(2),1],0)));var v_pos;(v_pos=(List__.p5aget(2)));if((p5str(v_c)=='^')){(v_pos)++;(v_c=(p5pkg["Perlito5::Grammar"].substr([List__.p5aget(1),v_pos,1],0)));if(((p5str(v_c)<'A')||(p5str(v_c)>'Z'))){throw(p5context([0],p5want));};(v_c=(p5pkg["Perlito5::Grammar"].chr([((p5pkg["Perlito5::Grammar"].ord([v_c],0)-p5pkg["Perlito5::Grammar"].ord(['A'],0))+1)],0)));}
else{if(p5bool(p5call(List__.p5aget(0),"ws",p5list_to_a(List__.p5aget(1),v_pos),0))){throw(p5context([0],p5want));};};if(((p5str(v_c)<String.fromCharCode(1))||(p5str(v_c)>String.fromCharCode(26)))){throw(p5context([0],p5want));};return((new p5HashRef(p5a_to_h(p5list_to_a('str',List__.p5aget(1),'from',List__.p5aget(2),'to',(p5num(v_pos)+1),'capture',v_c)))));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});p5make_sub("Perlito5::Grammar","full_ident",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)}));})()],p5want));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","namespace_before_ident",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?v_tmp:0))));})()],0)}),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?v_tmp:0))));})()],p5want)}));})()],p5want));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","optional_namespace_before_ident",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"namespace_before_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('namespace_before_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('namespace_before_ident')),0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"optional_namespace_before_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('optional_namespace_before_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_name;(v_name=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('optional_namespace_before_ident')),0)));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',('main'));if((p5str(v_name)!='')){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((p5str((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('capture'))+('::'+p5str(v_name)))));};return(p5context([1],p5want));})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(1,function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(''));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","ws",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","opt_ws",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Grammar::Space"],"ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","exp_stmts2",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('exp_stmts')),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","exp",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"exp_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.exp_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.exp_parse')),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","exp2",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"exp_parse",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.exp_parse',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('Perlito5::Expression.exp_parse')),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","opt_type",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){return(p5and(('::'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"full_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('full_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('full_ident')),0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(1,function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(''));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","var_sigil",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5or(p5or(p5context([(function(){return(p5and(('$'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('%'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('@'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('&'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('*'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","var_name",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"full_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('full_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('digit',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","var_ident",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"var_sigil",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('var_sigil',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"optional_namespace_before_ident",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('optional_namespace_before_ident',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"var_name",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('var_name',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Var"],"new",p5list_to_a('sigil',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('var_sigil')),1),'namespace',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('optional_namespace_before_ident')),1),'name',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('var_name')),1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","exponent",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('e'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('E'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){return(p5and(('+'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('-'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([1],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));var v_count;(v_count=(0));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));(v_count=((p5num(v_count)+1)));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([(p5num(v_count)>0)],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","val_num",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5context([p5and(('.'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(v_grammar,"exponent",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"exponent",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5and(p5context([p5and(('.'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_tmp;(v_tmp=(v_MATCH));(v_MATCH=((new p5HashRef(p5a_to_h(p5list_to_a('str',v_str,'from',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to'),'to',(v_tmp||(v_tmp=new p5HashRef({})))._hash_.p5hget('to')))))));var v_res;(v_res=(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('.'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()],0)));return((v_MATCH=((p5bool(v_res)?0:v_tmp))));})()],0)}),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_m2;(v_m2=(p5call(v_grammar,"exponent",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],p5want)})],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){var v_s;(v_s=(p5pkg["Perlito5::Match"].flat([v_MATCH],0)));v_s=p5str(v_s).replace(/_/g,'');(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Val::Num"],"new",['num',v_s],0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","digits",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));var v_count;(v_count=(0));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));(v_count=((p5num(v_count)+1)));},function(){return p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([(p5num(v_count)>0)],p5want));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","val_int",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){return(p5and(p5and(p5context([p5and(('0'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('x'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('X'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));var v_count;(v_count=(0));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));(v_count=((p5num(v_count)+1)));},function(){return p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"word",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([(p5num(v_count)>0)],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([p5and(('0'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('b'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('B'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));var v_count;(v_count=(0));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));(v_count=((p5num(v_count)+1)));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('0'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('1'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([(p5num(v_count)>0)],p5want));})()],p5want)})],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5context([p5and(('0'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));var v_count;(v_count=(0));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));(v_count=((p5num(v_count)+1)));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([(p5num(v_count)>0)],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Val::Int"],"new",['int',p5pkg["Perlito5::Grammar"].oct([p5pkg["Perlito5::Grammar"].lc([p5pkg["Perlito5::Match"].flat([v_MATCH],0)],0)],1)],0)));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('_'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digit",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){var v_s;(v_s=(p5pkg["Perlito5::Match"].flat([v_MATCH],0)));v_s=p5str(v_s).replace(/_/g,'');(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Val::Int"],"new",['int',v_s],0)));return(p5context([1],p5want));})()],p5want)})],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","val_version",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(('v'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],p5want));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digits",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([p5and(('.'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digits",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m;(v_m=(v_MATCH));if(!(p5bool((function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5context([p5and(('.'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"digits",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],p5want)}));})()],p5want));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()))){(v_MATCH=(v_m));};return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});var List_PKG=[];p5make_sub("Perlito5::Grammar","exp_stmts",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5context([(function(){List_PKG.p5push([p5pkg["Perlito5"]["v_PKG_NAME"]]);return(p5context([1],p5want));})()],0),function(){return p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_m2;(v_m2=(p5call(p5pkg["Perlito5::Expression"],"delimited_statement",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));if((v_MATCH)._hash_.hasOwnProperty('Perlito5::Expression.delimited_statement')){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_array('Perlito5::Expression.delimited_statement')._array_.p5push([v_m2]);}
else{(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('Perlito5::Expression.delimited_statement',((new p5ArrayRef([v_m2]))));};return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],0)}),function(){return p5context([(function(){(p5pkg["Perlito5"]["v_PKG_NAME"]=(List_PKG.pop()));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((new p5ArrayRef(p5list_to_a(p5map(p5pkg["Perlito5::Grammar"],function(p5want){return((p5pkg["Perlito5::Grammar"]["v__"]||(p5pkg["Perlito5::Grammar"]["v__"]=new p5HashRef({})))._hash_.p5hget('capture'));},p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget_array('Perlito5::Expression.delimited_statement')._array_)))))));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","args_sig",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){var v_last_match_null;(v_last_match_null=(0));var v_m;(v_m=(v_MATCH));var v_to;(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));p5while(function(){if((p5num(v_to)==p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))){(v_last_match_null=((p5num(v_last_match_null)+1)));}
else{(v_last_match_null=(0));};(v_m=(v_MATCH));(v_to=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));},function(){return p5and(p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5or(p5or(p5or(p5or(p5or(p5or(p5or(p5or(p5context([(function(){return(p5and((';'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and((String.fromCharCode(92)==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),2],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((2+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('['==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and((']'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('*'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('+'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('@'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('%'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('$'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([p5and(('&'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)})],p5want)],p5want));})()],p5want)}));})()],0),function(){return p5context([(p5num(v_last_match_null)<2)],0)})},false,"");(v_MATCH=(v_m));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_to));return(p5context([1],p5want));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","prototype",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([p5and(('('==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"args_sig",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('args_sig',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and((')'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',((''+p5str(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('args_sig')),0)))));return(p5context([1],p5want));})()],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',('*undef*'));return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});p5make_sub("Perlito5::Grammar","anon_sub_def",function(List__,p5want){var v_grammar;(v_grammar=(List__.p5aget(0)));var v_str;(v_str=(List__.p5aget(1)));var v_pos;(v_pos=(List__.p5aget(2)));var v_MATCH;(v_MATCH=((new p5HashRef({'str':v_str,'from':v_pos,'to':v_pos}))));var v_tmp;(v_tmp=(p5context([p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([(function(){return(p5and(p5and(p5and(p5and(p5and(p5and(p5and(p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"prototype",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('prototype',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([p5and(('{'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],0)})],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"exp_stmts",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('exp_stmts',(v_m2));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_m2;(v_m2=(p5call(v_grammar,"opt_ws",p5list_to_a(v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')),0)));if(p5bool(v_m2)){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((v_m2||(v_m2=new p5HashRef({})))._hash_.p5hget('to')));return(p5context([1],p5want));}
else{return(p5context([0],p5want));}})()],0)}),function(){return p5context([(function(){var v_pos1;(v_pos1=((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')));return(p5or(p5context([(function(){return(p5and(('}'==p5pkg["Perlito5::Grammar"].substr([v_str,(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to'),1],0)),function(){return p5context([(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',((1+p5num((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('to')))))],p5want)}));})()],0),function(){return p5context([(function(){(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('to',(v_pos1));return(p5context([p5context([(function(){p5pkg["Perlito5::Grammar"].die([['Syntax Error in anon sub']],null);return(p5context([1],p5want));})()],p5want)],p5want));})()],p5want)}));})()],0)}),function(){return p5context([(function(){var v_sig;(v_sig=(p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('prototype')),0)));if((p5str(v_sig)=='*undef*')){(v_sig=(null));};(v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hset('capture',(p5call(p5pkg["Perlito5::AST::Sub"],"new",p5list_to_a('name',null,'namespace',null,'sig',v_sig,'block',p5pkg["Perlito5::Match"].flat(p5list_to_a((v_MATCH||(v_MATCH=new p5HashRef({})))._hash_.p5hget('exp_stmts')),1)),0)));return(p5context([1],p5want));})()],p5want)}));})()],p5want));})()],0)],0)));return((p5bool(v_tmp)?v_MATCH:0));});})();;;;;(function(){null;var p5158=p5make_package("Perlito5::AST::Apply");var Hash_op={};(Hash_op={'infix:<+=>':'infix:<+>','infix:<-=>':'infix:<->','infix:<*=>':'infix:<*>','infix:</=>':'infix:</>','infix:<||=>':'infix:<||>','infix:<&&=>':'infix:<&&>','infix:<|=>':'infix:<|>','infix:<&=>':'infix:<&>','infix:<//=>':'infix:<//>','infix:<.=>':'list:<.>'});p5make_sub("Perlito5::AST::Apply","op_assign",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_code;(v_code=((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('code')));if(p5bool(p5pkg["Perlito5::AST::Apply"].ref([v_code],0))){throw(p5context([0],p5want));};if((Hash_op).hasOwnProperty(v_code)){throw(p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code','infix:<=>','arguments',(new p5ArrayRef(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget_array('arguments')._array_.p5aget(0),p5call(p5pkg["Perlito5::AST::Apply"],"new",p5list_to_a('code',Hash_op.p5hget(p5str(v_code)),'arguments',(v_self||(v_self=new p5HashRef({})))._hash_.p5hget('arguments')),1))))),p5want));};return(p5context([0],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});var p5159=p5make_package("Perlito5::AST::Do");p5make_sub("Perlito5::AST::Do","simplify",function(List__,p5want){try{var v_self;(v_self=(List__.p5aget(0)));var v_block;if(p5bool(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('block'),"isa",['Perlito5::AST::Lit::Block'],0))){(v_block=(p5call((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('block'),"stmts",[],0)));}
else{(v_block=((new p5ArrayRef(p5list_to_a((v_self||(v_self=new p5HashRef({})))._hash_.p5hget('block'))))));};if((p5num(((v_block||(v_block=new p5ArrayRef([])))._array_))==1)){(function(){var v_stmt;(v_stmt=((v_block||(v_block=new p5ArrayRef([])))._array_.p5aget(0)));if((p5bool(p5call(v_stmt,"isa",['Perlito5::AST::Apply'],0))&&(p5str(p5call(v_stmt,"code",[],0))=='circumfix:<( )>'))){(function(){var v_args;(v_args=(p5call(v_stmt,"arguments",[],0)));if((p5num((v_args||(v_args=new p5ArrayRef([])))._array_)==1)){throw(p5call(p5call(p5pkg["Perlito5::AST::Do"],"new",p5list_to_a('block',(v_args||(v_args=new p5ArrayRef([])))._array_.p5aget(0)),0),"simplify",[],p5want));};throw(p5call(p5pkg["Perlito5::AST::Do"],"new",['block',v_block],p5want));})();};if(p5bool(p5call(v_stmt,"isa",['Perlito5::AST::Do'],0))){throw(p5call(v_stmt,"simplify",[],p5want));};})();};return(p5call(p5pkg["Perlito5::AST::Do"],"new",['block',v_block],p5want));}
catch(err){if(err instanceof Error){throw(err);}
else{return(err);}}});})();;(function(){var p5160=p5make_package("Perlito5::Runtime");;if(p5bool(p5pkg["main"]["v_]"])){null;}
else{(p5pkg["main"]["v_]"]=(5.014001));};(p5pkg["Perlito5"]["v_EXPAND_USE"]=(1));(p5pkg["Perlito5"]["v_STRICT"]=(0));(p5pkg["Perlito5"]["v_WARNINGS"]=(0));(p5pkg["Perlito5"]["v_UTF8"]=(0));(p5pkg["Perlito5"]["v_BYTES"]=(0));(p5pkg["Perlito5"]["v_CALLER"]=((new p5ArrayRef([]))));(p5pkg["Perlito5"]["v_PKG_NAME"]=(''));p5for(p5pkg["Perlito5::Runtime"],function(){p5pkg["main"]["List_INC"].p5push([p5pkg["Perlito5::Runtime"]["v__"]]);},p5list_to_a(p5pkg["Perlito5::Runtime"].split(p5list_to_a(':',p5or(p5pkg["main"]["Hash_ENV"].p5hget('PERL5LIB'),function(){return''})),1)),false,"");(p5pkg["Perlito5"]["v_SPECIAL_VAR"]=((new p5HashRef(p5a_to_h(p5list_to_a('$_','ARG','$&','$MATCH','$`','$PREMATCH','$'+String.fromCharCode(39),'$POSTMATCH','$+','$LAST_PAREN_MATCH','@+','@LAST_MATCH_END','%+','%LAST_PAREN_MATCH','@-','@LAST_MATCH_START','$|','autoflush','$/','$RS','@_','@ARG','< $','$EUID','$.','$NR','< $< ','$UID','$(','$GID','$#',null,'$@','$EVAL_ERROR','$=','$FORMAT_LINES_PER_PAGE','$,','$OFS','$?','$CHILD_ERROR','$*',null,'$[',null,'$$','$PID','%-',null,'$~','$FORMAT_NAME','$-','$FORMAT_LINES_LEFT','$&','$MATCH','$%','$FORMAT_PAGE_NUMBER','$)','$EGID','$]',null,'$!','$ERRNO','$;','$SUBSEP','$'+String.fromCharCode(92),'$ORS','%!',null,'$"','$LIST_SEPARATOR','$_','$ARG','$:','FORMAT_LINE_BREAK_CHARACTERS'))))));(p5pkg["Perlito5"]["v_CORE_OVERRIDABLE"]=((new p5HashRef({'say':1,'break':1,'given':1,'when':1,'default':1,'state':1,'lock':1}))));(p5pkg["Perlito5"]["v_CORE_PROTO"]=((new p5HashRef(p5a_to_h(p5list_to_a('CORE::shutdown','*$','CORE::chop',null,'CORE::lstat','*','CORE::rename','$$','CORE::lock',String.fromCharCode(92)+'$','CORE::rand',';$','CORE::gmtime',';$','CORE::gethostbyname','$','CORE::each',String.fromCharCode(92)+'[@%]','CORE::ref','_','CORE::syswrite','*$;$$','CORE::msgctl','$$$','CORE::getnetbyname','$','CORE::write',';*','CORE::alarm','_','CORE::print',null,'CORE::getnetent','','CORE::semget','$$$','CORE::use',null,'CORE::abs','_','CORE::break','','CORE::undef',null,'CORE::no',null,'CORE::eval','_','CORE::split',null,'CORE::localtime',';$','CORE::sort',null,'CORE::chown','@','CORE::endpwent','','CORE::getpwent','','CORE::pos',null,'CORE::lcfirst','_','CORE::kill','@','CORE::send','*$$;$','CORE::endprotoent','','CORE::semctl','$$$$','CORE::waitpid','$$','CORE::utime','@','CORE::dbmclose',String.fromCharCode(92)+'%','CORE::getpwnam','$','CORE::substr','$$;$$','CORE::listen','*$','CORE::getprotoent','','CORE::shmget','$$$','CORE::our',null,'CORE::readlink','_','CORE::shmwrite','$$$$','CORE::times','','CORE::package',null,'CORE::map',null,'CORE::join','$@','CORE::rmdir','_','CORE::shmread','$$$$','CORE::uc','_','CORE::bless','$;$','CORE::closedir','*','CORE::getppid','','CORE::tie',String.fromCharCode(92)+'[$@%]$;@','CORE::readdir','*','CORE::gethostent','','CORE::getlogin','','CORE::last',null,'CORE::gethostbyaddr','$$','CORE::accept','**','CORE::log','_','CORE::tell',';*','CORE::readline',';*','CORE::tied',null,'CORE::socket','*$$$','CORE::umask',';$','CORE::sysread','*'+String.fromCharCode(92)+'$$;$','CORE::syscall','$@','CORE::quotemeta','_','CORE::dump','','CORE::opendir','*$','CORE::untie',null,'CORE::truncate','$$','CORE::select',';*','CORE::sleep',';$','CORE::seek','*$$','CORE::read','*'+String.fromCharCode(92)+'$$;$','CORE::rewinddir','*','CORE::scalar',null,'CORE::wantarray','','CORE::oct','_','CORE::bind','*$','CORE::stat','*','CORE::sqrt','_','CORE::getc',';*','CORE::fileno','*','CORE::getpeername','*','CORE::sin','_','CORE::getnetbyaddr','$$','CORE::grep',null,'CORE::setservent','$','CORE::sub',null,'CORE::shmctl','$$$','CORE::study',null,'CORE::msgrcv','$$$$$','CORE::setsockopt','*$$$','CORE::int','_','CORE::pop',';'+String.fromCharCode(92)+'@','CORE::link','$$','CORE::exec',null,'CORE::setpwent','','CORE::mkdir','_;$','CORE::sysseek','*$$','CORE::endservent','','CORE::chr','_','CORE::when',null,'CORE::getpwuid','$','CORE::setprotoent','$','CORE::reverse','@','CORE::say',null,'CORE::goto',null,'CORE::getgrent','','CORE::endnetent','','CORE::hex','_','CORE::binmode','*;$','CORE::formline','$@','CORE::getgrnam','$','CORE::ucfirst','_','CORE::chdir',';$','CORE::setnetent','$','CORE::splice',String.fromCharCode(92)+'@;$$@','CORE::unlink','@','CORE::time','','CORE::push',String.fromCharCode(92)+'@@','CORE::exit',';$','CORE::endgrent','','CORE::unshift',String.fromCharCode(92)+'@@','CORE::local',null,'CORE::my',null,'CORE::cos','_','CORE::redo',null,'CORE::warn','@','CORE::getsockname','*','CORE::pipe','**','CORE::sprintf','$@','CORE::open','*;$@','CORE::setpgrp',';$$','CORE::exp','_','CORE::seekdir','*$','CORE::getservbyport','$$','CORE::given',null,'CORE::pack','$@','CORE::msgget','$$','CORE::rindex','$$;$','CORE::srand',';$','CORE::telldir','*','CORE::connect','*$','CORE::getprotobyname','$','CORE::msgsnd','$$$','CORE::length','_','CORE::state',null,'CORE::die','@','CORE::delete',null,'CORE::getservent','','CORE::getservbyname','$$','CORE::setpriority','$$$','CORE::lc','_','CORE::fcntl','*$$','CORE::chroot','_','CORE::recv','*'+String.fromCharCode(92)+'$$$','CORE::dbmopen',String.fromCharCode(92)+'%$$','CORE::socketpair','**$$$','CORE::vec','$$$','CORE::system',null,'CORE::defined','_','CORE::index','$$;$','CORE::caller',';$','CORE::close',';*','CORE::atan2','$$','CORE::semop','$$','CORE::unpack','$;$','CORE::ord','_','CORE::chmod','@','CORE::prototype',null,'CORE::getprotobynumber','$','CORE::values',String.fromCharCode(92)+'[@%]','CORE::chomp',null,'CORE::ioctl','*$$','CORE::eof',';*','CORE::crypt','$$','CORE::do',null,'CORE::flock','*$','CORE::wait','','CORE::sethostent','$','CORE::return',null,'CORE::getsockopt','*$$','CORE::fork','','CORE::require',null,'CORE::format',null,'CORE::readpipe','_','CORE::endhostent','','CORE::getpgrp',';$','CORE::setgrent','','CORE::keys',String.fromCharCode(92)+'[@%]','CORE::glob',null,'CORE::getpriority','$$','CORE::reset',';$','CORE::sysopen','*$$;$','CORE::continue','','CORE::next',null,'CORE::getgrgid','$','CORE::default',null,'CORE::shift',';'+String.fromCharCode(92)+'@','CORE::symlink','$$','CORE::exists','$','CORE::printf','$@'))))));1;})();;p5make_sub("Perlito5","compile_p5_to_js",function(List__,p5want){var v_s;(v_s=(List__.shift()));(p5pkg["Perlito5"]["v_PKG_NAME"]=('main'));(p5pkg["Perlito5"]["v_PROTO"]=((new p5HashRef({}))));var v_ast;(v_ast=(p5call(p5pkg["Perlito5::Grammar"],"exp_stmts",[v_s,0],0)));return(p5pkg["Perlito5::AST::CompUnit"].emit_javascript2_program(p5list_to_a((new p5ArrayRef(p5list_to_a(p5call(p5pkg["Perlito5::AST::CompUnit"],"new",p5list_to_a('name','main','body',p5pkg["Perlito5::Match"].flat([v_ast],1)),1))))),p5want));});1;})()