From d9b795ee45d7a3c65bdd74da5ee042fac12cf5b8 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 24 May 2018 20:27:08 -0700 Subject: Adding some src map building code. --- nomsu_tree.moon | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'nomsu_tree.moon') diff --git a/nomsu_tree.moon b/nomsu_tree.moon index c15d29c..2f7c202 100644 --- a/nomsu_tree.moon +++ b/nomsu_tree.moon @@ -32,15 +32,15 @@ Tree = (name, kind, methods)-> return @_map(fn) if is_multi .__tostring = => "#{@name}(#{table.concat [repr(v) for v in *@], ', '})" - .map = (fn)=> + ._map = (fn)=> if ret = fn(@) return ret - new_vals = [v.map and v\map(fn) or v for v in *@] + new_vals = [v._map and v\_map(fn) or v for v in *@] ret = getmetatable(self)(unpack(new_vals)) return ret else .__tostring = => "#{@name}(#{repr(@value)})" - .map = (fn)=> + ._map = (fn)=> fn(@) or @ if is_multi @@ -49,6 +49,7 @@ Tree = (name, kind, methods)-> Types[name] = immutable {"value"}, methods Tree "Block", 'multi' +Tree "EscapedNomsu", 'multi' Tree "Text", 'multi' Tree "List", 'multi' Tree "Dict", 'multi' @@ -58,9 +59,6 @@ Tree "Number", 'single' Tree "Word", 'single' Tree "Comment", 'single' -Tree "EscapedNomsu", 'single', - map: (fn)=> fn(@) or @\map(fn) - Tree "Var", 'single', as_lua_id: => "_"..(@value\gsub("%W", (c)-> if c == "_" then "__" else ("_%x")\format(c\byte!))) -- cgit v1.2.3