From 7a7dcefc447c4a4b20755fb6fb919a2f6328eafd Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 29 Nov 2018 14:23:02 -0800 Subject: Added text comprehensions (in the style of the list/dict ones) --- nomsu_compiler.moon | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'nomsu_compiler.moon') diff --git a/nomsu_compiler.moon b/nomsu_compiler.moon index a818c99..0266dab 100644 --- a/nomsu_compiler.moon +++ b/nomsu_compiler.moon @@ -227,7 +227,17 @@ compile = setmetatable({ lua\append string_buffer added += 1 string_buffer = "" + bit_lua = compile(bit) + if bit.type == "Block" + 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)()" if lua\trailing_line_len! + #bit_lua\text! > MAX_LINE lua\append "\n " if added > 0 then lua\append ".." -- cgit v1.2.3