diff options
| author | Bruce Hill <bitbucket@bruce-hill.com> | 2018-05-24 20:27:08 -0700 |
|---|---|---|
| committer | Bruce Hill <bitbucket@bruce-hill.com> | 2018-05-24 20:27:26 -0700 |
| commit | d9b795ee45d7a3c65bdd74da5ee042fac12cf5b8 (patch) | |
| tree | b253e502b315d6b507b8fa05379f2239378bf796 /nomsu_tree.moon | |
| parent | 446892d11ee712839084e4599a07d8decf6b3b54 (diff) | |
Adding some src map building code.
Diffstat (limited to 'nomsu_tree.moon')
| -rw-r--r-- | nomsu_tree.moon | 10 |
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!))) |
