From bf8900200c25d383c883501446a8048ad8966d94 Mon Sep 17 00:00:00 2001 From: mryouse Date: Thu, 30 Jun 2022 03:40:39 +0000 Subject: initial commit of multi-type support (only list of strings for now) --- neb/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'neb/__init__.py') diff --git a/neb/__init__.py b/neb/__init__.py index 9b3c1e9..ab0f836 100644 --- a/neb/__init__.py +++ b/neb/__init__.py @@ -13,7 +13,7 @@ def interpret(exprs, env, ns=None): def evaluate(expr, env, ns=None): if isinstance(expr, Literal) or isinstance(expr, Function) or isinstance(expr, TypeWrap) or isinstance(expr, List): return expr - elif isinstance(expr, Symbol) or isinstance(expr, Type): + elif isinstance(expr, Symbol) or isinstance(expr, Type) or isinstance(expr, MultiType): if env.contains(expr.name): return evaluate(env.get(expr.name), env, ns) elif ns is not None and env.contains(f"{ns}/{expr.name}"): @@ -144,7 +144,7 @@ class UserFunction(Function): newparams.append(param) args.append(Arg(param.name, TypeEnum.ANY)) prev_type = False - elif isinstance(param, Type) and not prev_type and not first: + elif (isinstance(param, Type) or isinstance(param, MultiType)) and not prev_type and not first: if many is None: args[-1].type_ = param.name else: -- cgit v1.2.3