diff options
| -rw-r--r-- | neb/std/repl.py | 2 | ||||
| -rw-r--r-- | neb/structs.py | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/neb/std/repl.py b/neb/std/repl.py index fbb0366..ccd48bd 100644 --- a/neb/std/repl.py +++ b/neb/std/repl.py @@ -12,7 +12,7 @@ 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.environment.items())] + keys = [Symbol(k, -1) for k,v in sorted(env.get_all().items())] return List(keys) REPL.register("symbols", Builtin("symbols", interpretSymbols, [], return_type=Type(":list"))) diff --git a/neb/structs.py b/neb/structs.py index 88c4c6f..df7127f 100644 --- a/neb/structs.py +++ b/neb/structs.py @@ -179,6 +179,12 @@ class Environment: except: raise NebPanic(f"undefined symbol: '{key}") + def get_all(self): + if self.parent is None: + return self.environment + else: + return dict(self.parent.get_all(), **self.environment) + def __str__(self): out = "" for k, v in self.environment.items(): |
