aboutsummaryrefslogtreecommitdiff
path: root/neb/std/repl.py
diff options
context:
space:
mode:
authormryouse2022-07-14 01:50:29 +0000
committermryouse2022-07-14 01:50:29 +0000
commit3701c619a2421f8c587888ad5443382c5a059b4d (patch)
tree16c0d5ab2f0fa6abc7e5659b4b9979192f8dec50 /neb/std/repl.py
parent7ec7bf0a7e1c6c7bf6889c9a3d15413b9eba76ea (diff)
add flag to show hidden symbols
Diffstat (limited to 'neb/std/repl.py')
-rw-r--r--neb/std/repl.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/neb/std/repl.py b/neb/std/repl.py
index 6b6be83..32fd260 100644
--- a/neb/std/repl.py
+++ b/neb/std/repl.py
@@ -13,28 +13,40 @@ def interpretHowTo(symbol, args, env, ns):
REPL.register("howto", Builtin("howto", interpretHowTo, [Arg("symbol", TypeEnum.ANY)], return_type=Type(":list")))
def interpretSymbols(symbol, args, env, ns):
- keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items())]
+ if len(args) == 1 and args[0].value:
+ keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items())]
+ else:
+ keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items()) if not k.startswith(".")]
return List(keys)
-REPL.register("symbols", Builtin("symbols", interpretSymbols, [], return_type=Type(":list")))
+REPL.register("symbols", Builtin("symbols", interpretSymbols, [Arg("all?", TypeEnum.BOOL, optional=True)], return_type=Type(":list")))
def interpretFuncs(symbol, args, env, ns):
- keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items()) if isinstance(v, Function)]
+ if len(args) == 1 and args[0].value:
+ keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items()) if isinstance(v, Function)]
+ else:
+ keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items()) if isinstance(v, Function) and not k.startswith(".")]
return List(keys)
-REPL.register("funcs", Builtin("funcs", interpretFuncs, [], return_type=Type(":list")))
+REPL.register("funcs", Builtin("funcs", interpretFuncs, [Arg("all?", TypeEnum.BOOL, optional=True)], return_type=Type(":list")))
def interpretUserSymbols(symbol, args, env, ns):
- keys = [Symbol(k, -1) for k,v in env.get_all().items() if isinstance(v, UserFunction) or isinstance(v, Literal)]
+ if len(args) == 1 and args[0].value:
+ keys = [Symbol(k, -1) for k,v in env.get_all().items() if isinstance(v, UserFunction) or isinstance(v, Literal)]
+ else:
+ keys = [Symbol(k, -1) for k,v in env.get_all().items() if (isinstance(v, UserFunction) or isinstance(v, Literal)) and not k.startswith(".")]
return List(keys)
-REPL.register("user-symbols", Builtin("user-symbols", interpretUserSymbols, [], return_type=Type(":list")))
+REPL.register("user-symbols", Builtin("user-symbols", interpretUserSymbols, [Arg("all?", TypeEnum.BOOL, optional=True)], return_type=Type(":list")))
def interpretUserFuncs(symbol, args, env, ns):
- keys = [Symbol(k, -1) for k,v in env.get_all().items() if isinstance(v, UserFunction)]
+ if len(args) == 1 and args[0].value:
+ keys = [Symbol(k, -1) for k,v in env.get_all().items() if isinstance(v, UserFunction)]
+ else:
+ keys = [Symbol(k, -1) for k,v in env.get_all().items() if isinstance(v, UserFunction) and not k.startswith(".")]
return List(keys)
-REPL.register("user-funcs", Builtin("user-funcs", interpretUserFuncs, [], return_type=Type(":list")))
+REPL.register("user-funcs", Builtin("user-funcs", interpretUserFuncs, [Arg("all?", TypeEnum.BOOL, optional=True)], return_type=Type(":list")))
def interpretSyntax(symbol, args, env, ns):
keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items()) if isinstance(v, NebSyntax)]