From da33269c307c8a045e548cb1df2a3281a7a0f99e Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 19 Apr 2018 17:23:44 -0700 Subject: All tests passing (except object) --- nomsu_tree.moon | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'nomsu_tree.moon') diff --git a/nomsu_tree.moon b/nomsu_tree.moon index 23ad830..1c41906 100644 --- a/nomsu_tree.moon +++ b/nomsu_tree.moon @@ -27,6 +27,15 @@ Tree = (name, methods)-> .with_value = (value)=> getmetatable(self)(value, @source) .type = name .name = name + .as_nomsu = => + leading_space = 0 + src_file = FILE_CACHE[@source.filename] + while src_file\sub(@source.start-leading_space-1, @source.start-leading_space-1) == " " + leading_space += 1 + if src_file\sub(@source.start-leading_space-1, @source.start-leading_space-1) != "\n" + leading_space = 0 + ret = tostring(@source\get_text!)\gsub("\n"..((" ")\rep(leading_space)), "\n") + return ret Types[name] = immutable {"value","source"}, methods @@ -49,7 +58,7 @@ Tree "File", Tree "Nomsu", as_lua: (nomsu)=> - Lua.Value(@source, "nomsu:parse(Nomsu(",repr(@source),", ",repr(@source\get_text!),"))") + Lua.Value(@source, "nomsu:parse(Nomsu(",repr(@value.source),", ",repr(tostring(@value.source\get_text!)),")).value[1]") Tree "Block", as_lua: (nomsu)=> -- cgit v1.2.3