From 3e89092833a6d407e711fe4ae5f44474ff34cf64 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 1 Jan 2019 17:15:51 -0800 Subject: Some changes to the error API, a fix for statement block parsing, and replacing ((foo 1 baz)'s meaning) with $(foo 1 baz). --- nomsu_decompiler.moon | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'nomsu_decompiler.moon') diff --git a/nomsu_decompiler.moon b/nomsu_decompiler.moon index 9d4face..bc5c986 100644 --- a/nomsu_decompiler.moon +++ b/nomsu_decompiler.moon @@ -385,7 +385,10 @@ tree_to_nomsu = (tree)-> else nomsu\add "\\" interp_nomsu = recurse(bit) - unless interp_nomsu\is_multiline! + if interp_nomsu\is_multiline! + curr_indent = nomsu\text!\match("\n( *)[^\n]*$") or nomsu\text!\match("^( *)") + interp_nomsu = NomsuCode((interp_nomsu\text!\gsub("\n", "\n"..curr_indent))) + else space = max_line - nomsu\trailing_line_len! if bit.type == "Var" next_str = tree[i+1] @@ -400,6 +403,8 @@ tree_to_nomsu = (tree)-> tree_to_nomsu(bit) if #interp_nomsu2\text!\lines! > 3 or #interp_nomsu2\text! >= MAX_LINE*GOLDEN_RATIO + curr_indent = nomsu\text!\match("\n( *)[^\n]*$") or nomsu\text!\match("^( *)") + interp_nomsu2 = NomsuCode((interp_nomsu2\text!\gsub("\n", "\n"..curr_indent))) interp_nomsu = interp_nomsu2 else nomsu\add "\n..\\" -- cgit v1.2.3