aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nomsu_decompiler.lua6
-rw-r--r--nomsu_decompiler.moon5
2 files changed, 9 insertions, 2 deletions
diff --git a/nomsu_decompiler.lua b/nomsu_decompiler.lua
index 2fe484a..1d445c9 100644
--- a/nomsu_decompiler.lua
+++ b/nomsu_decompiler.lua
@@ -424,7 +424,11 @@ tree_to_nomsu = function(tree)
local interp_nomsu = recurse(bit)
if not (interp_nomsu:is_multiline()) then
if bit.type == "Var" then
- if type(tree[i + 1]) == 'string' and not match(tree[i + 1], "^[ \n\t,.:;#(){}[%]]") then
+ local next_str = tree[i + 1]
+ while type(next_str) == 'table' and next_str.type == 'Text' do
+ next_str = next_str[1]
+ end
+ if type(next_str) == 'string' and not match(next_str, "^[ \n\t,.:;#(){}[%]]") then
interp_nomsu:parenthesize()
end
elseif bit.type == "EscapedNomsu" or bit.type == "Block" or bit.type == "IndexChain" then
diff --git a/nomsu_decompiler.moon b/nomsu_decompiler.moon
index 8c559b1..9cb9ae8 100644
--- a/nomsu_decompiler.moon
+++ b/nomsu_decompiler.moon
@@ -333,7 +333,10 @@ tree_to_nomsu = (tree)->
interp_nomsu = recurse(bit)
unless interp_nomsu\is_multiline!
if bit.type == "Var"
- if type(tree[i+1]) == 'string' and not match(tree[i+1], "^[ \n\t,.:;#(){}[%]]")
+ next_str = tree[i+1]
+ while type(next_str) == 'table' and next_str.type == 'Text'
+ next_str = next_str[1]
+ if type(next_str) == 'string' and not match(next_str, "^[ \n\t,.:;#(){}[%]]")
interp_nomsu\parenthesize!
elseif bit.type == "EscapedNomsu" or bit.type == "Block" or bit.type == "IndexChain"
interp_nomsu\parenthesize!