aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--neb/std/repl.py2
-rw-r--r--neb/structs.py6
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():