Author: fperrad
Date: Fri May 25 02:33:47 2007
New Revision: 18640
Modified:
trunk/languages/lua/src/POSTGrammar.tg
trunk/languages/lua/src/lua51.pir
Log:
[Lua]
- POST
Modified: trunk/languages/lua/src/POSTGrammar.tg
==============================================================================
--- trunk/languages/lua/src/POSTGrammar.tg (original)
+++ trunk/languages/lua/src/POSTGrammar.tg Fri May 25 02:33:47 2007
@@ -26,8 +26,7 @@
outerpost = get_hll_global ['Lua::POST'], '$?SUB'
.local pmc post
post = new 'POST::Sub'
- post.'init'('node'=>node, 'name'=>name, 'outer'=>outerpost,
'pragma'=>pragma, 'blocktype'=>blocktype)
- post.'result'('')
+ post.'init'('node'=>node, 'name'=>name, 'outer'=>outerpost,
'pragma'=>pragma, 'blocktype'=>blocktype, 'result'=>'')
set_hll_global ['Lua::POST'], '$?SUB', post
.local pmc iter
iter = node.'iterator'()
@@ -40,7 +39,11 @@
iter_end:
set_hll_global ['Lua::POST'], '$?SUB', outerpost
unless null outerpost goto no_chunk
- post = post.'new'('Lua::POST::Chunk', post)
+ post = post.'new'('Lua::POST::Chunk', post, 'prologue'=><<'PIRCODE')
+
+.HLL "Lua", "lua_group"
+
+PIRCODE
no_chunk:
.return (post)
}
Modified: trunk/languages/lua/src/lua51.pir
==============================================================================
--- trunk/languages/lua/src/lua51.pir (original)
+++ trunk/languages/lua/src/lua51.pir Fri May 25 02:33:47 2007
@@ -727,18 +727,23 @@
.namespace [ "Lua::POST::Chunk" ]
+.sub 'prologue' :method
+ .param pmc value :optional
+ .param int has_value :opt_flag
+ .return self.'attr'('prologue', value, has_value)
+.end
+
.sub 'pir' :method
self.'cpir'()
+ $S0 = self.'prologue'()
+ if $S0 == '' goto L1
.local pmc code
new code, 'PGE::CodeString'
- code.'emit'(<<'PIRCODE')
-
-.HLL "Lua", "lua_group"
-
-PIRCODE
+ code.'emit'($S0)
$P0 = get_hll_global ['POST'], '$!subpir'
code .= $P0
set_hll_global ['POST'], '$!subpir', code
+L1:
.end