aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nomsu.lua10
-rwxr-xr-xnomsu.moon10
2 files changed, 12 insertions, 8 deletions
diff --git a/nomsu.lua b/nomsu.lua
index 9b1856c..76992a2 100644
--- a/nomsu.lua
+++ b/nomsu.lua
@@ -754,19 +754,21 @@ do
end
local inner_vars = setmetatable({ }, {
__index = function(_, key)
- return error("vars[" .. tostring(repr(key)) .. "]")
+ return "vars[" .. tostring(repr(key)) .. "]"
end
})
- return "do\n" .. self:tree_to_value(vars.lua_code, inner_vars) .. "\nend", true
+ local lua = self:tree_to_value(vars.lua_code, inner_vars)
+ return "do\n" .. tostring(lua) .. "\nend", true
end)
self:defmacro("lua expr %lua_code", function(self, vars, kind)
local lua_code = vars.lua_code.value
local inner_vars = setmetatable({ }, {
__index = function(_, key)
- return error("vars[" .. tostring(repr(key)) .. "]")
+ return "vars[" .. tostring(repr(key)) .. "]"
end
})
- return self:tree_to_value(vars.lua_code, inner_vars)
+ local lua = self:tree_to_value(vars.lua_code, inner_vars)
+ return lua
end)
self:def("require %filename", function(self, vars)
if not self.loaded_files[vars.filename] then
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]