aboutsummaryrefslogtreecommitdiff
path: root/nomsu_compiler.lua
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2018-11-29 14:23:02 -0800
committerBruce Hill <bruce@bruce-hill.com>2018-11-29 14:23:17 -0800
commit7a7dcefc447c4a4b20755fb6fb919a2f6328eafd (patch)
tree7fd40f9cb9d610ea60a444172f78763ecbc17d55 /nomsu_compiler.lua
parent04c80440fb503a604cd0cfd6b316add7d9b99f7a (diff)
Added text comprehensions (in the style of the list/dict ones)
Diffstat (limited to 'nomsu_compiler.lua')
-rw-r--r--nomsu_compiler.lua3
1 files changed, 3 insertions, 0 deletions
diff --git a/nomsu_compiler.lua b/nomsu_compiler.lua
index b08b5e1..ada9c87 100644
--- a/nomsu_compiler.lua
+++ b/nomsu_compiler.lua
@@ -330,6 +330,9 @@ local compile = setmetatable({
string_buffer = ""
end
local bit_lua = compile(bit)
+ if bit.type == "Block" then
+ bit_lua = LuaCode:from(bit.source, "(function()", "\n local _buffer = List{}", "\n local function add(bit) _buffer:add(bit) end", "\n local function join_with(glue) _buffer = _buffer:joined_with(glue) end", "\n ", bit_lua, "\n if lua_type_of(_buffer) == 'table' then _buffer = _buffer:joined() end", "\n return _buffer", "\nend)()")
+ end
if lua:trailing_line_len() + #bit_lua:text() > MAX_LINE then
lua:append("\n ")
end