aboutsummaryrefslogtreecommitdiff
path: root/nomsu.moon
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2017-09-19 00:35:37 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2017-09-19 00:35:37 -0700
commitb1b36fead5b4d7b24dfaf2670279928e7764cfb1 (patch)
tree779f17750a4df3466be7fa0589fda94bfa698437 /nomsu.moon
parent3b10a608267ce00cc140b63a19c9433f261f9794 (diff)
Added require instead of run file.
Diffstat (limited to 'nomsu.moon')
-rwxr-xr-xnomsu.moon7
1 files changed, 7 insertions, 0 deletions
diff --git a/nomsu.moon b/nomsu.moon
index 43d21f1..03309b1 100755
--- a/nomsu.moon
+++ b/nomsu.moon
@@ -99,6 +99,7 @@ class NomsuCompiler
@initialize_core!
@write = (...)=> io.write(...)
@utils = utils
+ @loaded_files = {}
writeln:(...)=>
@write(...)
@@ -593,6 +594,12 @@ class NomsuCompiler
inner_vars = setmetatable({}, {__index:(_,key)-> "vars[#{utils.repr(key,true)}]"})
return @tree_to_value(vars.lua_code, inner_vars)
+ @def "require %filename", (vars)=>
+ if not @loaded_files[vars.filename]
+ file = io.open(vars.filename)
+ @loaded_files[vars.filename] = @run(file\read('*a'))
+ return @loaded_files[vars.filename]
+
@def "run file %filename", (vars)=>
file = io.open(vars.filename)
return @run(file\read('*a'))