aboutsummaryrefslogtreecommitdiff
path: root/nomsu_tree.moon
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-05-24 20:27:08 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2018-05-24 20:27:26 -0700
commitd9b795ee45d7a3c65bdd74da5ee042fac12cf5b8 (patch)
treeb253e502b315d6b507b8fa05379f2239378bf796 /nomsu_tree.moon
parent446892d11ee712839084e4599a07d8decf6b3b54 (diff)
Adding some src map building code.
Diffstat (limited to 'nomsu_tree.moon')
-rw-r--r--nomsu_tree.moon10
1 files changed, 4 insertions, 6 deletions
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!)))