diff options
| author | mryouse | 2022-07-20 03:00:54 +0000 |
|---|---|---|
| committer | mryouse | 2022-07-20 03:00:54 +0000 |
| commit | a85b4e08e14ee795e9636c4a2c18edae9cfc5581 (patch) | |
| tree | e539b69dcd81f34bb963e26b6787ea27e141a0b8 /neb | |
| parent | ff9120b1e7777b001b02de3c5341f1af3e93d947 (diff) | |
WIP wrap user functions in a multifunc
Diffstat (limited to 'neb')
| -rw-r--r-- | neb/std/core.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/neb/std/core.py b/neb/std/core.py index cd6a112..8d58bd7 100644 --- a/neb/std/core.py +++ b/neb/std/core.py @@ -1,4 +1,4 @@ -from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, evaluate, interpret, parse, lex, InterpretPanic, TypeWrap, Function, UserType, NebSyntax +from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, evaluate, interpret, parse, lex, InterpretPanic, TypeWrap, Function, UserType, NebSyntax, MultiFunction from ..structs import * from pathlib import Path @@ -168,7 +168,14 @@ def interpretFunc(symbol, args, env, ns): # add the name to the function func.name = name - env.register(name, func) + if env.contains(name) and isinstance(env.get(name), MultiFunction): + env.register(name, env.get(name).register(func)) + else: + mf = MultiFunction("name") + mf.register(func) + env.register(name, mf) + + #env.register(name, func) return List([]) CORE.register("func", NebSyntax("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg, Type(":list"))) |
