Author: fperrad
Date: Tue Jun 12 23:52:22 2007
New Revision: 18967

Modified:
   trunk/languages/lua/src/PASTGrammar.tg

Log:
[Lua]
- tail call with init

Modified: trunk/languages/lua/src/PASTGrammar.tg
==============================================================================
--- trunk/languages/lua/src/PASTGrammar.tg      (original)
+++ trunk/languages/lua/src/PASTGrammar.tg      Tue Jun 12 23:52:22 2007
@@ -264,8 +264,7 @@
     explist = new .ResizablePMCArray
   L4:
     past = new 'PAST::Op'
-    past.'init'(namelist, explist, 'node'=>node, 'pasttype'=>'assignlist')
-    .return (past)
+    .return past.'init'(namelist, explist, 'node'=>node, 
'pasttype'=>'assignlist')
 }
 
 
@@ -291,11 +290,9 @@
     if null $P0 goto L1
     $P0 = shift $P0
     $P1 = tree.'get'('explist', $P0, 'Lua::Grammar::expression_list')
-    past.'init'($P1 :flat, 'node'=>node, 'pasttype'=>'return')
-    .return (past)
+    .return past.'init'($P1 :flat, 'node'=>node, 'pasttype'=>'return')
   L1:
-    past.'init'('node'=>node, 'pasttype'=>'return')
-    .return (past)
+    .return past.'init'('node'=>node, 'pasttype'=>'return')
 }
 
 
@@ -305,8 +302,7 @@
     if looplevel <= 0 goto L1
     .local pmc past
     past = new 'PAST::Op'
-    past.'init'('node'=>node, 'pasttype'=>'break')
-    .return (past)
+    .return past.'init'('node'=>node, 'pasttype'=>'break')
   L1:
     node.'syntax_error'("no loop to break")
 }
@@ -328,8 +324,7 @@
     unshift varlist, $P1
     .local pmc past
     past = new 'PAST::Op'
-    past.'init'(varlist, explist, 'node'=>node, 'pasttype'=>'assignlist')
-    .return (past)
+    .return past.'init'(varlist, explist, 'node'=>node, 
'pasttype'=>'assignlist')
 }
 
 
@@ -558,8 +553,7 @@
     .local pmc past
     $S0 = node.'result_object'()
     past = new 'PAST::Val'
-    past.'init'('node'=>node, 'vtype'=>'.LuaString', 'name'=>$S0, 
'ctype'=>'s~')
-    .return (past)
+    .return past.'init'('node'=>node, 'vtype'=>'.LuaString', 'name'=>$S0, 
'ctype'=>'s~')
 }
 
 
@@ -696,11 +690,9 @@
     past = new 'PAST::Var'
     $I0 = symbtab.'lookup'($S0)
     unless $I0 goto L1
-    past.'init'('node'=>node, 'name'=>$S0, 'scope'=>'lexical')
-    .return (past)
+    .return past.'init'('node'=>node, 'name'=>$S0, 'scope'=>'lexical')
   L1:
-    past.'init'('node'=>node, 'name'=>$S0, 'scope'=>'package')
-    .return (past)
+    .return past.'init'('node'=>node, 'name'=>$S0, 'scope'=>'package')
 }
 
 
@@ -710,8 +702,7 @@
     unless has_vararg goto L1
     .local pmc past
     new past, 'PAST::Op'
-    past.'init'('node'=>node, 'pasttype'=>'vararg')
-    .return (past)
+    .return past.'init'('node'=>node, 'pasttype'=>'vararg')
   L1:
     node.'syntax_error'("cannot use '...' outside a vararg function")
 }
@@ -720,24 +711,21 @@
 transform past (Lua::Grammar::nil) :language('PIR') {
     .local pmc past
     new past, 'PAST::Val'
-    past.'init'('node'=>node, 'vtype'=>'.LuaNil')
-    .return (past)
+    .return past.'init'('node'=>node, 'vtype'=>'.LuaNil')
 }
 
 
 transform past (Lua::Grammar::true) :language('PIR') {
     .local pmc past
     past = new 'PAST::Val'
-    past.'init'('node'=>node, 'vtype'=>'.LuaBoolean', 'name'=>1)
-    .return (past)
+    .return past.'init'('node'=>node, 'vtype'=>'.LuaBoolean', 'name'=>1)
 }
 
 
 transform past (Lua::Grammar::false) :language('PIR') {
     .local pmc past
     past = new 'PAST::Val'
-    past.'init'('node'=>node, 'vtype'=>'.LuaBoolean', 'name'=>0)
-    .return (past)
+    .return past.'init'('node'=>node, 'vtype'=>'.LuaBoolean', 'name'=>0)
 }
 
 
@@ -745,8 +733,7 @@
     .local pmc past
     past = new 'PAST::Val'
     $S0 = node.'result_object'()
-    past.'init'('node'=>node, 'vtype'=>'.LuaNumber', 'name'=>$S0, 
'ctype'=>'n+')
-    .return (past)
+    .return past.'init'('node'=>node, 'vtype'=>'.LuaNumber', 'name'=>$S0, 
'ctype'=>'n+')
 }
 
 
@@ -756,8 +743,7 @@
     $S1 = $P0.'result_object'()
     .local pmc past
     past = new 'PAST::Val'
-    past.'init'('node'=>node, 'vtype'=>'.LuaString', 'name'=>$S1, 
'ctype'=>'s~')
-    .return (past)
+    .return past.'init'('node'=>node, 'vtype'=>'.LuaString', 'name'=>$S1, 
'ctype'=>'s~')
 }
 
 =head1 AUTHORS

Reply via email to