aboutsummaryrefslogtreecommitdiff
path: root/core.nom
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2017-09-18 13:54:07 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2017-09-18 13:54:07 -0700
commit440a2f0cef6b342fa430bd0ca42d1a2ec47324dc (patch)
treeb3f1571d999a21f330e5fb57fe872c5f2fc9404b /core.nom
parentf69e4763ca290cc79c5f8cabc5bda033bb77f31c (diff)
Added repr to core and made some tweaks.
Diffstat (limited to 'core.nom')
-rw-r--r--core.nom9
1 files changed, 8 insertions, 1 deletions
diff --git a/core.nom b/core.nom
index ced3873..d745fb7 100644
--- a/core.nom
+++ b/core.nom
@@ -26,7 +26,11 @@ rule ["eval %code", "run %code"]:
lua expr "compiler:run(vars.code)"
macro "source code %code":
- lua expr "compiler.utils.repr(vars.code.src, true)"
+ lua block ".."
+ |if vars.code.value.type ~= "Thunk" then
+ | compiler:error("'source code %' only takes code blocks, not "..vars.code.value.type)
+ |end
+ lua expr "compiler.utils.repr(vars.code.value.value.src, true)"
rule "run file %filename":
lua block ".."
@@ -138,6 +142,9 @@ rule "%a == %b":
rule "%a != %b":
lua expr "((vars.a ~= vars.b) or not compiler.utils.equivalent(vars.a, vars.b))"
+macro "repr %obj":
+ ".."|compiler.utils.repr(\%obj as lua expr\, true)
+
macro "say %str":
".."|compiler:writeln(compiler.utils.repr(\%str as lua expr\))