diff options
| author | mryouse | 2022-07-07 03:54:11 +0000 |
|---|---|---|
| committer | mryouse | 2022-07-07 03:54:11 +0000 |
| commit | 4f7269c5c78170157a234ce262053742fef73953 (patch) | |
| tree | 697d2797bf38550b24c56d2e72146286e150a272 /neb/std/repl.py | |
| parent | 8e8b54a2a141955d0cbf4dd6ca6635fd5f6fb786 (diff) | |
implement macros function
Diffstat (limited to 'neb/std/repl.py')
| -rw-r--r-- | neb/std/repl.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/neb/std/repl.py b/neb/std/repl.py index 73f82d6..fbb0366 100644 --- a/neb/std/repl.py +++ b/neb/std/repl.py @@ -1,4 +1,4 @@ -from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, Function, evaluate, InterpretPanic, Callable +from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, Function, evaluate, InterpretPanic, Callable, Macro from ..structs import * REPL = Environment() @@ -18,7 +18,7 @@ def interpretSymbols(symbol, args, env, ns): REPL.register("symbols", Builtin("symbols", interpretSymbols, [], return_type=Type(":list"))) def interpretFuncs(symbol, args, env, ns): - keys = [Symbol(k, -1) for k,v in env.environment.items() if isinstance(v, Builtin)] + keys = [Symbol(k, -1) for k,v in sorted(env.environment.items()) if isinstance(v, Function)] return List(keys) REPL.register("funcs", Builtin("funcs", interpretFuncs, [], return_type=Type(":list"))) @@ -28,3 +28,9 @@ def interpretUserSymbols(symbol, args, env, ns): return List(keys) REPL.register("user-symbols", Builtin("user-symbols", interpretUserSymbols, [], return_type=Type(":list"))) + +def interpretMacros(symbol, args, env, ns): + keys = [Symbol(k, -1) for k,v in sorted(env.environment.items()) if isinstance(v, Macro)] + return List(keys) + +REPL.register("macros", Builtin("macros", interpretMacros, [], return_type=Type(":list"))) |
