aboutsummaryrefslogtreecommitdiff
path: root/syntax_tree.moon
diff options
context:
space:
mode:
Diffstat (limited to 'syntax_tree.moon')
-rw-r--r--syntax_tree.moon11
1 files changed, 8 insertions, 3 deletions
diff --git a/syntax_tree.moon b/syntax_tree.moon
index cd9bccc..633b5ca 100644
--- a/syntax_tree.moon
+++ b/syntax_tree.moon
@@ -19,9 +19,14 @@ for name in *types
.__name = name
.type = name
.is_instance = (x)=> getmetatable(x) == @
- .__tostring = => "#{@type}#{repr @, ((x)-> Source\is_instance(x) and repr(tostring(x)) or nil)}"
- .__repr = => "#{@type}#{repr @, ((x)-> Source\is_instance(x) and repr(tostring(x)) or nil)}"
- .source_code_for_tree = {}
+ .__tostring = => "#{@type}#{repr @}"
+ .__repr = => "#{@type}#{repr @}"
+ .source_code_for_tree = setmetatable({}, {__index:(t)=>
+ s = t.source
+ Files = require 'files'
+ f = Files.read(s.filename)
+ return f
+ })
.get_source_code = => @source_code_for_tree[@]
.map = (fn)=>
replacement = fn(@)