Changeset 22517 for misc

Show
Ignore:
Timestamp:
10/05/08 22:20:08 (3 months ago)
Author:
putter
Message:

[elf_h] Restructured the IRxBuild initializer.
Cheating for on_sbcl - because SBCL didn't like compiling a 60kB method with 100 embedded subs.

Location:
misc/elf
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • misc/elf/elf_h

    r22501 r22517  
    19781978} 
    19791979; 
    1980 if(GLOBAL::not($GLOBAL::ast2ir_0)) { 
    1981 (do{($GLOBAL::ast2ir_0 = IRx1_Build->new()->init())}) 
    1982 }; 
    1983 ($GLOBAL::ast2ir_1 = IRx1_Build->new()->init()); 
    19841980 
    19851981{ package IRx1_Build; 
    19861982use base "Any";(do{sub irbuild_ir{my($x)=@_; 
    19871983(do{$x->make_ir_from_Match_tree()})}; 
    1988 sub init{my $self=CORE::shift;(do{$self->add_constructor("comp_unit", sub {my($m)=@_; 
    1989 (do{IRx1::CompUnit->newp($m, irbuild_ir($m->hash()->{"statementlist"}), GLOBAL::undef())})}); 
    1990 $self->add_constructor("statement", sub {my($m)=@_; 
     1984my $construct_comp_unit = sub {my($m)=@_; 
     1985(do{IRx1::CompUnit->newp($m, irbuild_ir($m->hash()->{"statementlist"}), GLOBAL::undef())})}; 
     1986my $construct_statement = sub {my($m)=@_; 
    19911987(do{my $labels = irbuild_ir($m->hash()->{"label"}); 
    19921988my $result = (irbuild_ir($m->hash()->{"expr"}) || irbuild_ir($m->hash()->{"control"})); 
     
    20031999}else { 
    20042000(do{$result}) 
    2005 }})}); 
    2006 $self->add_constructor("expect_infix", sub {my($m)=@_; 
     2001}})}; 
     2002my $construct_expect_infix = sub {my($m)=@_; 
    20072003(do{if(irbuild_ir($m->hash()->{"infix"})) { 
    20082004(do{if(irbuild_ir($m->hash()->{"infix_postfix_meta_operator"})) { 
     
    20212017}else { 
    20222018(do{GLOBAL::die("Unimplemented\ infix_prefix_meta_operator\ or\ infix_circumfix_meta_operator")}) 
    2023 }})}); 
    2024 $self->add_constructor("fatarrow", sub {my($m)=@_; 
    2025 (do{IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"key"}), irbuild_ir($m->hash()->{"val"}))})}); 
    2026 $self->add_constructor("expect_term", sub {my($m)=@_; 
     2019}})}; 
     2020my $construct_fatarrow = sub {my($m)=@_; 
     2021(do{IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"key"}), irbuild_ir($m->hash()->{"val"}))})}; 
     2022my $construct_expect_term = sub {my($m)=@_; 
    20272023(do{{ package IRx1_Build; use vars '$expect_term_base'};local $blackboard::expect_term_base = irbuild_ir($m->hash()->{"noun"}); 
    20282024my $ops = []; 
     
    20362032(do{($blackboard::expect_term_base = irbuild_ir($_))}) 
    20372033}; 
    2038 $blackboard::expect_term_base})}); 
    2039 $self->add_constructor("term\:expect_term", sub {my($m)=@_; 
    2040 (do{irbuild_ir($m->hash()->{"noun"})})}); 
    2041 $self->add_constructor("post", sub {my($m)=@_; 
     2034$blackboard::expect_term_base})}; 
     2035my $construct_term_58expect_term = sub {my($m)=@_; 
     2036(do{irbuild_ir($m->hash()->{"noun"})})}; 
     2037my $construct_post = sub {my($m)=@_; 
    20422038(do{if($m->hash()->{"args"}) { 
    20432039(do{irbuild_ir($m->hash()->{"args"})->[0]}) 
    20442040}else { 
    20452041(do{(irbuild_ir($m->hash()->{"dotty"}) or irbuild_ir($m->hash()->{"postop"}))}) 
    2046 }})}); 
    2047 $self->add_constructor("pre", sub {my($m)=@_; 
     2042}})}; 
     2043my $construct_pre = sub {my($m)=@_; 
    20482044(do{if($m->hash()->{"args"}) { 
    20492045(do{irbuild_ir($m->hash()->{"args"})->[0]}) 
     
    20522048}else { 
    20532049(do{GLOBAL::die("pre\ without\ a\ prefix\ is\ unimplemented")}) 
    2054 }})}); 
    2055 $self->add_constructor("dotty\:methodop", sub {my($m)=@_; 
    2056 (do{IRx1::Call->newp($m, $blackboard::expect_term_base, irbuild_ir($m->hash()->{"ident"}), IRx1::Capture->newp1($m, (irbuild_ir($m->hash()->{"semilist"}) || [])))})}); 
    2057 $self->add_constructor("dotty\:\.\^\!", sub {my($m)=@_; 
    2058 (do{IRx1::Call->newp($m, $blackboard::expect_term_base, ("\^\!" . irbuild_ir($m->hash()->{"methodop"}->hash()->{"ident"})), IRx1::Capture->newp1($m, (irbuild_ir($m->hash()->{"methodop"}->hash()->{"semilist"}) || [])))})}); 
    2059 $self->add_constructor("dotty\:postcircumfix", sub {my($m)=@_; 
     2050}})}; 
     2051my $construct_dotty_58methodop = sub {my($m)=@_; 
     2052(do{IRx1::Call->newp($m, $blackboard::expect_term_base, irbuild_ir($m->hash()->{"ident"}), IRx1::Capture->newp1($m, (irbuild_ir($m->hash()->{"semilist"}) || [])))})}; 
     2053my $construct_dotty_58_46_94_33 = sub {my($m)=@_; 
     2054(do{IRx1::Call->newp($m, $blackboard::expect_term_base, ("\^\!" . irbuild_ir($m->hash()->{"methodop"}->hash()->{"ident"})), IRx1::Capture->newp1($m, (irbuild_ir($m->hash()->{"methodop"}->hash()->{"semilist"}) || [])))})}; 
     2055my $construct_dotty_58postcircumfix = sub {my($m)=@_; 
    20602056(do{my $s = ($m->match_string()); 
    20612057my $name = ((GLOBAL::substr($s, 0, 1) . "\ ") . GLOBAL::substr($s, (-1), 1)); 
     
    20652061(do{($args = [$args])}) 
    20662062}; 
    2067 IRx1::Call->newp($m, $blackboard::expect_term_base, $ident, IRx1::Capture->newp1($m, ($args || [])))})}); 
    2068 $self->add_constructor("postcircumfix", sub {my($m)=@_; 
     2063IRx1::Call->newp($m, $blackboard::expect_term_base, $ident, IRx1::Capture->newp1($m, ($args || [])))})}; 
     2064my $construct_postcircumfix = sub {my($m)=@_; 
    20692065(do{my $s = ($m->match_string()); 
    20702066my $name = ((GLOBAL::substr($s, 0, 1) . "\ ") . GLOBAL::substr($s, (-1), 1)); 
     
    20742070(do{($args = [$args])}) 
    20752071}; 
    2076 IRx1::Call->newp($m, $blackboard::expect_term_base, $ident, IRx1::Capture->newp1($m, ($args || [])))})}); 
    2077 $self->add_constructor("postfix", sub {my($m)=@_; 
     2072IRx1::Call->newp($m, $blackboard::expect_term_base, $ident, IRx1::Capture->newp1($m, ($args || [])))})}; 
     2073my $construct_postfix = sub {my($m)=@_; 
    20782074(do{my $op = ($m->match_string()); 
    2079 IRx1::Apply->newp($m, ("postfix\:" . $op), IRx1::Capture->newp1($m, [$blackboard::expect_term_base]))})}); 
    2080 $self->add_constructor("prefix", sub {my($m)=@_; 
     2075IRx1::Apply->newp($m, ("postfix\:" . $op), IRx1::Capture->newp1($m, [$blackboard::expect_term_base]))})}; 
     2076my $construct_prefix = sub {my($m)=@_; 
    20812077(do{my $op = ($m->match_string()); 
    2082 IRx1::Apply->newp($m, ("prefix\:" . $op), IRx1::Capture->newp1($m, [$blackboard::expect_term_base]))})}); 
    2083 $self->add_constructor("infix", sub {my($m)=@_; 
     2078IRx1::Apply->newp($m, ("prefix\:" . $op), IRx1::Capture->newp1($m, [$blackboard::expect_term_base]))})}; 
     2079my $construct_infix = sub {my($m)=@_; 
    20842080(do{my $op = ($m->match_string()); 
    2085 IRx1::Apply->newp($m, ("infix\:" . $op), IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"left"}), irbuild_ir($m->hash()->{"right"})]))})}); 
    2086 $self->add_constructor("term", sub {my($m)=@_; 
     2081IRx1::Apply->newp($m, ("infix\:" . $op), IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"left"}), irbuild_ir($m->hash()->{"right"})]))})}; 
     2082my $construct_term = sub {my($m)=@_; 
    20872083(do{my $text = ($m->match_string()); 
    20882084if(($text eq "self")) { 
     
    20932089(do{GLOBAL::die("AST\ term\ partially\ unimplemented\.\ 
    20942090")}) 
    2095 }})}); 
    2096 $self->add_constructor("integer", sub {my($m)=@_; 
    2097 (do{IRx1::NumInt->newp($m, ($m->match_string()), 10)})}); 
    2098 $self->add_constructor("subcall", sub {my($m)=@_; 
     2091}})}; 
     2092my $construct_integer = sub {my($m)=@_; 
     2093(do{IRx1::NumInt->newp($m, ($m->match_string()), 10)})}; 
     2094my $construct_subcall = sub {my($m)=@_; 
    20992095(do{my $t = irbuild_ir($m->hash()->{"subshortname"}->hash()->{"twigil"}); 
    21002096if(($t && ($t eq "\."))) { 
     
    21022098}else { 
    21032099(do{IRx1::Apply->newp($m, irbuild_ir($m->hash()->{"subshortname"}), IRx1::Capture->newp1($m, (irbuild_ir($m->hash()->{"semilist"}) || [])))}) 
    2104 }})}); 
    2105 $self->add_constructor("name", sub {my($m)=@_; 
    2106 (do{($m->match_string())})}); 
    2107 $self->add_constructor("subshortname", sub {my($m)=@_; 
     2100}})}; 
     2101my $construct_name = sub {my($m)=@_; 
     2102(do{($m->match_string())})}; 
     2103my $construct_subshortname = sub {my($m)=@_; 
    21082104(do{if($m->hash()->{"category"}) { 
    21092105(do{my $cat = $m->hash()->{"category"}->match_string(); 
     
    21152111}else { 
    21162112(do{($m->match_string())}) 
    2117 }})}); 
    2118 $self->add_constructor("statement_control\:use", sub {my($m)=@_; 
    2119 (do{IRx1::Use->newp($m, "use", irbuild_ir($m->hash()->{"module_name"}), irbuild_ir($m->hash()->{"EXPR"}))})}); 
    2120 $self->add_constructor("module_name\:depreciated", sub {my($m)=@_; 
    2121 (do{($m->match_string())})}); 
    2122 $self->add_constructor("module_name\:normal", sub {my($m)=@_; 
    2123 (do{($m->match_string())})}); 
    2124 $self->add_constructor("role_name", sub {my($m)=@_; 
    2125 (do{($m->match_string())})}); 
    2126 $self->add_constructor("statement_control\:BEGIN", sub {my($m)=@_; 
    2127 (do{IRx1::ClosureTrait->newp($m, "BEGIN", irbuild_ir($m->hash()->{"block"}))})}); 
    2128 $self->add_constructor("term\:listop", sub {my($m)=@_; 
     2113}})}; 
     2114my $construct_statement_control_58use = sub {my($m)=@_; 
     2115(do{IRx1::Use->newp($m, "use", irbuild_ir($m->hash()->{"module_name"}), irbuild_ir($m->hash()->{"EXPR"}))})}; 
     2116my $construct_module_name_58depreciated = sub {my($m)=@_; 
     2117(do{($m->match_string())})}; 
     2118my $construct_module_name_58normal = sub {my($m)=@_; 
     2119(do{($m->match_string())})}; 
     2120my $construct_role_name = sub {my($m)=@_; 
     2121(do{($m->match_string())})}; 
     2122my $construct_statement_control_58BEGIN = sub {my($m)=@_; 
     2123(do{IRx1::ClosureTrait->newp($m, "BEGIN", irbuild_ir($m->hash()->{"block"}))})}; 
     2124my $construct_term_58listop = sub {my($m)=@_; 
    21292125(do{my $not_really_an_arglist = irbuild_ir($m->hash()->{"arglist"}); 
    21302126if(irbuild_ir($m->hash()->{"arglist"})) { 
     
    21322128}else { 
    21332129(do{IRx1::Apply->newp($m, irbuild_ir($m->hash()->{"ident"}), IRx1::Capture->newp1($m, []))}) 
    2134 }})}); 
    2135 $self->add_constructor("quote\:q", sub {my($m)=@_; 
     2130}})}; 
     2131my $construct_quote_58q = sub {my($m)=@_; 
    21362132(do{my $s = irbuild_ir($m->hash()->{"text"}); 
    21372133($s = $s->re_gsub_pat("\\\\\(\[\\\\\'\]\)", "\$1")); 
    2138 IRx1::Buf->newp($m, $s)})}); 
    2139 $self->add_constructor("quote\:qq", sub {my($m)=@_; 
     2134IRx1::Buf->newp($m, $s)})}; 
     2135my $construct_quote_58qq = sub {my($m)=@_; 
    21402136(do{my $s = irbuild_ir($m->hash()->{"text"}); 
    21412137($s = $s->re_gsub("\(\?\<\!\\\\\)\\\\n", "\ 
     
    21432139($s = $s->re_gsub("\(\?\<\!\\\\\)\\\\t", "\     ")); 
    21442140($s = $s->re_gsub_pat("\\\\\(\.\)", "\$1")); 
    2145 IRx1::Buf->newp($m, $s)})}); 
    2146 $self->add_constructor("quote\:regex", sub {my($m)=@_; 
     2141IRx1::Buf->newp($m, $s)})}; 
     2142my $construct_quote_58regex = sub {my($m)=@_; 
    21472143(do{my $s = (irbuild_ir($m->hash()->{"text"}) || irbuild_ir($m->hash()->{"quotesnabber"}->hash()->{"text"})); 
    2148 IRx1::Rx->newp($m, $s, irbuild_ir($m->hash()->{"quotepair"}))})}); 
    2149 $self->add_constructor("scope_declarator\:my", sub {my($m)=@_; 
     2144IRx1::Rx->newp($m, $s, irbuild_ir($m->hash()->{"quotepair"}))})}; 
     2145my $construct_scope_declarator_58my = sub {my($m)=@_; 
    21502146(do{{ package IRx1_Build; use vars '$scope'};local $blackboard::scope = "my"; 
    2151 irbuild_ir($m->hash()->{"scoped"})})}); 
    2152 $self->add_constructor("scope_declarator\:has", sub {my($m)=@_; 
     2147irbuild_ir($m->hash()->{"scoped"})})}; 
     2148my $construct_scope_declarator_58has = sub {my($m)=@_; 
    21532149(do{{ package IRx1_Build; use vars '$scope'};local $blackboard::scope = "has"; 
    2154 irbuild_ir($m->hash()->{"scoped"})})}); 
    2155 $self->add_constructor("scope_declarator\:our", sub {my($m)=@_; 
     2150irbuild_ir($m->hash()->{"scoped"})})}; 
     2151my $construct_scope_declarator_58our = sub {my($m)=@_; 
    21562152(do{{ package IRx1_Build; use vars '$scope'};local $blackboard::scope = "our"; 
    2157 irbuild_ir($m->hash()->{"scoped"})})}); 
    2158 $self->add_constructor("scope_declarator\:temp", sub {my($m)=@_; 
     2153irbuild_ir($m->hash()->{"scoped"})})}; 
     2154my $construct_scope_declarator_58temp = sub {my($m)=@_; 
    21592155(do{{ package IRx1_Build; use vars '$scope'};local $blackboard::scope = "temp"; 
    2160 irbuild_ir($m->hash()->{"scoped"})})}); 
    2161 $self->add_constructor("scoped", sub {my($m)=@_; 
     2156irbuild_ir($m->hash()->{"scoped"})})}; 
     2157my $construct_scoped = sub {my($m)=@_; 
    21622158(do{{ package IRx1_Build; use vars '$typenames'};local $blackboard::typenames = irbuild_ir($m->hash()->{"fulltypename"}); 
    2163 ((((irbuild_ir($m->hash()->{"variable_decl"}) || irbuild_ir($m->hash()->{"signature"})) || irbuild_ir($m->hash()->{"plurality_declarator"})) || irbuild_ir($m->hash()->{"routine_declarator"})) || irbuild_ir($m->hash()->{"type_declarator"}))})}); 
    2164 $self->add_constructor("variable_decl", sub {my($m)=@_; 
     2159((((irbuild_ir($m->hash()->{"variable_decl"}) || irbuild_ir($m->hash()->{"signature"})) || irbuild_ir($m->hash()->{"plurality_declarator"})) || irbuild_ir($m->hash()->{"routine_declarator"})) || irbuild_ir($m->hash()->{"type_declarator"}))})}; 
     2160my $construct_variable_decl = sub {my($m)=@_; 
    21652161(do{my $scope = $blackboard::scope; 
    21662162{ package IRx1_Build; use vars '$scope'};local $blackboard::scope; 
    21672163my $typenames = $blackboard::typenames; 
    21682164{ package IRx1_Build; use vars '$typenames'};local $blackboard::typenames = GLOBAL::undef(); 
    2169 IRx1::VarDecl->newp($m, $scope, $typenames, GLOBAL::undef(), irbuild_ir($m->hash()->{"variable"}), GLOBAL::undef(), irbuild_ir($m->hash()->{"traits"}), "\=", irbuild_ir($m->hash()->{"default_value"}))})}); 
    2170 $self->add_constructor("variable", sub {my($m)=@_; 
     2165IRx1::VarDecl->newp($m, $scope, $typenames, GLOBAL::undef(), irbuild_ir($m->hash()->{"variable"}), GLOBAL::undef(), irbuild_ir($m->hash()->{"traits"}), "\=", irbuild_ir($m->hash()->{"default_value"}))})}; 
     2166my $construct_variable = sub {my($m)=@_; 
    21712167(do{my $tw = irbuild_ir($m->hash()->{"twigil"}); 
    21722168if($m->hash()->{"postcircumfix"}) { 
     
    21852181}else { 
    21862182(do{IRx1::Var->newp($m, irbuild_ir($m->hash()->{"sigil"}), $tw, irbuild_ir($m->hash()->{"desigilname"}))}) 
    2187 }})}); 
    2188 $self->add_constructor("sigil", sub {my($m)=@_; 
    2189 (do{($m->match_string())})}); 
    2190 $self->add_constructor("twigil", sub {my($m)=@_; 
    2191 (do{($m->match_string())})}); 
    2192 $self->add_constructor("special_variable", sub {my($m)=@_; 
     2183}})}; 
     2184my $construct_sigil = sub {my($m)=@_; 
     2185(do{($m->match_string())})}; 
     2186my $construct_twigil = sub {my($m)=@_; 
     2187(do{($m->match_string())})}; 
     2188my $construct_special_variable = sub {my($m)=@_; 
    21932189(do{my $v = ($m->match_string()); 
    21942190my $s = GLOBAL::substr($v, 0, 1); 
    21952191my $n = GLOBAL::substr($v, 1, $v->length()); 
    2196 IRx1::Var->newp($m, $s, GLOBAL::undef(), $n)})}); 
    2197 $self->add_constructor("circumfix", sub {my($m)=@_; 
     2192IRx1::Var->newp($m, $s, GLOBAL::undef(), $n)})}; 
     2193my $construct_circumfix = sub {my($m)=@_; 
    21982194(do{my $s = ($m->match_string()); 
    21992195my $name = ((GLOBAL::substr($s, 0, 1) . "\ ") . GLOBAL::substr($s, (-1), 1)); 
     
    22022198(do{($args = [$args])}) 
    22032199}; 
    2204 IRx1::Apply->newp($m, ("circumfix\:" . $name), IRx1::Capture->newp1($m, ($args || [])))})}); 
    2205 $self->add_constructor("statement_control\:for", sub {my($m)=@_; 
    2206 (do{IRx1::For->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2207 $self->add_constructor("statement_mod_loop\:for", sub {my($m)=@_; 
    2208 (do{IRx1::For->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    2209 $self->add_constructor("statement_control\:while", sub {my($m)=@_; 
    2210 (do{IRx1::Loop->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2211 $self->add_constructor("statement_mod_loop\:while", sub {my($m)=@_; 
    2212 (do{IRx1::Loop->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    2213 $self->add_constructor("statement_control\:until", sub {my($m)=@_; 
     2200IRx1::Apply->newp($m, ("circumfix\:" . $name), IRx1::Capture->newp1($m, ($args || [])))})}; 
     2201my $construct_statement_control_58for = sub {my($m)=@_; 
     2202(do{IRx1::For->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2203my $construct_statement_mod_loop_58for = sub {my($m)=@_; 
     2204(do{IRx1::For->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}; 
     2205my $construct_statement_control_58while = sub {my($m)=@_; 
     2206(do{IRx1::Loop->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2207my $construct_statement_mod_loop_58while = sub {my($m)=@_; 
     2208(do{IRx1::Loop->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}; 
     2209my $construct_statement_control_58until = sub {my($m)=@_; 
    22142210(do{my $test = IRx1::Apply->newp($m, "not", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"expr"})])); 
    2215 IRx1::Loop->newp($m, $test, irbuild_ir($m->hash()->{"block"}))})}); 
    2216 $self->add_constructor("statement_mod_loop\:until", sub {my($m)=@_; 
     2211IRx1::Loop->newp($m, $test, irbuild_ir($m->hash()->{"block"}))})}; 
     2212my $construct_statement_mod_loop_58until = sub {my($m)=@_; 
    22172213(do{my $test = IRx1::Apply->newp($m, "not", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"modifier_expr"})])); 
    2218 IRx1::Loop->newp($m, $test, $blackboard::statement_expr)})}); 
    2219 $self->add_constructor("statement_control\:loop", sub {my($m)=@_; 
     2214IRx1::Loop->newp($m, $test, $blackboard::statement_expr)})}; 
     2215my $construct_statement_control_58loop = sub {my($m)=@_; 
    22202216(do{my $e1 = irbuild_ir($m->hash()->{"loop_eee"}->hash()->{"loop_e1"}); 
    22212217my $e2 = irbuild_ir($m->hash()->{"loop_eee"}->hash()->{"loop_e2"}); 
     
    22232219my $block = irbuild_ir($m->hash()->{"loop_block"}); 
    22242220my $body = IRx1::Loop->newp($m, $e2, IRx1::Block->newp($m, [$block, $e3])); 
    2225 IRx1::Block->newp($m, [$e1, $body])})}); 
    2226 $self->add_constructor("statement_control\:if", sub {my($m)=@_; 
     2221IRx1::Block->newp($m, [$e1, $body])})}; 
     2222my $construct_statement_control_58if = sub {my($m)=@_; 
    22272223(do{my $els = irbuild_ir($m->hash()->{"else"}); 
    22282224if($els) { 
    22292225(do{($els = $els->[0])}) 
    22302226}; 
    2231 IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"if_expr"}), irbuild_ir($m->hash()->{"if_block"})]]->push(irbuild_ir($m->hash()->{"elsif"})->flatten()), $els)})}); 
    2232 $self->add_constructor("elsif", sub {my($m)=@_; 
    2233 (do{[irbuild_ir($m->hash()->{"elsif_expr"}), irbuild_ir($m->hash()->{"elsif_block"})]})}); 
    2234 $self->add_constructor("if__else", sub {my($m)=@_; 
     2227IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"if_expr"}), irbuild_ir($m->hash()->{"if_block"})]]->push(irbuild_ir($m->hash()->{"elsif"})->flatten()), $els)})}; 
     2228my $construct_elsif = sub {my($m)=@_; 
     2229(do{[irbuild_ir($m->hash()->{"elsif_expr"}), irbuild_ir($m->hash()->{"elsif_block"})]})}; 
     2230my $construct_if__else = sub {my($m)=@_; 
    22352231(do{my $key; 
    22362232for(($m->hash()->keys())->flatten){ 
     
    22442240}; 
    22452241my $one = irbuild_ir($m->hash()->{$key}); 
    2246 $one})}); 
    2247 $self->add_constructor("statement_mod_cond\:if", sub {my($m)=@_; 
    2248 (do{IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr]], GLOBAL::undef())})}); 
    2249 $self->add_constructor("statement_control\:unless", sub {my($m)=@_; 
    2250 (do{IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"})]], GLOBAL::undef(), 1)})}); 
    2251 $self->add_constructor("statement_mod_cond\:unless", sub {my($m)=@_; 
    2252 (do{IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr]], GLOBAL::undef(), 1)})}); 
    2253 $self->add_constructor("statement_control\:given", sub {my($m)=@_; 
    2254 (do{IRx1::Given->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2255 $self->add_constructor("statement_mod_loop\:given", sub {my($m)=@_; 
    2256 (do{IRx1::Given->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    2257 $self->add_constructor("statement_control\:when", sub {my($m)=@_; 
    2258 (do{IRx1::When->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2259 $self->add_constructor("statement_mod_cond\:when", sub {my($m)=@_; 
    2260 (do{IRx1::When->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    2261 $self->add_constructor("statement_control\:default", sub {my($m)=@_; 
    2262 (do{IRx1::When->newp($m, GLOBAL::undef(), irbuild_ir($m->hash()->{"block"}))})}); 
    2263 $self->add_constructor("statement_prefix\:do", sub {my($m)=@_; 
    2264 (do{IRx1::Apply->newp($m, "statement_prefix\:do", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}); 
    2265 $self->add_constructor("statement_prefix\:try", sub {my($m)=@_; 
    2266 (do{IRx1::Apply->newp($m, "statement_prefix\:try", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}); 
    2267 $self->add_constructor("statement_prefix\:gather", sub {my($m)=@_; 
    2268 (do{IRx1::Apply->newp($m, "statement_prefix\:gather", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}); 
    2269 $self->add_constructor("statement_prefix\:contend", sub {my($m)=@_; 
    2270 (do{IRx1::Apply->newp($m, "statement_prefix\:contend", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}); 
    2271 $self->add_constructor("statement_prefix\:async", sub {my($m)=@_; 
    2272 (do{IRx1::Apply->newp($m, "statement_prefix\:async", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}); 
    2273 $self->add_constructor("statement_prefix\:lazy", sub {my($m)=@_; 
    2274 (do{IRx1::Apply->newp($m, "statement_prefix\:lazy", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}); 
    2275 $self->add_constructor("pblock", sub {my($m)=@_; 
     2242$one})}; 
     2243my $construct_statement_mod_cond_58if = sub {my($m)=@_; 
     2244(do{IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr]], GLOBAL::undef())})}; 
     2245my $construct_statement_control_58unless = sub {my($m)=@_; 
     2246(do{IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"})]], GLOBAL::undef(), 1)})}; 
     2247my $construct_statement_mod_cond_58unless = sub {my($m)=@_; 
     2248(do{IRx1::Cond->newp($m, [[irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr]], GLOBAL::undef(), 1)})}; 
     2249my $construct_statement_control_58given = sub {my($m)=@_; 
     2250(do{IRx1::Given->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2251my $construct_statement_mod_loop_58given = sub {my($m)=@_; 
     2252(do{IRx1::Given->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}; 
     2253my $construct_statement_control_58when = sub {my($m)=@_; 
     2254(do{IRx1::When->newp($m, irbuild_ir($m->hash()->{"expr"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2255my $construct_statement_mod_cond_58when = sub {my($m)=@_; 
     2256(do{IRx1::When->newp($m, irbuild_ir($m->hash()->{"modifier_expr"}), $blackboard::statement_expr)})}; 
     2257my $construct_statement_control_58default = sub {my($m)=@_; 
     2258(do{IRx1::When->newp($m, GLOBAL::undef(), irbuild_ir($m->hash()->{"block"}))})}; 
     2259my $construct_statement_prefix_58do = sub {my($m)=@_; 
     2260(do{IRx1::Apply->newp($m, "statement_prefix\:do", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}; 
     2261my $construct_statement_prefix_58try = sub {my($m)=@_; 
     2262(do{IRx1::Apply->newp($m, "statement_prefix\:try", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}; 
     2263my $construct_statement_prefix_58gather = sub {my($m)=@_; 
     2264(do{IRx1::Apply->newp($m, "statement_prefix\:gather", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}; 
     2265my $construct_statement_prefix_58contend = sub {my($m)=@_; 
     2266(do{IRx1::Apply->newp($m, "statement_prefix\:contend", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}; 
     2267my $construct_statement_prefix_58async = sub {my($m)=@_; 
     2268(do{IRx1::Apply->newp($m, "statement_prefix\:async", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}; 
     2269my $construct_statement_prefix_58lazy = sub {my($m)=@_; 
     2270(do{IRx1::Apply->newp($m, "statement_prefix\:lazy", IRx1::Capture->newp1($m, [irbuild_ir($m->hash()->{"statement"})]))})}; 
     2271my $construct_pblock = sub {my($m)=@_; 
    22762272(do{if($m->hash()->{"signature"}) { 
    22772273(do{IRx1::SubDecl->newp($m, GLOBAL::undef(), GLOBAL::undef(), GLOBAL::undef(), GLOBAL::undef(), irbuild_ir($m->hash()->{"signature"}), GLOBAL::undef(), irbuild_ir($m->hash()->{"block"}))}) 
    22782274}else { 
    22792275(do{irbuild_ir($m->hash()->{"block"})}) 
    2280 }})}); 
    2281 $self->add_constructor("block", sub {my($m)=@_; 
    2282 (do{IRx1::Block->newp($m, irbuild_ir($m->hash()->{"statementlist"}))})}); 
    2283 $self->add_constructor("plurality_declarator\:multi", sub {my($m)=@_; 
     2276}})}; 
     2277my $construct_block = sub {my($m)=@_; 
     2278(do{IRx1::Block->newp($m, irbuild_ir($m->hash()->{"statementlist"}))})}; 
     2279my $construct_plurality_declarator_58multi = sub {my($m)=@_; 
    22842280(do{{ package IRx1_Build; use vars '$plurality'};local $blackboard::plurality = "multi"; 
    2285 (irbuild_ir($m->hash()->{"pluralized"}) || irbuild_ir($m->hash()->{"routine_def"}))})}); 
    2286 $self->add_constructor("routine_declarator\:routine_def", sub {my($m)=@_; 
     2281(irbuild_ir($m->hash()->{"pluralized"}) || irbuild_ir($m->hash()->{"routine_def"}))})}; 
     2282my $construct_routine_declarator_58routine_def = sub {my($m)=@_; 
    22872283(do{my $scope = $blackboard::scope; 
    22882284{ package IRx1_Build; use vars '$scope'};local $blackboard::scope; 
     
    23002296(do{($sig = irbuild_ir($m->hash()->{"multisig"})->[0])}) 
    23012297}; 
    2302 IRx1::SubDecl->newp($m, $scope, GLOBAL::undef(), $plurality, $ident, $sig, irbuild_ir($m->hash()->{"trait"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2303 $self->add_constructor("routine_def", sub {my($m)=@_; 
     2298IRx1::SubDecl->newp($m, $scope, GLOBAL::undef(), $plurality, $ident, $sig, irbuild_ir($m->hash()->{"trait"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2299my $construct_routine_def = sub {my($m)=@_; 
    23042300(do{my $scope = $blackboard::scope; 
    23052301{ package IRx1_Build; use vars '$scope'};local $blackboard::scope; 
     
    23172313(do{($sig = irbuild_ir($m->hash()->{"multisig"})->[0])}) 
    23182314}; 
    2319 IRx1::SubDecl->newp($m, $scope, GLOBAL::undef(), $plurality, $ident, $sig, irbuild_ir($m->hash()->{"trait"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2320 $self->add_constructor("routine_declarator\:method_def", sub {my($m)=@_; 
     2315IRx1::SubDecl->newp($m, $scope, GLOBAL::undef(), $plurality, $ident, $sig, irbuild_ir($m->hash()->{"trait"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2316my $construct_routine_declarator_58method_def = sub {my($m)=@_; 
    23212317(do{my $plurality = $blackboard::plurality; 
    23222318{ package IRx1_Build; use vars '$plurality'};local $blackboard::plurality; 
     
    23252321(do{($multisig = [IRx1::Signature->newp($m, [], GLOBAL::undef())])}) 
    23262322}; 
    2327 IRx1::MethodDecl->newp($m, GLOBAL::undef(), GLOBAL::undef(), $plurality, irbuild_ir($m->hash()->{"ident"}), $multisig->[0], irbuild_ir($m->hash()->{"trait"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2328 $self->add_constructor("signature", sub {my($m)=@_; 
    2329 (do{IRx1::Signature->newp($m, irbuild_ir($m->hash()->{"parsep"}), GLOBAL::undef())})}); 
    2330 $self->add_constructor("parameter", sub {my($m)=@_; 
    2331 (do{IRx1::Parameter->newp($m, irbuild_ir($m->hash()->{"type_constraint"}), irbuild_ir($m->hash()->{"quantchar"}), irbuild_ir($m->hash()->{"param_var"}))})}); 
    2332 $self->add_constructor("param_var", sub {my($m)=@_; 
    2333 (do{IRx1::ParamVar->newp($m, irbuild_ir($m->hash()->{"sigil"}), irbuild_ir($m->hash()->{"twigil"}), irbuild_ir($m->hash()->{"ident"}))})}); 
    2334 $self->add_constructor("capture", sub {my($m)=@_; 
     2323IRx1::MethodDecl->newp($m, GLOBAL::undef(), GLOBAL::undef(), $plurality, irbuild_ir($m->hash()->{"ident"}), $multisig->[0], irbuild_ir($m->hash()->{"trait"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2324my $construct_signature = sub {my($m)=@_; 
     2325(do{IRx1::Signature->newp($m, irbuild_ir($m->hash()->{"parsep"}), GLOBAL::undef())})}; 
     2326my $construct_parameter = sub {my($m)=@_; 
     2327(do{IRx1::Parameter->newp($m, irbuild_ir($m->hash()->{"type_constraint"}), irbuild_ir($m->hash()->{"quantchar"}), irbuild_ir($m->hash()->{"param_var"}))})}; 
     2328my $construct_param_var = sub {my($m)=@_; 
     2329(do{IRx1::ParamVar->newp($m, irbuild_ir($m->hash()->{"sigil"}), irbuild_ir($m->hash()->{"twigil"}), irbuild_ir($m->hash()->{"ident"}))})}; 
     2330my $construct_capture = sub {my($m)=@_; 
    23352331(do{if(GLOBAL::not($m->hash()->{"EXPR"})) { 
    23362332(do{IRx1::Capture->newp1($m, [])}) 
     
    23552351}else { 
    23562352(do{GLOBAL::die("capture\ AST\ form\ not\ recognized")}) 
    2357 }})}); 
    2358 $self->add_constructor("colonpair", sub {my($m)=@_; 
     2353}})}; 
     2354my $construct_colonpair = sub {my($m)=@_; 
    23592355(do{my $key; 
    23602356for(($m->hash()->keys())->flatten){ 
     
    23682364}; 
    23692365my $one = irbuild_ir($m->hash()->{$key}); 
    2370 $one})}); 
    2371 $self->add_constructor("colonpair__false", sub {my($m)=@_; 
    2372 (do{IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), IRx1::NumInt->newp($m, 0))})}); 
    2373 $self->add_constructor("colonpair__value", sub {my($m)=@_; 
     2366$one})}; 
     2367my $construct_colonpair__false = sub {my($m)=@_; 
     2368(do{IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), IRx1::NumInt->newp($m, 0))})}; 
     2369my $construct_colonpair__value = sub {my($m)=@_; 
    23742370(do{my $value; 
    23752371if($m->hash()->{"postcircumfix"}) { 
     
    23782374(do{($value = IRx1::NumInt->newp($m, 1))}) 
    23792375}; 
    2380 IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), $value)})}); 
    2381 $self->add_constructor("quotepair", sub {my($m)=@_; 
     2376IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), $value)})}; 
     2377my $construct_quotepair = sub {my($m)=@_; 
    23822378(do{my $key; 
    23832379for(($m->hash()->keys())->flatten){ 
     
    23912387}; 
    23922388my $one = irbuild_ir($m->hash()->{$key}); 
    2393 $one})}); 
    2394 $self->add_constructor("quotepair__false", sub {my($m)=@_; 
    2395 (do{IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), IRx1::NumInt->newp($m, 0))})}); 
    2396 $self->add_constructor("quotepair__value", sub {my($m)=@_; 
     2389$one})}; 
     2390my $construct_quotepair__false = sub {my($m)=@_; 
     2391(do{IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), IRx1::NumInt->newp($m, 0))})}; 
     2392my $construct_quotepair__value = sub {my($m)=@_; 
    23972393(do{my $value; 
    23982394if($m->hash()->{"postcircumfix"}) { 
     
    24012397(do{($value = IRx1::NumInt->newp($m, 1))}) 
    24022398}; 
    2403 IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), $value)})}); 
    2404 $self->add_constructor("quotepair__nth", sub {my($m)=@_; 
    2405 (do{IRx1::Pair->newp($m, "nth", irbuild_ir($m->hash()->{"n"}))})}); 
    2406 $self->add_constructor("package_declarator\:role", sub {my($m)=@_; 
     2399IRx1::Pair->newp($m, irbuild_ir($m->hash()->{"ident"}), $value)})}; 
     2400my $construct_quotepair__nth = sub {my($m)=@_; 
     2401(do{IRx1::Pair->newp($m, "nth", irbuild_ir($m->hash()->{"n"}))})}; 
     2402my $construct_package_declarator_58role = sub {my($m)=@_; 
    24072403(do{{ package IRx1_Build; use vars '$package_declarator'};local $blackboard::package_declarator = "role"; 
    2408 irbuild_ir($m->hash()->{"package_def"})})}); 
    2409 $self->add_constructor("package_declarator\:class", sub {my($m)=@_; 
     2404irbuild_ir($m->hash()->{"package_def"})})}; 
     2405my $construct_package_declarator_58class = sub {my($m)=@_; 
    24102406(do{{ package IRx1_Build; use vars '$package_declarator'};local $blackboard::package_declarator = "class"; 
    2411 irbuild_ir($m->hash()->{"package_def"})})}); 
    2412 $self->add_constructor("package_declarator\:module", sub {my($m)=@_; 
     2407irbuild_ir($m->hash()->{"package_def"})})}; 
     2408my $construct_package_declarator_58module = sub {my($m)=@_; 
    24132409(do{{ package IRx1_Build; use vars '$package_declarator'};local $blackboard::package_declarator = "module"; 
    2414 irbuild_ir($m->hash()->{"package_def"})})}); 
    2415 $self->add_constructor("package_declarator\:package", sub {my($m)=@_; 
     2410irbuild_ir($m->hash()->{"package_def"})})}; 
     2411my $construct_package_declarator_58package = sub {my($m)=@_; 
    24162412(do{{ package IRx1_Build; use vars '$package_declarator'};local $blackboard::package_declarator = "package"; 
    2417 irbuild_ir($m->hash()->{"package_def"})})}); 
    2418 $self->add_constructor("package_declarator\:grammar", sub {my($m)=@_; 
     2413irbuild_ir($m->hash()->{"package_def"})})}; 
     2414my $construct_package_declarator_58grammar = sub {my($m)=@_; 
    24192415(do{{ package IRx1_Build; use vars '$package_declarator'};local $blackboard::package_declarator = "grammar"; 
    2420 irbuild_ir($m->hash()->{"package_def"})})}); 
    2421 $self->add_constructor("package_def", sub {my($m)=@_; 
    2422 (do{IRx1::PackageDecl->newp($m, GLOBAL::undef(), GLOBAL::undef(), $blackboard::package_declarator, irbuild_ir($m->hash()->{"module_name"})->[0], irbuild_ir($m->hash()->{"traits"}), irbuild_ir($m->hash()->{"block"}))})}); 
    2423 $self->add_constructor("fulltypename", sub {my($m)=@_; 
    2424 (do{irbuild_ir($m->hash()->{"typename"})->join("\:\:")})}); 
    2425 $self->add_constructor("typename", sub {my($m)=@_; 
    2426 (do{($m->match_string())})}); 
    2427 $self->add_constructor("trait_verb\:is", sub {my($m)=@_; 
    2428 (do{IRx1::Trait->newp($m, "is", irbuild_ir($m->hash()->{"ident"}))})}); 
    2429 $self->add_constructor("trait_verb\:does", sub {my($m)=@_; 
    2430 (do{IRx1::Trait->newp($m, "does", irbuild_ir($m->hash()->{"role_name"}))})}); 
    2431 $self->add_constructor("circumfix\:pblock", sub {my($m)=@_; 
     2416irbuild_ir($m->hash()->{"package_def"})})}; 
     2417my $construct_package_def = sub {my($m)=@_; 
     2418(do{IRx1::PackageDecl->newp($m, GLOBAL::undef(), GLOBAL::undef(), $blackboard::package_declarator, irbuild_ir($m->hash()->{"module_name"})->[0], irbuild_ir($m->hash()->{"traits"}), irbuild_ir($m->hash()->{"block"}))})}; 
     2419my $construct_fulltypename = sub {my($m)=@_; 
     2420(do{irbuild_ir($m->hash()->{"typename"})->join("\:\:")})}; 
     2421my $construct_typename = sub {my($m)=@_; 
     2422(do{($m->match_string())})}; 
     2423my $construct_trait_verb_58is = sub {my($m)=@_; 
     2424(do{IRx1::Trait->newp($m, "is", irbuild_ir($m->hash()->{"ident"}))})}; 
     2425my $construct_trait_verb_58does = sub {my($m)=@_; 
     2426(do{IRx1::Trait->newp($m, "does", irbuild_ir($m->hash()->{"role_name"}))})}; 
     2427my $construct_circumfix_58pblock = sub {my($m)=@_; 
    24322428(do{if((($m->hash()->{"block"}->hash()->{"statementlist"}->elems() == 0) or $m->hash()->{"block"}->hash()->{"statementlist"}->[0]->match_string()->re_matchp("\^\:"))) { 
    24332429(do{IRx1::Hash->newp($m, irbuild_ir($m->hash()->{"block"}->hash()->{"statementlist"}))}) 
     
    24402436}else { 
    24412437(do{GLOBAL::die("AST\ handler\ circumfix\:pblock\ partially\ unimplemented")}) 
    2442 }})}); 
    2443 $self->add_constructor("regex_declarator\:regex_def", sub {my($m)=@_; 
    2444 (do{IRx1::RegexDef->newp($m, irbuild_ir($m->hash()->{"ident"}), irbuild_ir($m->hash()->{"regex_block"}))})}); 
    2445 $self->add_constructor("regex_block", sub {my($m)=@_; 
    2446 (do{irbuild_ir($m->hash()->{"regex"})})}); 
    2447 $self->add_constructor("regex", sub {my($m)=@_; 
    2448 (do{IRx1::Regex->newp($m, irbuild_ir($m->hash()->{"pattern"}))})}); 
    2449 $self->add_constructor("regex_first", sub {my($m)=@_; 
    2450 (do{IRx1::RxFirst->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}); 
    2451 $self->add_constructor("regex_every", sub {my($m)=@_; 
    2452 (do{IRx1::RxEvery->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}); 
    2453 $self->add_constructor("regex_submatch", sub {my($m)=@_; 
    2454 (do{IRx1::RxSubmatch->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}); 
    2455 $self->add_constructor("regex_any", sub {my($m)=@_; 
    2456 (do{IRx1::RxAny->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}); 
    2457 $self->add_constructor("regex_all", sub {my($m)=@_; 
    2458 (do{IRx1::RxAll->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}); 
    2459 $self->add_constructor("regex_sequence", sub {my($m)=@_; 
    2460 (do{IRx1::RxSequence->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}); 
    2461 $self->add_constructor("regex_quantified_atom", sub {my($m)=@_; 
    2462 (do{IRx1::RxQuantifiedAtom->newp($m, irbuild_ir($m->hash()->{"regex_atom"}), irbuild_ir($m->hash()->{"regex_quantifier"}))})}); 
    2463 $self->add_constructor("regex_quantifier", sub {my($m)=@_; 
    2464 (do{($m->match_string())})}); 
    2465 $self->add_constructor("regex_atom", sub {my($m)=@_; 
     2438}})}; 
     2439my $construct_regex_declarator_58regex_def = sub {my($m)=@_; 
     2440(do{IRx1::RegexDef->newp($m, irbuild_ir($m->hash()->{"ident"}), irbuild_ir($m->hash()->{"regex_block"}))})}; 
     2441my $construct_regex_block = sub {my($m)=@_; 
     2442(do{irbuild_ir($m->hash()->{"regex"})})}; 
     2443my $construct_regex = sub {my($m)=@_; 
     2444(do{IRx1::Regex->newp($m, irbuild_ir($m->hash()->{"pattern"}))})}; 
     2445my $construct_regex_first = sub {my($m)=@_; 
     2446(do{IRx1::RxFirst->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}; 
     2447my $construct_regex_every = sub {my($m)=@_; 
     2448(do{IRx1::RxEvery->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}; 
     2449my $construct_regex_submatch = sub {my($m)=@_; 
     2450(do{IRx1::RxSubmatch->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}; 
     2451my $construct_regex_any = sub {my($m)=@_; 
     2452(do{IRx1::RxAny->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}; 
     2453my $construct_regex_all = sub {my($m)=@_; 
     2454(do{IRx1::RxAll->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}; 
     2455my $construct_regex_sequence = sub {my($m)=@_; 
     2456(do{IRx1::RxSequence->newp($m, irbuild_ir($m->hash()->{"patterns"}))})}; 
     2457my $construct_regex_quantified_atom = sub {my($m)=@_; 
     2458(do{IRx1::RxQuantifiedAtom->newp($m, irbuild_ir($m->hash()->{"regex_atom"}), irbuild_ir($m->hash()->{"regex_quantifier"}))})}; 
     2459my $construct_regex_quantifier = sub {my($m)=@_; 
     2460(do{($m->match_string())})}; 
     2461my $construct_regex_atom = sub {my($m)=@_; 
    24662462(do{my $key; 
    24672463for(($m->hash()->keys())->flatten){