Author: bernhard
Date: Sat Mar 31 08:42:46 2007
New Revision: 17901

Modified:
   trunk/languages/plumhead/src/partridge/PlumheadPAST.tg

Log:
[Plumhead partridge]
Continue with lumping everything together into
one big transform.


Modified: trunk/languages/plumhead/src/partridge/PlumheadPAST.tg
==============================================================================
--- trunk/languages/plumhead/src/partridge/PlumheadPAST.tg      (original)
+++ trunk/languages/plumhead/src/partridge/PlumheadPAST.tg      Sat Mar 31 
08:42:46 2007
@@ -7,15 +7,15 @@
 
 transform past (ROOT) :language('PIR') {
 
-    node = node['program']
+    .local pmc node_program
+    .local pmc past_program
+    node_program = node['program']
+    past_program = tree.'get'('past', node_program, 
'Plumhead::Grammar::program')
+
     .local pmc past
     past = new 'PAST::Block'
-    past.'init'( 'node' => node, 'name'=>'plumhead' )
+    past.'init'( past_program, 'node' => node, 'name'=>'plumhead' )
     
-    .local pmc past_program
-    past_program = tree.'get'('past', node, 'Plumhead::Grammar::program')
-    past.'push'(past_program)
-
     .return (past)
 }
 
@@ -37,7 +37,7 @@
 
         $P1 = cnode['SEA']
         if null $P1 goto no_SEA
-            past_sea = tree.'get'('past', $P1, 'Plumhead::Grammar::SEA')
+            past_sea = tree.'get'('past', cnode, 
'Plumhead::Grammar::expression')
             past.'push'(past_sea)
         no_SEA:
 
@@ -54,25 +54,6 @@
     .return (past)
 }
 
-transform past (Plumhead::Grammar::SEA) :language('PIR') {
-
-    .local string val
-    val = node
-    .local pmc code_string
-    code_string = new 'PGE::CodeString'
-    ( val ) = code_string.'escape'( val )
-
-    .local pmc past_val
-    past_val = new 'PAST::Val'                             
-    past_val.'init'( 'name' => val, 'vtype' => '.Undef' )                      
        
-
-    .local pmc past                                                  
-    past = new 'PAST::Op'
-    past.'init'( past_val, 'node'=> node, 'pirop' => 'print' )  
-
-    .return (past)
-}
-
 transform past (Plumhead::Grammar::code) :language('PIR') {
 
     .local pmc past
@@ -159,7 +140,7 @@
                  $P1 = cnode['inline_sea']
                  if null $P1 goto no_inline_sea
                      $P2 = $P1['SEA_empty_allowed']
-                     past_sea = tree.'get'('past', $P2, 
'Plumhead::Grammar::SEA')
+                     past_sea = tree.'get'('past', $P1, 
'Plumhead::Grammar::expression')
                      past.'push'(past_sea)
                      goto iter_loop
                  no_inline_sea:
@@ -211,6 +192,8 @@
     .local pmc past_mult, past_string, past_adding
     .local pmc past_unary, multiplicand, multiplicand_0, past_multiplicand_0
     .local pmc past_expression
+    .local pmc code_string
+    .local pmc past_val
 
     .local string op, pirop, val, var
 
@@ -429,6 +412,24 @@
         goto handled_expression
     no_php_sapi_name:
 
+    $P0 = node['SEA']
+    unless null $P0 goto SEA
+    $P0 = node['SEA_empty_allowed']
+    if null $P0 goto no_SEA
+    SEA:
+        val = $P0
+        code_string = new 'PGE::CodeString'
+        ( val ) = code_string.'escape'( val )
+        past_val = new 'PAST::Val'                             
+        past_val.'init'( 'name' => val, 'vtype' => '.Undef' )                  
            
+
+        past = new 'PAST::Op'
+        past.'init'( past_val, 'node'=> node, 'pirop' => 'print' )  
+        goto handled_expression
+    no_SEA:
+
+    .return (past)
+
     handled_expression:
 
     .return (past)

Reply via email to