diff options
Diffstat (limited to 'neb/interpreter.py')
| -rw-r--r-- | neb/interpreter.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/neb/interpreter.py b/neb/interpreter.py index 7045219..d190ca2 100644 --- a/neb/interpreter.py +++ b/neb/interpreter.py @@ -868,3 +868,15 @@ def interpretUserSymbols(symbol, args, env, ns): return List(keys, True) GLOBALS.register("user-symbols", Builtin(interpretUserSymbols, [])) + +def interpretQuote(symbol, args, env, ns): + return args[0] + +quote_arg = Arg("arg", TypeEnum.ANY, lazy=True) +GLOBALS.register("quote", Builtin(interpretQuote, [quote_arg])) + +def interpretEval(symbol, args, env, ns): + return evaluate(args[0], env, ns) # TODO why do i have to explicitly evaluate here? + +eval_arg = Arg("arg", TypeEnum.ANY) +GLOBALS.register("eval", Builtin(interpretEval, [eval_arg])) |
