aboutsummaryrefslogtreecommitdiff
path: root/nomsu.moon
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2017-11-01 16:49:11 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2017-11-01 16:49:11 -0700
commitf1a2c936de700ddf1c7ccb650be9598db40c13d4 (patch)
tree237ac9a52295f0c5dbc0dbb5624e0c2e5940f263 /nomsu.moon
parentcbd876673a4accc23aca16c015c20b819a2685b5 (diff)
Fixed some codegen stuff, optimized "say" for the common case of string
literals.
Diffstat (limited to 'nomsu.moon')
-rwxr-xr-xnomsu.moon9
1 files changed, 6 insertions, 3 deletions
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)}}