From 0489456a4efa512677dd7d27f1ca5b90b19c6a68 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 21 Sep 2017 21:15:37 -0700 Subject: Fixed lua block vars. --- nomsu.moon | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'nomsu.moon') diff --git a/nomsu.moon b/nomsu.moon index ed4b955..604ea94 100755 --- a/nomsu.moon +++ b/nomsu.moon @@ -536,13 +536,15 @@ class NomsuCompiler -- Sets up some core functionality @defmacro "lua block %lua_code", (vars, kind)=> if kind == "Expression" then error("Expected to be in statement.") - inner_vars = setmetatable({}, {__index:(_,key)-> error"vars[#{repr(key)}]"}) - return "do\n"..@tree_to_value(vars.lua_code, inner_vars).."\nend", true + inner_vars = setmetatable({}, {__index:(_,key)-> "vars[#{repr(key)}]"}) + lua = @tree_to_value(vars.lua_code, inner_vars) + return "do\n#{lua}\nend", true @defmacro "lua expr %lua_code", (vars, kind)=> lua_code = vars.lua_code.value - inner_vars = setmetatable({}, {__index:(_,key)-> error"vars[#{repr(key)}]"}) - return @tree_to_value(vars.lua_code, inner_vars) + inner_vars = setmetatable({}, {__index:(_,key)-> "vars[#{repr(key)}]"}) + lua = @tree_to_value(vars.lua_code, inner_vars) + return lua @def "require %filename", (vars)=> if not @loaded_files[vars.filename] -- cgit v1.2.3