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 0666e00..2fe484a 100644
--- a/nomsu_decompiler.lua
+++ b/nomsu_decompiler.lua
@@ -85,7 +85,11 @@ tree_to_inline_nomsu = function(tree)
end
return nomsu
elseif "MethodCall" == _exp_0 then
- local nomsu = NomsuCode:from(tree.source, tree_to_inline_nomsu(tree[1]), "|")
+ local target_nomsu = tree_to_inline_nomsu(tree[1])
+ if tree[1].type == "Action" or tree[1].type == "MethodCall" or tree[1].type == "Block" then
+ target_nomsu:parenthesize()
+ end
+ local nomsu = NomsuCode:from(tree.source, target_nomsu, "|")
for i = 2, #tree do
if i > 2 then
nomsu:add("; ")
diff --git a/nomsu_decompiler.moon b/nomsu_decompiler.moon
index f522832..8c559b1 100644
--- a/nomsu_decompiler.moon
+++ b/nomsu_decompiler.moon
@@ -57,7 +57,10 @@ tree_to_inline_nomsu = (tree)->
return nomsu
when "MethodCall"
- nomsu = NomsuCode\from(tree.source, tree_to_inline_nomsu(tree[1]), "|")
+ target_nomsu = tree_to_inline_nomsu(tree[1])
+ if tree[1].type == "Action" or tree[1].type == "MethodCall" or tree[1].type == "Block"
+ target_nomsu\parenthesize!
+ nomsu = NomsuCode\from(tree.source, target_nomsu, "|")
for i=2,#tree
nomsu\add "; " if i > 2
nomsu\add tree_to_inline_nomsu(tree[i])