From a0968e3bb2504127e26ab48b32dc6550c6cadd71 Mon Sep 17 00:00:00 2001 From: mryouse Date: Sat, 18 Jun 2022 16:22:57 +0000 Subject: implement user-symbols --- neb/interpreter.py | 7 +++++++ 1 file changed, 7 insertions(+) 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, [])) -- cgit v1.2.3