aboutsummaryrefslogtreecommitdiff
path: root/neb/std/types.py
diff options
context:
space:
mode:
Diffstat (limited to 'neb/std/types.py')
-rw-r--r--neb/std/types.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/neb/std/types.py b/neb/std/types.py
index b5fb993..f8d5405 100644
--- a/neb/std/types.py
+++ b/neb/std/types.py
@@ -6,33 +6,33 @@ TYPES = Environment()
def interpretIsBool(symbol, args, env, ns):
return Bool(isinstance(args[0], Bool))
-TYPES.register("bool?", Builtin("bool?", interpretIsBool, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("bool?", Builtin("bool?", interpretIsBool, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretIsFloat(symbol, args, env, ns):
return Bool(isinstance(args[0], Float))
-TYPES.register("float?", Builtin("float?", interpretIsFloat, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("float?", Builtin("float?", interpretIsFloat, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretIsNumber(symbol, args, env, ns):
ret = isinstance(args[0], Int) or isinstance(args[0], Float)
return Bool(ret)
-TYPES.register("number?", Builtin("number?", interpretIsNumber, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("number?", Builtin("number?", interpretIsNumber, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretIsInt(symbol, args, env, ns):
return Bool(isinstance(args[0], Int))
-TYPES.register("int?", Builtin("int?", interpretIsInt, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("int?", Builtin("int?", interpretIsInt, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretIsList(symbol, args, env, ns):
return Bool(isinstance(args[0], List))
-TYPES.register("list?", Builtin("list?", interpretIsList, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("list?", Builtin("list?", interpretIsList, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretIsString(symbol, args, env, ns):
return Bool(isinstance(args[0], String))
-TYPES.register("string?", Builtin("string?", interpretIsString, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("string?", Builtin("string?", interpretIsString, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretStringToInt(symbol, args, env, ns):
try:
@@ -41,7 +41,7 @@ def interpretStringToInt(symbol, args, env, ns):
except:
raise InterpretPanic(symbol, "can't convert to an :int", args[0])
-TYPES.register("string->int", Builtin("string->int", interpretStringToInt, [Arg("arg", TypeEnum.STRING)]))
+TYPES.register("string->int", Builtin("string->int", interpretStringToInt, [Arg("arg", TypeEnum.STRING)], return_type=Type(":int")))
def interpretToString(symbol, args, env, ns):
item = args[0]
@@ -52,7 +52,7 @@ def interpretToString(symbol, args, env, ns):
else:
return String(f"{item}")
-TYPES.register("->string", Builtin("->string", interpretToString, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("->string", Builtin("->string", interpretToString, [Arg("arg", TypeEnum.ANY)], return_type=Type(":string")))
def interpretTypeOf(symbol, args, env, ns):
return Type(f"{args[0].type_}")
@@ -62,12 +62,12 @@ TYPES.register("typeof", Builtin("typeof", interpretTypeOf, [Arg("candidate", Ty
def interpretIsAny(symbol, args, env, ns):
return Bool(True)
-TYPES.register("any?", Builtin("any?", interpretIsAny, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("any?", Builtin("any?", interpretIsAny, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
def interpretIsLiteral(symbol, args, env, ns):
return Bool(isinstance(args[0], Literal))
-TYPES.register("literal?", Builtin("literal?", interpretIsLiteral, [Arg("arg", TypeEnum.ANY)]))
+TYPES.register("literal?", Builtin("literal?", interpretIsLiteral, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool")))
# add types to env
any_type = NebType(":any", None, interpretIsAny)