aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--neb/interpreter.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/neb/interpreter.py b/neb/interpreter.py
index 2461f90..4762ae9 100644
--- a/neb/interpreter.py
+++ b/neb/interpreter.py
@@ -846,3 +846,10 @@ def interpretIsBool(symbol, args, env, ns):
return Bool(isinstance(args[0], Bool))
GLOBALS.register("bool?", Builtin(interpretIsBool, [Arg("arg", TypeEnum.ANY)]))
+
+def interpretUserSymbols(symbol, args, env, ns):
+ keys = [k for k,v in env.environment.items() if isinstance(v, UserFunction) or isinstance(v, Literal)]
+ keys.sort()
+ return List(keys, True)
+
+GLOBALS.register("user-symbols", Builtin(interpretUserSymbols, []))