From 96441251c4bdbb2d9296866e6c84624ce85c2f45 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 9 Dec 2017 15:34:52 -0800 Subject: Pretty much everything is working?? --- nomsu.lua | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'nomsu.lua') diff --git a/nomsu.lua b/nomsu.lua index 54a8cbd..5544f66 100644 --- a/nomsu.lua +++ b/nomsu.lua @@ -280,9 +280,7 @@ do def_number = self.__class.def_number, defs = self.defs } - local where_defs_go = (getmetatable(self.defs) or { - __newindex = self.defs - }).__newindex + local where_defs_go = (getmetatable(self.defs) or { }).__newindex or self.defs for _index_0 = 1, #signature do local _des_0 = signature[_index_0] local stub, arg_names, escaped_args @@ -325,7 +323,15 @@ do end, scoped = function(self, thunk) local old_defs = self.defs - self.defs = setmetatable({ }, { + local new_defs = { + ["#vars"] = setmetatable({ }, { + __index = self.defs["#vars"] + }), + ["#loaded_files"] = setmetatable({ }, { + __index = self.defs["#loaded_files"] + }) + } + self.defs = setmetatable(new_defs, { __index = old_defs }) local ok, ret1, ret2 = pcall(thunk, self) @@ -1249,8 +1255,8 @@ end)]]):format(concat(lua_bits, "\n")) local bit = _list_0[_index_0] if type(bit) == "string" then insert(concat_parts, bit) - elseif type(bit) == "table" and bit.type == "FunctionCall" and bit.src == "__src__" then - insert(concat_parts, repr(self.defs["#macro_tree"].src)) + elseif bit.src == '__src__' then + insert(concat_parts, repr(self:dedent(self.defs["#macro_tree"].src))) else local expr, statement = self:tree_to_lua(bit, filename) if statement then -- cgit v1.2.3