diff --git a/moonscript/compile/statement.lua b/moonscript/compile/statement.lua index d2e9dee..7f1c906 100644 --- a/moonscript/compile/statement.lua +++ b/moonscript/compile/statement.lua @@ -57,7 +57,7 @@ return { end end, assign = function(self, node) - local _, names, values = unpack(node) + local names, values = unpack(node, 2) local undeclared = self:declare(names) local declare = "local " .. concat(undeclared, ", ") local has_fndef = false @@ -150,7 +150,7 @@ return { end end, ["while"] = function(self, node) - local _, cond, block = unpack(node) + local cond, block = unpack(node, 2) do local _with_0 = self:block(self:line("while ", self:value(cond), " do")) _with_0:stms(block) @@ -158,7 +158,7 @@ return { end end, ["for"] = function(self, node) - local _, name, bounds, block = unpack(node) + local name, bounds, block = unpack(node, 2) local loop = self:line("for ", self:name(name), " = ", self:value({ "explist", unpack(bounds) @@ -173,7 +173,7 @@ return { end end, foreach = function(self, node) - local _, names, exps, block = unpack(node) + local names, exps, block = unpack(node, 2) local loop do local _with_0 = self:line() @@ -210,7 +210,7 @@ return { end end, export = function(self, node) - local _, names = unpack(node) + local names = unpack(node, 2) if type(names) == "string" then if names == "*" then self.export_all = true diff --git a/moonscript/compile/statement.moon b/moonscript/compile/statement.moon index bddd3dc..25f53fd 100644 --- a/moonscript/compile/statement.moon +++ b/moonscript/compile/statement.moon @@ -26,7 +26,7 @@ import unpack from require "moonscript.util" \append_list [@name name for name in *names], ", " assign: (node) => - _, names, values = unpack node + names, values = unpack node, 2 undeclared = @declare names declare = "local " .. concat(undeclared, ", ") @@ -83,12 +83,12 @@ import unpack from require "moonscript.util" \stms block while: (node) => - _, cond, block = unpack node + cond, block = unpack node, 2 with @block @line "while ", @value(cond), " do" \stms block for: (node) => - _, name, bounds, block = unpack node + name, bounds, block = unpack node, 2 loop = @line "for ", @name(name), " = ", @value({"explist", unpack bounds}), " do" with @block loop \declare {name} @@ -97,7 +97,7 @@ import unpack from require "moonscript.util" -- for x in y ... -- {"foreach", {names...}, {exp...}, body} foreach: (node) => - _, names, exps, block = unpack node + names, exps, block = unpack node, 2 loop = with @line! \append "for " @@ -112,7 +112,7 @@ import unpack from require "moonscript.util" \stms block export: (node) => - _, names = unpack node + names = unpack node, 2 if type(names) == "string" if names == "*" @export_all = true diff --git a/moonscript/compile/value.lua b/moonscript/compile/value.lua index 2c457dc..ce20dad 100644 --- a/moonscript/compile/value.lua +++ b/moonscript/compile/value.lua @@ -71,7 +71,7 @@ return { return self:line("(", self:value(node[2]), ")") end, string = function(self, node) - local _, delim, inner = unpack(node) + local delim, inner = unpack(node, 2) local end_delim = delim:gsub("%[", "]") if delim == "'" or delim == '"' then inner = inner:gsub("[\r\n]", string_chars) @@ -133,7 +133,7 @@ return { return self:line(callee_value, actions) end, fndef = function(self, node) - local _, args, whitelist, arrow, block = unpack(node) + local args, whitelist, arrow, block = unpack(node, 2) local default_args = { } local self_args = { } local arg_names @@ -238,7 +238,7 @@ return { end end, table = function(self, node) - local _, items = unpack(node) + local items = unpack(node, 2) do local _with_0 = self:block("{", "}") local format_line diff --git a/moonscript/compile/value.moon b/moonscript/compile/value.moon index 02ae94c..7cfdda4 100644 --- a/moonscript/compile/value.moon +++ b/moonscript/compile/value.moon @@ -40,7 +40,7 @@ string_chars = { @line "(", @value(node[2]), ")" string: (node) => - _, delim, inner = unpack node + delim, inner = unpack node, 2 end_delim = delim\gsub "%[", "]" if delim == "'" or delim == '"' inner = inner\gsub "[\r\n]", string_chars @@ -91,7 +91,7 @@ string_chars = { @line callee_value, actions fndef: (node) => - _, args, whitelist, arrow, block = unpack node + args, whitelist, arrow, block = unpack node, 2 default_args = {} self_args = {} @@ -137,7 +137,7 @@ string_chars = { .header = "function("..concat(arg_names, ", ")..")" table: (node) => - _, items = unpack node + items = unpack node, 2 with @block "{", "}" format_line = (tuple) -> if #tuple == 2 diff --git a/moonscript/transform/class.lua b/moonscript/transform/class.lua index f55dce0..74f93c5 100644 --- a/moonscript/transform/class.lua +++ b/moonscript/transform/class.lua @@ -106,7 +106,7 @@ super_scope = function(value, t, key) } end return function(self, node, ret, parent_assign) - local _, name, parent_val, body = unpack(node) + local name, parent_val, body = unpack(node, 2) if parent_val == "" then parent_val = nil end diff --git a/moonscript/transform/class.moon b/moonscript/transform/class.moon index 2a95265..7451375 100644 --- a/moonscript/transform/class.moon +++ b/moonscript/transform/class.moon @@ -76,7 +76,7 @@ super_scope = (value, t, key) -> } (node, ret, parent_assign) => - _, name, parent_val, body = unpack node + name, parent_val, body = unpack node, 2 parent_val = nil if parent_val == "" parent_cls_name = NameProxy "parent" diff --git a/moonscript/transform/statement.lua b/moonscript/transform/statement.lua index 3e5986f..6c8a60b 100644 --- a/moonscript/transform/statement.lua +++ b/moonscript/transform/statement.lua @@ -342,7 +342,7 @@ return Transformer({ end end, update = function(self, node) - local _, name, op, exp = unpack(node) + local name, op, exp = unpack(node, 2) local op_final = op:match("^(.+)=$") if not op_final then error("Unknown op: " .. op) @@ -361,7 +361,7 @@ return Transformer({ }) end, import = function(self, node) - local _, names, source = unpack(node) + local names, source = unpack(node, 2) local table_values do local _accum_0 = { } @@ -402,7 +402,7 @@ return Transformer({ } end, comprehension = function(self, node, action) - local _, exp, clauses = unpack(node) + local exp, clauses = unpack(node, 2) action = action or function(exp) return { exp @@ -492,7 +492,7 @@ return Transformer({ end, ["if"] = function(self, node, ret) if ntype(node[2]) == "assign" then - local _, assign, body = unpack(node) + local assign, body = unpack(node, 2) if destructure.has_destructure(assign[2]) then local name = NameProxy("des") body = { @@ -694,7 +694,7 @@ return Transformer({ node.body = with_continue_listener(node.body) end, switch = function(self, node, ret) - local _, exp, conds = unpack(node) + local exp, conds = unpack(node, 2) local exp_name = NameProxy("exp") local convert_cond convert_cond = function(cond) diff --git a/moonscript/transform/statement.moon b/moonscript/transform/statement.moon index 50de0e0..2d3a345 100644 --- a/moonscript/transform/statement.moon +++ b/moonscript/transform/statement.moon @@ -222,14 +222,14 @@ Transformer { nil update: (node) => - _, name, op, exp = unpack node + name, op, exp = unpack node, 2 op_final = op\match "^(.+)=$" error "Unknown op: "..op if not op_final exp = {"parens", exp} unless value_is_singular exp build.assign_one name, {"exp", name, op_final, exp} import: (node) => - _, names, source = unpack node + names, source = unpack node, 2 table_values = for name in *names dest_name = if ntype(name) == "colon" name[2] @@ -242,7 +242,7 @@ Transformer { { "assign", {dest}, {source}, [-1]: node[-1] } comprehension: (node, action) => - _, exp, clauses = unpack node + exp, clauses = unpack node, 2 action = action or (exp) -> {exp} construct_comprehension action(exp), clauses @@ -280,7 +280,7 @@ Transformer { if: (node, ret) => -- expand assign in cond if ntype(node[2]) == "assign" - _, assign, body = unpack node + assign, body = unpack node, 2 if destructure.has_destructure assign[2] name = NameProxy "des" @@ -426,7 +426,7 @@ Transformer { node.body = with_continue_listener node.body switch: (node, ret) => - _, exp, conds = unpack node + exp, conds = unpack node, 2 exp_name = NameProxy "exp" -- convert switch conds into if statment conds diff --git a/moonscript/transform/value.lua b/moonscript/transform/value.lua index 50a4904..33aaef9 100644 --- a/moonscript/transform/value.lua +++ b/moonscript/transform/value.lua @@ -89,7 +89,7 @@ return Transformer({ return a:wrap(node) end, tblcomprehension = function(self, node) - local _, explist, clauses = unpack(node) + local explist, clauses = unpack(node, 2) local key_exp, value_exp = unpack(explist) local accum = NameProxy("tbl") local inner @@ -234,7 +234,7 @@ return Transformer({ end end, block_exp = function(self, node) - local _, body = unpack(node) + local body = unpack(node, 2) local fn = nil local arg_list = { } fn = smart_node(build.fndef({ diff --git a/moonscript/transform/value.moon b/moonscript/transform/value.moon index 18d97a3..04e16ae 100644 --- a/moonscript/transform/value.moon +++ b/moonscript/transform/value.moon @@ -56,7 +56,7 @@ Transformer { a\wrap node tblcomprehension: (node) => - _, explist, clauses = unpack node + explist, clauses = unpack node, 2 key_exp, value_exp = unpack explist accum = NameProxy "tbl" @@ -144,7 +144,7 @@ Transformer { } block_exp: (node) => - _, body = unpack node + body = unpack node, 2 fn = nil arg_list = {}