From f1a2c936de700ddf1c7ccb650be9598db40c13d4 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 1 Nov 2017 16:49:11 -0700 Subject: Fixed some codegen stuff, optimized "say" for the common case of string literals. --- nomsu.moon | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'nomsu.moon') diff --git a/nomsu.moon b/nomsu.moon index eb376fc..e57954d 100755 --- a/nomsu.moon +++ b/nomsu.moon @@ -365,7 +365,10 @@ end);]])\format(statements or "", expr or "ret") @errorln "#{colored.red "Error occurred in statement:"}\n#{colored.yellow statement.src}" @errorln debug.traceback! @error(ret) - insert buffer, "#{statements or ''}\n#{expr and "ret = #{expr};" or ''}" + if statements + insert buffer, statements + if expr + insert buffer, "ret = #{expr};" if max_operations debug.sethook! @@ -374,7 +377,7 @@ return (function(nomsu, vars) local ret; %s return ret; -end);]])\format(concat(buffer, "")) +end);]])\format(concat(buffer, "\n")) return return_value, lua_code, vars tree_to_value: (tree, vars)=> @@ -675,7 +678,7 @@ end)]])\format(concat(lua_bits, "\n")) insert stub, "%" arg_names = nil return concat(stub," "), arg_names - else @error "Unsupported get stub type: #{x.type}" + else @error "Unsupported get stub type: #{x.type} for #{repr x}" get_stubs: (x)=> if type(x) != 'table' then return {{@get_stub(x)}} -- cgit v1.2.3