From e476bfea5261b04e32cd444208bbffa34bc6f475 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 13 Oct 2017 18:09:04 -0700 Subject: Improved code generation for "when" statements using elseif, and improved code generation for loops by omitting goto labels when not used. --- utils.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'utils.lua') diff --git a/utils.lua b/utils.lua index e8fca96..19ba20a 100644 --- a/utils.lua +++ b/utils.lua @@ -290,7 +290,10 @@ utils = { end return table.sort(list, comparison) end, - equivalent = function(x, y) + equivalent = function(x, y, depth) + if depth == nil then + depth = 1 + end if x == y then return true end @@ -300,13 +303,16 @@ utils = { if type(x) ~= 'table' then return false end + if depth == 0 then + return false + end for k, v in pairs(x) do - if y[k] ~= v then + if not (utils.equivalent(y[k], v, depth - 1)) then return false end end for k, v in pairs(y) do - if x[k] ~= v then + if not (utils.equivalent(x[k], v, depth - 1)) then return false end end -- cgit v1.2.3