Changeset 21584 for misc

Show
Ignore:
Timestamp:
07/28/08 00:36:40 (5 months ago)
Author:
putter
Message:

[elf_g] temp() is now used for dynamically scoped variables.
Code needing the old context var bogosity should stay with the frozen elf_f.
[STD_red] Accept 'temp' as a scope_declarator.

Location:
misc
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • misc/STD_red/std.rb

    r21514 r21584  
    816816             _match_from(b,h,:scoped)) 
    817817    end 
    818     def_tokens_rest :scope_declarator,false,%w{ my our state constant has },%q{b=pos; s=scoped and _match_from(b,{:scoped=>s},:<sym>) } 
     818    def_tokens_rest :scope_declarator,false,%w{ my our state constant has temp },%q{b=pos; s=scoped and _match_from(b,{:scoped=>s},:<sym>) } #R NONSPEC temp added. 
    819819    def_tokens_rest :package_declarator,false,%w{ class grammar module role package },%q{b=pos; pd=package_def and _match_from(b,{:package_def=>pd},:<sym>) } #end;end 
    820820    def_tokens_rest :package_declarator,false,%w{ require },%q{ module_name and (_EXPR;true) } 
  • misc/elf/elf_g

    r21553 r21584  
    19471947my $result = (irbuild_ir($m->{"hash"}->{"expr"}) || irbuild_ir($m->{"hash"}->{"control"})); 
    19481948if(($m->{"hash"}->{"expr"} && (($m->{"hash"}->{"mod_loop"} || $m->{"hash"}->{"mod_cond"})))) { 
    1949 (do{{package main; use vars '$es_blackboard__statement_expr'};local $::es_blackboard__statement_expr = $result; 
     1949(do{{ package blackboard; use vars '$statement_expr'};local $blackboard::statement_expr = $result; 
    19501950($result = (irbuild_ir($m->{"hash"}->{"mod_loop"}) || irbuild_ir($m->{"hash"}->{"mod_cond"}))); 
    19511951if($m->{"hash"}->{"mod_condloop"}) { 
    1952 (do{($::es_blackboard__statement_expr = $result); 
     1952(do{($blackboard::statement_expr = $result); 
    19531953($result = irbuild_ir($m->{"hash"}->{"mod_condloop"}))}) 
    19541954}}) 
     
    19801980(do{IRx1::Pair->newp($m, irbuild_ir($m->{"hash"}->{"key"}), irbuild_ir($m->{"hash"}->{"val"}))})}); 
    19811981$main::irbuilder->add_constructor("expect_term", sub {my($m)=@_; 
    1982 (do{{package main; use vars '$es_blackboard__expect_term_base'};local $::es_blackboard__expect_term_base = irbuild_ir($m->{"hash"}->{"noun"}); 
     1982(do{{ package blackboard; use vars '$expect_term_base'};local $blackboard::expect_term_base = irbuild_ir($m->{"hash"}->{"noun"}); 
    19831983my $ops = []; 
    19841984if($m->{"hash"}->{"pre"}) { 
     
    19891989}; 
    19901990for(($ops)->flatten){ 
    1991 (do{($::es_blackboard__expect_term_base = irbuild_ir($_))}) 
    1992 }; 
    1993 $::es_blackboard__expect_term_base})}); 
     1991(do{($blackboard::expect_term_base = irbuild_ir($_))}) 
     1992}; 
     1993$blackboard::expect_term_base})}); 
    19941994$main::irbuilder->add_constructor("term\:expect_term", sub {my($m)=@_; 
    19951995(do{irbuild_ir($m->{"hash"}->{"noun"})})}); 
     
    20092009}})}); 
    20102010$main::irbuilder->add_constructor("dotty\:methodop", sub {my($m)=@_; 
    2011 (do{IRx1::Call->newp($m, $::es_blackboard__expect_term_base, irbuild_ir($m->{"hash"}->{"ident"}), IRx1::Capture->newp($m, (irbuild_ir($m->{"hash"}->{"semilist"}) || [])))})}); 
     2011(do{IRx1::Call->newp($m, $blackboard::expect_term_base, irbuild_ir($m->{"hash"}->{"ident"}), IRx1::Capture->newp($m, (irbuild_ir($m->{"hash"}->{"semilist"}) || [])))})}); 
    20122012$main::irbuilder->add_constructor("dotty\:\.\^\!", sub {my($m)=@_; 
    2013 (do{IRx1::Call->newp($m, $::es_blackboard__expect_term_base, ("\^\!" . irbuild_ir($m->{"hash"}->{"methodop"}->{"hash"}->{"ident"})), IRx1::Capture->newp($m, (irbuild_ir($m->{"hash"}->{"methodop"}->{"hash"}->{"semilist"}) || [])))})}); 
     2013(do{IRx1::Call->newp($m, $blackboard::expect_term_base, ("\^\!" . irbuild_ir($m->{"hash"}->{"methodop"}->{"hash"}->{"ident"})), IRx1::Capture->newp($m, (irbuild_ir($m->{"hash"}->{"methodop"}->{"hash"}->{"semilist"}) || [])))})}); 
    20142014$main::irbuilder->add_constructor("dotty\:postcircumfix", sub {my($m)=@_; 
    20152015(do{my $s = ($m->match_string()); 
     
    20202020(do{($args = [$args])}) 
    20212021}; 
    2022 IRx1::Call->newp($m, $::es_blackboard__expect_term_base, $ident, IRx1::Capture->newp($m, ($args || [])))})}); 
     2022IRx1::Call->newp($m, $blackboard::expect_term_base, $ident, IRx1::Capture->newp($m, ($args || [])))})}); 
    20232023$main::irbuilder->add_constructor("postcircumfix", sub {my($m)=@_; 
    20242024(do{my $s = ($m->match_string()); 
     
    20292029(do{($args = [$args])}) 
    20302030}; 
    2031 IRx1::Call->newp($m, $::es_blackboard__expect_term_base, $ident, IRx1::Capture->newp($m, ($args || [])))})}); 
     2031IRx1::Call->newp($m, $blackboard::expect_term_base, $ident, IRx1::Capture->newp($m, ($args || [])))})}); 
    20322032$main::irbuilder->add_constructor("postfix", sub {my($m)=@_; 
    20332033(do{my $op = ($m->match_string()); 
    2034 IRx1::Apply->newp($m, ("postfix\:" . $op), IRx1::Capture->newp($m, [$::es_blackboard__expect_term_base]))})}); 
     2034IRx1::Apply->newp($m, ("postfix\:" . $op), IRx1::Capture->newp($m, [$blackboard::expect_term_base]))})}); 
    20352035$main::irbuilder->add_constructor("prefix", sub {my($m)=@_; 
    20362036(do{my $op = ($m->match_string()); 
    2037 IRx1::Apply->newp($m, ("prefix\:" . $op), IRx1::Capture->newp($m, [$::es_blackboard__expect_term_base]))})}); 
     2037IRx1::Apply->newp($m, ("prefix\:" . $op), IRx1::Capture->newp($m, [$blackboard::expect_term_base]))})}); 
    20382038$main::irbuilder->add_constructor("infix", sub {my($m)=@_; 
    20392039(do{my $op = ($m->match_string()); 
     
    21032103IRx1::Rx->newp($m, $s, irbuild_ir($m->{"hash"}->{"quotepair"}))})}); 
    21042104$main::irbuilder->add_constructor("scope_declarator\:my", sub {my($m)=@_; 
    2105 (do{{package main; use vars '$es_blackboard__scope'};local $::es_blackboard__scope = "my"; 
     2105(do{{ package blackboard; use vars '$scope'};local $blackboard::scope = "my"; 
    21062106irbuild_ir($m->{"hash"}->{"scoped"})})}); 
    21072107$main::irbuilder->add_constructor("scope_declarator\:has", sub {my($m)=@_; 
    2108 (do{{package main; use vars '$es_blackboard__scope'};local $::es_blackboard__scope = "has"; 
     2108(do{{ package blackboard; use vars '$scope'};local $blackboard::scope = "has"; 
    21092109irbuild_ir($m->{"hash"}->{"scoped"})})}); 
    21102110$main::irbuilder->add_constructor("scope_declarator\:our", sub {my($m)=@_; 
    2111 (do{{package main; use vars '$es_blackboard__scope'};local $::es_blackboard__scope = "our"; 
     2111(do{{ package blackboard; use vars '$scope'};local $blackboard::scope = "our"; 
     2112irbuild_ir($m->{"hash"}->{"scoped"})})}); 
     2113$main::irbuilder->add_constructor("scope_declarator\:temp", sub {my($m)=@_; 
     2114(do{{ package blackboard; use vars '$scope'};local $blackboard::scope = "temp"; 
    21122115irbuild_ir($m->{"hash"}->{"scoped"})})}); 
    21132116$main::irbuilder->add_constructor("scoped", sub {my($m)=@_; 
    2114 (do{{package main; use vars '$es_blackboard__typenames'};local $::es_blackboard__typenames = irbuild_ir($m->{"hash"}->{"fulltypename"}); 
     2117(do{{ package blackboard; use vars '$typenames'};local $blackboard::typenames = irbuild_ir($m->{"hash"}->{"fulltypename"}); 
    21152118((((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"}))})}); 
    21162119$main::irbuilder->add_constructor("variable_decl", sub {my($m)=@_; 
    2117 (do{my $scope = $::es_blackboard__scope; 
    2118 {package main; use vars '$es_blackboard__scope'};local $::es_blackboard__scope; 
    2119 my $typenames = $::es_blackboard__typenames; 
    2120 {package main; use vars '$es_blackboard__typenames'};local $::es_blackboard__typenames = GLOBAL::undef(); 
     2120(do{my $scope = $blackboard::scope; 
     2121{ package blackboard; use vars '$scope'};local $blackboard::scope; 
     2122my $typenames = $blackboard::typenames; 
     2123{ package blackboard; use vars '$typenames'};local $blackboard::typenames = GLOBAL::undef(); 
    21212124IRx1::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"}))})}); 
    21222125$main::irbuilder->add_constructor("variable", sub {my($m)=@_; 
     
    21322135}else { 
    21332136(do{my $v = IRx1::Var->newp($m, irbuild_ir($m->{"hash"}->{"sigil"}), $tw, irbuild_ir($m->{"hash"}->{"desigilname"})); 
    2134 {package main; use vars '$es_blackboard__expect_term_base'};local $::es_blackboard__expect_term_base = $v; 
     2137{ package blackboard; use vars '$expect_term_base'};local $blackboard::expect_term_base = $v; 
    21352138irbuild_ir($m->{"hash"}->{"postcircumfix"})}) 
    21362139}}) 
     
    21582161(do{IRx1::For->newp($m, irbuild_ir($m->{"hash"}->{"expr"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
    21592162$main::irbuilder->add_constructor("statement_mod_loop\:for", sub {my($m)=@_; 
    2160 (do{IRx1::For->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $::es_blackboard__statement_expr)})}); 
     2163(do{IRx1::For->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    21612164$main::irbuilder->add_constructor("statement_control\:while", sub {my($m)=@_; 
    21622165(do{IRx1::Loop->newp($m, irbuild_ir($m->{"hash"}->{"expr"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
    21632166$main::irbuilder->add_constructor("statement_mod_loop\:while", sub {my($m)=@_; 
    2164 (do{IRx1::Loop->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $::es_blackboard__statement_expr)})}); 
     2167(do{IRx1::Loop->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    21652168$main::irbuilder->add_constructor("statement_control\:until", sub {my($m)=@_; 
    21662169(do{my $test = IRx1::Apply->newp($m, "not", IRx1::Capture->newp($m, [irbuild_ir($m->{"hash"}->{"expr"})])); 
     
    21682171$main::irbuilder->add_constructor("statement_mod_loop\:until", sub {my($m)=@_; 
    21692172(do{my $test = IRx1::Apply->newp($m, "not", IRx1::Capture->newp($m, [irbuild_ir($m->{"hash"}->{"modifier_expr"})])); 
    2170 IRx1::Loop->newp($m, $test, $::es_blackboard__statement_expr)})}); 
     2173IRx1::Loop->newp($m, $test, $blackboard::statement_expr)})}); 
    21712174$main::irbuilder->add_constructor("statement_control\:loop", sub {my($m)=@_; 
    21722175(do{my $e1 = irbuild_ir($m->{"hash"}->{"loop_eee"}->{"hash"}->{"loop_e1"}); 
     
    21982201$one})}); 
    21992202$main::irbuilder->add_constructor("statement_mod_cond\:if", sub {my($m)=@_; 
    2200 (do{IRx1::Cond->newp($m, [[irbuild_ir($m->{"hash"}->{"modifier_expr"}), $::es_blackboard__statement_expr]], GLOBAL::undef())})}); 
     2203(do{IRx1::Cond->newp($m, [[irbuild_ir($m->{"hash"}->{"modifier_expr"}), $blackboard::statement_expr]], GLOBAL::undef())})}); 
    22012204$main::irbuilder->add_constructor("statement_control\:unless", sub {my($m)=@_; 
    22022205(do{IRx1::Cond->newp($m, [[irbuild_ir($m->{"hash"}->{"expr"}), irbuild_ir($m->{"hash"}->{"block"})]], GLOBAL::undef(), 1)})}); 
    22032206$main::irbuilder->add_constructor("statement_mod_cond\:unless", sub {my($m)=@_; 
    2204 (do{IRx1::Cond->newp($m, [[irbuild_ir($m->{"hash"}->{"modifier_expr"}), $::es_blackboard__statement_expr]], GLOBAL::undef(), 1)})}); 
     2207(do{IRx1::Cond->newp($m, [[irbuild_ir($m->{"hash"}->{"modifier_expr"}), $blackboard::statement_expr]], GLOBAL::undef(), 1)})}); 
    22052208$main::irbuilder->add_constructor("statement_control\:given", sub {my($m)=@_; 
    22062209(do{IRx1::Given->newp($m, irbuild_ir($m->{"hash"}->{"expr"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
    22072210$main::irbuilder->add_constructor("statement_mod_loop\:given", sub {my($m)=@_; 
    2208 (do{IRx1::Given->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $::es_blackboard__statement_expr)})}); 
     2211(do{IRx1::Given->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    22092212$main::irbuilder->add_constructor("statement_control\:when", sub {my($m)=@_; 
    22102213(do{IRx1::When->newp($m, irbuild_ir($m->{"hash"}->{"expr"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
    22112214$main::irbuilder->add_constructor("statement_mod_cond\:when", sub {my($m)=@_; 
    2212 (do{IRx1::When->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $::es_blackboard__statement_expr)})}); 
     2215(do{IRx1::When->newp($m, irbuild_ir($m->{"hash"}->{"modifier_expr"}), $blackboard::statement_expr)})}); 
    22132216$main::irbuilder->add_constructor("statement_control\:default", sub {my($m)=@_; 
    22142217(do{IRx1::When->newp($m, GLOBAL::undef(), irbuild_ir($m->{"hash"}->{"block"}))})}); 
     
    22342237(do{IRx1::Block->newp($m, irbuild_ir($m->{"hash"}->{"statementlist"}))})}); 
    22352238$main::irbuilder->add_constructor("plurality_declarator\:multi", sub {my($m)=@_; 
    2236 (do{{package main; use vars '$es_blackboard__plurality'};local $::es_blackboard__plurality = "multi"; 
     2239(do{{ package blackboard; use vars '$plurality'};local $blackboard::plurality = "multi"; 
    22372240(irbuild_ir($m->{"hash"}->{"pluralized"}) || irbuild_ir($m->{"hash"}->{"routine_def"}))})}); 
    22382241$main::irbuilder->add_constructor("routine_declarator\:routine_def", sub {my($m)=@_; 
    2239 (do{my $scope = $::es_blackboard__scope; 
    2240 {package main; use vars '$es_blackboard__scope'};local $::es_blackboard__scope; 
    2241 my $plurality = $::es_blackboard__plurality; 
    2242 {package main; use vars '$es_blackboard__plurality'};local $::es_blackboard__plurality; 
     2242(do{my $scope = $blackboard::scope; 
     2243{ package blackboard; use vars '$scope'};local $blackboard::scope; 
     2244my $plurality = $blackboard::plurality; 
     2245{ package blackboard; use vars '$plurality'};local $blackboard::plurality; 
    22432246my $ident = ""; 
    22442247if($m->{"hash"}->{"ident"}) { 
     
    22512254IRx1::SubDecl->newp($m, $scope, GLOBAL::undef(), $plurality, $ident, $sig, irbuild_ir($m->{"hash"}->{"trait"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
    22522255$main::irbuilder->add_constructor("routine_def", sub {my($m)=@_; 
    2253 (do{my $scope = $::es_blackboard__scope; 
    2254 {package main; use vars '$es_blackboard__scope'};local $::es_blackboard__scope; 
    2255 my $plurality = $::es_blackboard__plurality; 
    2256 {package main; use vars '$es_blackboard__plurality'};local $::es_blackboard__plurality; 
     2256(do{my $scope = $blackboard::scope; 
     2257{ package blackboard; use vars '$scope'};local $blackboard::scope; 
     2258my $plurality = $blackboard::plurality; 
     2259{ package blackboard; use vars '$plurality'};local $blackboard::plurality; 
    22572260my $ident = ""; 
    22582261if($m->{"hash"}->{"ident"}) { 
     
    22652268IRx1::SubDecl->newp($m, $scope, GLOBAL::undef(), $plurality, $ident, $sig, irbuild_ir($m->{"hash"}->{"trait"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
    22662269$main::irbuilder->add_constructor("routine_declarator\:method_def", sub {my($m)=@_; 
    2267 (do{my $plurality = $::es_blackboard__plurality; 
    2268 {package main; use vars '$es_blackboard__plurality'};local $::es_blackboard__plurality; 
     2270(do{my $plurality = $blackboard::plurality; 
     2271{ package blackboard; use vars '$plurality'};local $blackboard::plurality; 
    22692272my $multisig = irbuild_ir($m->{"hash"}->{"multisig"}); 
    22702273if(GLOBAL::not($multisig)) { 
     
    23512354(do{IRx1::Pair->newp($m, "nth", irbuild_ir($m->{"hash"}->{"n"}))})}); 
    23522355$main::irbuilder->add_constructor("package_declarator\:role", sub {my($m)=@_; 
    2353 (do{{package main; use vars '$es_blackboard__package_declarator'};local $::es_blackboard__package_declarator = "role"; 
     2356(do{{ package blackboard; use vars '$package_declarator'};local $blackboard::package_declarator = "role"; 
    23542357irbuild_ir($m->{"hash"}->{"package_def"})})}); 
    23552358$main::irbuilder->add_constructor("package_declarator\:class", sub {my($m)=@_; 
    2356 (do{{package main; use vars '$es_blackboard__package_declarator'};local $::es_blackboard__package_declarator = "class"; 
     2359(do{{ package blackboard; use vars '$package_declarator'};local $blackboard::package_declarator = "class"; 
    23572360irbuild_ir($m->{"hash"}->{"package_def"})})}); 
    23582361$main::irbuilder->add_constructor("package_declarator\:module", sub {my($m)=@_; 
    2359 (do{{package main; use vars '$es_blackboard__package_declarator'};local $::es_blackboard__package_declarator = "module"; 
     2362(do{{ package blackboard; use vars '$package_declarator'};local $blackboard::package_declarator = "module"; 
    23602363irbuild_ir($m->{"hash"}->{"package_def"})})}); 
    23612364$main::irbuilder->add_constructor("package_declarator\:package", sub {my($m)=@_; 
    2362 (do{{package main; use vars '$es_blackboard__package_declarator'};local $::es_blackboard__package_declarator = "package"; 
     2365(do{{ package blackboard; use vars '$package_declarator'};local $blackboard::package_declarator = "package"; 
    23632366irbuild_ir($m->{"hash"}->{"package_def"})})}); 
    23642367$main::irbuilder->add_constructor("package_declarator\:grammar", sub {my($m)=@_; 
    2365 (do{{package main; use vars '$es_blackboard__package_declarator'};local $::es_blackboard__package_declarator = "grammar"; 
     2368(do{{ package blackboard; use vars '$package_declarator'};local $blackboard::package_declarator = "grammar"; 
    23662369irbuild_ir($m->{"hash"}->{"package_def"})})}); 
    23672370$main::irbuilder->add_constructor("package_def", sub {my($m)=@_; 
    2368 (do{IRx1::PackageDecl->newp($m, GLOBAL::undef(), GLOBAL::undef(), $::es_blackboard__package_declarator, irbuild_ir($m->{"hash"}->{"module_name"})->[0], irbuild_ir($m->{"hash"}->{"traits"}), irbuild_ir($m->{"hash"}->{"block"}))})}); 
     2371(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"}))})}); 
    23692372$main::irbuilder->add_constructor("fulltypename", sub {my($m)=@_; 
    23702373(do{irbuild_ir($m->{"hash"}->{"typename"})->join("\:\:")})}); 
     
    24952498 
    24962499{ package IRx1::CompUnit; 
    2497 use base "Any";(do{sub note_parents{my $self=CORE::shift;(do{{package main; use vars '$es_whiteboard__parent'};local $::es_whiteboard__parent = $self; 
     2500use base "Any";(do{sub note_parents{my $self=CORE::shift;(do{{ package whiteboard; use vars '$parent'};local $whiteboard::parent = $self; 
    24982501for(($self->child_nodes)->flatten){ 
    24992502(do{$_->note_parents()}) 
     
    25032506 
    25042507{ package IRx1::Base; 
    2505 use base "Any";(do{sub note_parents{my $self=CORE::shift;(do{($self->notes->{'parent'} = $::es_whiteboard__parent); 
    2506 {package main; use vars '$es_whiteboard__parent'};local $::es_whiteboard__parent = $self; 
     2508use base "Any";(do{sub note_parents{my $self=CORE::shift;(do{($self->notes->{'parent'} = $whiteboard::parent); 
     2509{ package whiteboard; use vars '$parent'};local $whiteboard::parent = $self; 
    25072510for(($self->child_nodes)->flatten){ 
    25082511(do{$_->note_parents()}) 
     
    25132516{ package IRx1::CompUnit_and_Block; 
    25142517use base "Any";(do{sub note_block_lexical_variable_decls{my $self=CORE::shift;(do{my $a = []; 
    2515 {package main; use vars '$es_whiteboard__lexical_variable_decls'};local $::es_whiteboard__lexical_variable_decls = $a; 
     2518{ package whiteboard; use vars '$lexical_variable_decls'};local $whiteboard::lexical_variable_decls = $a; 
    25162519($self->notes->{'lexical_variable_decls'} = $a); 
    25172520for(($self->child_nodes)->flatten){ 
     
    25232526{ package IRx1::VarDecl; 
    25242527use base "Any";(do{sub note_block_lexical_variable_decls{my $self=CORE::shift;(do{if($self->is_lexical) { 
    2525 (do{$::es_whiteboard__lexical_variable_decls->push($self)}) 
     2528(do{$whiteboard::lexical_variable_decls->push($self)}) 
    25262529}; 
    25272530($self->notes->{'is'} = {}); 
     
    25352538(do{($self->notes->{'is'}->{'context'} = 1)}) 
    25362539}; 
     2540if(($self->scope() eq "temp")) { 
     2541(do{($self->notes->{'is'}->{'temp'} = 1)}) 
     2542}; 
    25372543for(($self->child_nodes)->flatten){ 
    25382544(do{$_->note_block_lexical_variable_decls()}) 
     
    25432549{ package IRx1::SubDecl; 
    25442550use base "Any";(do{sub note_block_lexical_variable_decls{my $self=CORE::shift;(do{if($_->name()) { 
    2545 (do{$::es_whiteboard__lexical_variable_decls->push($self)}) 
     2551(do{$whiteboard::lexical_variable_decls->push($self)}) 
    25462552}; 
    25472553for(($self->child_nodes)->flatten){ 
     
    25592565 
    25602566{ package IRx1::CompUnit; 
    2561 use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{{package main; use vars '$es_whiteboard__package_chain'};local $::es_whiteboard__package_chain = []; 
    2562 {package main; use vars '$es_whiteboard__lexical_bindings'};local $::es_whiteboard__lexical_bindings = $self->update_lexical_bindings({}, $self->notes->{'lexical_variable_decls'}); 
     2567use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{{ package whiteboard; use vars '$package_chain'};local $whiteboard::package_chain = []; 
     2568{ package whiteboard; use vars '$lexical_bindings'};local $whiteboard::lexical_bindings = $self->update_lexical_bindings({}, $self->notes->{'lexical_variable_decls'}); 
    25632569for(($self->child_nodes)->flatten){ 
    25642570(do{$_->note_environment()}) 
     
    25682574 
    25692575{ package IRx1::Block; 
    2570 use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{{package main; use vars '$es_whiteboard__lexical_bindings'};local $::es_whiteboard__lexical_bindings = $self->update_lexical_bindings($::es_whiteboard__lexical_bindings, $self->notes->{'lexical_variable_decls'}); 
     2576use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{{ package whiteboard; use vars '$lexical_bindings'};local $whiteboard::lexical_bindings = $self->update_lexical_bindings($whiteboard::lexical_bindings, $self->notes->{'lexical_variable_decls'}); 
    25712577for(($self->child_nodes)->flatten){ 
    25722578(do{$_->note_environment()}) 
     
    25912597(do{($new_chain = [$self])}) 
    25922598}else { 
    2593 (do{($new_chain = [$::es_whiteboard__package_chain->flatten(), $self])}) 
    2594 }; 
    2595 {package main; use vars '$es_whiteboard__package_chain'};local $::es_whiteboard__package_chain = $new_chain; 
     2599(do{($new_chain = [$whiteboard::package_chain->flatten(), $self])}) 
     2600}; 
     2601{ package whiteboard; use vars '$package_chain'};local $whiteboard::package_chain = $new_chain; 
    25962602for(($self->child_nodes)->flatten){ 
    25972603(do{$_->note_environment()}) 
     
    26012607 
    26022608{ package IRx1::Apply; 
    2603 use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{($self->notes->{'lexical_bindings'} = $::es_whiteboard__lexical_bindings); 
     2609use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{($self->notes->{'lexical_bindings'} = $whiteboard::lexical_bindings); 
    26042610for(($self->child_nodes)->flatten){ 
    26052611(do{$_->note_environment()}) 
     
    26102616{ package IRx1::Var; 
    26112617use base "Any";(do{sub note_environment{my $self=CORE::shift;(do{my $key = ($self->{'sigil'} . $self->{'name'}); 
    2612 ($self->notes->{'decl'} = $::es_whiteboard__lexical_bindings->{$key}); 
     2618($self->notes->{'decl'} = $whiteboard::lexical_bindings->{$key}); 
    26132619if($self->notes->{'decl'}) { 
    26142620(do{($self->notes->{'is'} = $self->notes->{'decl'}->notes()->{'is'})}) 
     
    26162622(do{($self->notes->{'is'} = {})}) 
    26172623}; 
     2624($self->notes->{'crnt_package_chain'} = $whiteboard::package_chain); 
     2625if(($self->notes->{'crnt_package_chain'}->elems() == 0)) { 
     2626(do{($self->notes->{'crnt_package_chain'} = ["Main"])}) 
     2627}; 
     2628($self->notes->{'crnt_package'} = $self->notes->{'crnt_package_chain'}->join("\:\:")); 
     2629($self->name =~ qr/(?:(.+)::)?([^:]+)$/); 
     2630($self->notes->{'package'} = ($1 || $self->notes->{'crnt_package'})); 
     2631($self->notes->{'bare_name'} = $2); 
    26182632for(($self->child_nodes)->flatten){ 
    26192633(do{$_->note_environment()}) 
     
    26322646use base "Any";(do{sub is_lexical{my $self=CORE::shift;(do{($self->scope eq "my")})}; 
    26332647sub is_context{my $self=CORE::shift;(do{$self->notes->{'is'}->{'context'}})}; 
     2648sub is_temp{my $self=CORE::shift;(do{$self->notes->{'is'}->{'temp'}})}; 
    26342649sub name{my $self=CORE::shift;(do{$self->{'var'}->{'name'}})}; 
     2650sub bare_name{my $self=CORE::shift;(do{$self->var()->bare_name()})}; 
     2651sub package{my $self=CORE::shift;(do{$self->var()->package()})}; 
     2652sub crnt_package{my $self=CORE::shift;(do{$self->var()->crnt_package()})}; 
    26352653sub sigil{my $self=CORE::shift;(do{$self->{'var'}->{'sigil'}})}; 
    26362654sub is_scalar{my $self=CORE::shift;(do{($self->{'var'}->{'sigil'} eq "\$")})}; 
     
    26502668{ package IRx1::Var; 
    26512669use base "Any";(do{sub decl{my $self=CORE::shift;(do{$self->notes->{'decl'}})}; 
    2652 sub is_context{my $self=CORE::shift;(do{(((($self->{'twigil'} || "")) eq "\+") || $self->notes->{'is'}->{'context'})})}}) 
     2670sub bare_name{my $self=CORE::shift;(do{$self->notes()->{'bare_name'}})}; 
     2671sub package{my $self=CORE::shift;(do{$self->notes()->{'package'}})}; 
     2672sub crnt_package{my $self=CORE::shift;(do{$self->notes()->{'crnt_package'}})}; 
     2673sub is_context{my $self=CORE::shift;(do{(((($self->{'twigil'} || "")) eq "\+") || $self->notes->{'is'}->{'context'})})}; 
     2674sub is_temp{my $self=CORE::shift;(do{$self->notes->{'is'}->{'context'}})}}) 
    26532675} 
    26542676; 
     
    30643086sub cb__CompUnit{my $self=CORE::shift;my($n)=@_; 
    30653087(do{$n->do_all_analysis(); 
    3066 {package main; use vars '$es_whiteboard__in_package'};local $::es_whiteboard__in_package = []; 
    3067 {package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
    3068 {package main; use vars '$es_whiteboard__compunit_footer'};local $::es_whiteboard__compunit_footer = []; 
     3088{ package whiteboard; use vars '$in_package'};local $whiteboard::in_package = []; 
     3089{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
     3090{ package whiteboard; use vars '$compunit_footer'};local $whiteboard::compunit_footer = []; 
    30693091my $code = (("package\ Main\;\ 
    30703092" . $self->prelude_for_entering_a_package())); 
    30713093my $stmts = $self->e($n->statements()); 
    3072 my $foot = $::es_whiteboard__compunit_footer->join("\;\ 
     3094my $foot = $whiteboard::compunit_footer->join("\;\ 
    30733095"); 
    30743096((($code . $stmts->join("\;\ 
     
    30763098")})}; 
    30773099sub cb__Block{my $self=CORE::shift;my($n)=@_; 
    3078 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
     3100(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
    30793101(("\(do\{" . $self->e($n->statements())->join("\;\ 
    30803102")) . "\}\)")})}; 
     
    30993121}})}; 
    31003122sub cb__ClosureTrait{my $self=CORE::shift;my($n)=@_; 
    3101 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
     3123(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
    31023124((($n->kind() . "\{") . $self->e($n->block())) . "\}")})}; 
    31033125sub cb__PackageDecl{my $self=CORE::shift;my($n)=@_; 
    3104 (do{my $in_package = [$::es_whiteboard__in_package->flatten(), $n->name()]; 
     3126(do{my $in_package = [$whiteboard::in_package->flatten(), $n->name()]; 
    31053127my $name = $in_package->join("\:\:"); 
    31063128my $base = "use\ base\ \"Any\"\;"; 
     
    31333155($head = (($head . $base) . $self->prelude_for_entering_a_package())); 
    31343156if($n->block()) { 
    3135 (do{{package main; use vars '$es_whiteboard__in_package'};local $::es_whiteboard__in_package = $in_package; 
     3157(do{{ package whiteboard; use vars '$in_package'};local $whiteboard::in_package = $in_package; 
    31363158((($head . $self->e(($n->traits() || []))->join("\ 
    31373159")) . $self->e($n->block())) . $foot)}) 
    31383160}else { 
    3139 (do{($::es_whiteboard__in_package = $in_package); 
    3140 $::es_whiteboard__compunit_footer->unshift($foot); 
     3161(do{($whiteboard::in_package = $in_package); 
     3162$whiteboard::compunit_footer->unshift($foot); 
    31413163(($head . $self->e(($n->traits() || []))->join("\ 
    31423164")) . "\;\ 
     
    31453167sub cb__Trait{my $self=CORE::shift;my($n)=@_; 
    31463168(do{if(((($n->verb() eq "is") or ($n->verb() eq "does")))) { 
    3147 (do{my $pkgname = $::es_whiteboard__in_package->join("\:\:"); 
    3148 my $name = (($::es_whiteboard__in_package->splice(0, (-1))->join("\:\:") . "\:\:") . $self->e($n->expr())); 
     3169(do{my $pkgname = $whiteboard::in_package->join("\:\:"); 
     3170my $name = (($whiteboard::in_package->splice(0, (-1))->join("\:\:") . "\:\:") . $self->e($n->expr())); 
    31493171$name->re_gsub("\^\:\:", ""); 
    31503172(((("BEGIN\{push\(\@" . $pkgname) . "\:\:ISA\,\'") . $name) . "\'\)\;\}\ 
     
    31673189my $code = (((((("sub\ " . $name) . "\ \{\ if\(\@_\=\=2\)\{") . $x) . "\=\$_\[1\]\}else\{") . $x) . "\}\}"); 
    31683190if($default) { 
    3169 (do{my $pkg = $::es_whiteboard__in_package->join("\:\:"); 
     3191(do{my $pkg = $whiteboard::in_package->join("\:\:"); 
    31703192($code = (($code . "\;\ 
    31713193") . $self->create_default_for($pkg, $name, $default)))}) 
     
    31743196}})}; 
    31753197sub cb__VarDecl{my $self=CORE::shift;my($n)=@_; 
    3176 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
     3198(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
    31773199if((($n->scope() eq "has"))) { 
    31783200(do{my $default = ""; 
     
    32033225($post = "\}")}) 
    32043226}; 
    3205 {package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 1; 
     3227{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 1; 
    32063228($default = ((("\ \=\ " . $pre) . $self->e($n->default_expr())) . $post))}) 
    32073229}else { 
     
    32203242$name->re_sub_g("\^\(\.\)\:\:", "\$1"); 
    32213243((((((("\{package\ main\;\ use\ vars\ \'" . $name) . "\'\}\;") . "local") . "\ ") . $self->e($n->var())) . $default))}) 
     3244}elsif(($n->is_temp())) { 
     3245(do{my $var = $n->var(); 
     3246my $nam = $self->encode_varname($var->sigil(), $var->twigil(), $var->bare_name()); 
     3247my $pkg = $n->var()->package(); 
     3248((((((((("\{\ package\ " . $pkg) . "\;\ use\ vars\ \'") . $nam) . "\'\}\;") . "local") . "\ ") . $self->e($n->var())) . $default))}) 
    32223249}else { 
    32233250(do{((($n->scope() . "\ ") . $self->e($n->var())) . $default)}) 
     
    33153342}})}; 
    33163343sub cb__SubDecl{my $self=CORE::shift;my($n)=@_; 
    3317 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
     3344(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
    33183345my $name = $n->name(); 
    33193346if($name) { 
     
    33453372(do{""}) 
    33463373}else { 
    3347 (do{{package main; use vars '$es_whiteboard__signature_inits'};local $::es_whiteboard__signature_inits = ""; 
     3374(do{{ package whiteboard; use vars '$signature_inits'};local $whiteboard::signature_inits = ""; 
    33483375my $pl = $self->e($n->parameters())->join("\,"); 
    3349 (((("my\(" . $pl) . "\)\=\@_\;") . $::es_whiteboard__signature_inits) . "\ 
     3376(((("my\(" . $pl) . "\)\=\@_\;") . $whiteboard::signature_inits) . "\ 
    33503377")}) 
    33513378}})}; 
     
    33543381if(($n->quant() && ($n->quant() eq "\*"))) { 
    33553382(do{my $tmp = ("\@" . $n->param_var()->name()); 
    3356 ($::es_whiteboard__signature_inits = ((((($::es_whiteboard__signature_inits . "\ 
     3383($whiteboard::signature_inits = ((((($whiteboard::signature_inits . "\ 
    33573384my\ ") . $enc) . "\ \=\ \\") . $tmp) . "\;")); 
    33583385$tmp}) 
     
    33663393$self->encode_varname($s, $t, $dsn)})}; 
    33673394sub cb__Call{my $self=CORE::shift;my($n)=@_; 
    3368 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
     3395(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
    33693396my $method = $self->e($n->method()); 
    33703397if((($method =~ "postcircumfix\:\<\ \>"))) { 
     
    35343561my $pre = ""; 
    35353562if(($t eq "\+")) { 
    3536 (do{($env = "e")}) 
    3537 }; 
    3538 if((($s eq "\$") && ($env eq "e"))) { 
     3563(do{($env = "x")}) 
     3564}; 
     3565if((($s eq "\$") && ($env eq "x"))) { 
    35393566(do{($pre = "s_")}) 
    35403567}; 
     
    35663593my $v = (($s . $t) . $dsn); 
    35673594if(((($v eq "\$\?PACKAGE") || ($v eq "\$\?MODULE")) || ($v eq "\$\?CLASS"))) { 
    3568 (do{my $pkgname = $::es_whiteboard__in_package->join("\:\:"); 
     3595(do{my $pkgname = $whiteboard::in_package->join("\:\:"); 
    35693596($pkgname = ($pkgname || "Main")); 
    35703597(("\'" . $pkgname) . "\'")}) 
     
    35813608(do{$self->e($n->text())})}; 
    35823609sub cb__Hash{my $self=CORE::shift;my($n)=@_; 
    3583 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 1; 
     3610(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 1; 
    35843611(("\{" . $self->e(($n->hash() || []))->join("\,")) . "\}")})}; 
    35853612sub cb__Buf{my $self=CORE::shift;my($n)=@_; 
     
    35903617(("qr\/" . $pat) . "\/")})}; 
    35913618sub cb__Pair{my $self=CORE::shift;my($n)=@_; 
    3592 (do{if($::es_whiteboard__emit_pairs_inline) { 
    3593 (do{{package main; use vars '$es_whiteboard__emit_pairs_inline'};local $::es_whiteboard__emit_pairs_inline = 0; 
     3619(do{if($whiteboard::emit_pairs_inline) { 
     3620(do{{ package whiteboard; use vars '$emit_pairs_inline'};local $whiteboard::emit_pairs_inline = 0; 
    35943621(((("\(" . $self->e($n->key())) . "\ \=\>\ ") . $self->e($n->value())) . "\)")}) 
    35953622}else { 
  • misc/elf/elf_g_src/EmitSimpleP5.pm

    r21553 r21584  
    414414  method cb__CompUnit ($n) { 
    415415    $n.do_all_analysis(); 
    416     my $+whiteboard::in_package = []; 
    417     my $+whiteboard::emit_pairs_inline = 0; 
    418     my $+whiteboard::compunit_footer = []; 
     416    temp $whiteboard::in_package = []; 
     417    temp $whiteboard::emit_pairs_inline = 0; 
     418    temp $whiteboard::compunit_footer = []; 
    419419    my $code = ( 
    420420      "package Main;\n"~ 
    421421      self.prelude_for_entering_a_package()); 
    422422    my $stmts = $.e($n.statements); 
    423     my $foot = $+whiteboard::compunit_footer.join(";\n"); 
     423    my $foot = $whiteboard::compunit_footer.join(";\n"); 
    424424    $code ~ $stmts.join(";\n")~$foot~";\n"; 
    425425  }; 
    426426  method cb__Block ($n) { 
    427     my $+whiteboard::emit_pairs_inline = 0; 
     427    temp $whiteboard::emit_pairs_inline = 0; 
    428428    #'# '~$.e($n.notes<lexical_variable_decls>).join(" ")~"\n"~ 
    429429    '(do{'~$.e($n.statements).join(";\n")~'})' 
     
    446446  }; 
    447447  method cb__ClosureTrait ($n) { 
    448     my $+whiteboard::emit_pairs_inline = 0; 
     448    temp $whiteboard::emit_pairs_inline = 0; 
    449449    $n.kind~'{'~$.e($n.block)~'}' 
    450450  }; 
    451451 
    452452  method cb__PackageDecl ($n) { 
    453     my $in_package = [$+whiteboard::in_package.flatten,$n.name]; 
     453    my $in_package = [$whiteboard::in_package.flatten,$n.name]; 
    454454    my $name = $in_package.join('::'); 
    455455    my $base = 'use base "Any";';