aboutsummaryrefslogtreecommitdiff
path: root/neb/std/math.py
diff options
context:
space:
mode:
authormryouse2022-06-26 01:31:14 +0000
committermryouse2022-06-26 01:31:14 +0000
commit182a05b85113631a611169a6724162ae9247b55e (patch)
tree4524b495f79c1e71cf1f001edf274c7ccd6a495b /neb/std/math.py
parent976c0a01e9e28d13037c9b1a5045789b3500d9fe (diff)
add return types to builtins
Diffstat (limited to 'neb/std/math.py')
-rw-r--r--neb/std/math.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/neb/std/math.py b/neb/std/math.py
index 66d153e..79ef332 100644
--- a/neb/std/math.py
+++ b/neb/std/math.py
@@ -8,23 +8,23 @@ def interpretLessThanEqual(symbol, args, env, ns):
return Bool(args[0].value <= args[1].value)
compare_arg = Arg("num", TypeEnum.NUMBER)
-MATH.register("<=", Builtin("<=", interpretLessThanEqual, [compare_arg, compare_arg]))
+MATH.register("<=", Builtin("<=", interpretLessThanEqual, [compare_arg, compare_arg], return_type=Type(":bool")))
def interpretGreaterThan(symbol, args, env, ns):
return Bool(args[0].value > args[1].value)
compare_arg = Arg("num", TypeEnum.NUMBER)
-MATH.register(">", Builtin(">", interpretGreaterThan, [compare_arg, compare_arg]))
+MATH.register(">", Builtin(">", interpretGreaterThan, [compare_arg, compare_arg], return_type=Type(":bool")))
def interpretGreaterThanEqual(symbol, args, env, ns):
return Bool(args[0].value >= args[1].value)
-MATH.register(">=", Builtin(">=", interpretGreaterThanEqual, [compare_arg, compare_arg]))
+MATH.register(">=", Builtin(">=", interpretGreaterThanEqual, [compare_arg, compare_arg], return_type=Type(":bool")))
def interpretLessThan(symbol, args, env, ns):
return Bool(args[0].value < args[1].value)
-MATH.register("<", Builtin("<", interpretLessThan, [compare_arg, compare_arg]))
+MATH.register("<", Builtin("<", interpretLessThan, [compare_arg, compare_arg], return_type=Type(":bool")))
def interpretAddition(symbol, args, env, ns):
res = 0
@@ -36,7 +36,7 @@ def interpretAddition(symbol, args, env, ns):
return Int(res)
term_arg = Arg("term", TypeEnum.NUMBER)
-MATH.register("+", Builtin("+", interpretAddition, [term_arg], term_arg))
+MATH.register("+", Builtin("+", interpretAddition, [term_arg], term_arg, Type(":number")))
def interpretSubtraction(symbol, args, env, ns):
if len(args) == 1:
@@ -50,7 +50,7 @@ def interpretSubtraction(symbol, args, env, ns):
else:
return Int(res)
-MATH.register("-", Builtin("-", interpretSubtraction, [term_arg], term_arg))
+MATH.register("-", Builtin("-", interpretSubtraction, [term_arg], term_arg, Type(":number")))
def interpretMultiplication(symbol, args, env, ns):
res = args[0].value
@@ -62,7 +62,7 @@ def interpretMultiplication(symbol, args, env, ns):
return Int(res)
factor_arg = Arg("factor", TypeEnum.NUMBER)
-MATH.register("*", Builtin("*", interpretMultiplication, [factor_arg, factor_arg], factor_arg))
+MATH.register("*", Builtin("*", interpretMultiplication, [factor_arg, factor_arg], factor_arg, Type(":number")))
def interpretDivision(symbol, args, env, ns):
ret = args[0].value / args[1].value
@@ -71,9 +71,9 @@ def interpretDivision(symbol, args, env, ns):
else:
return Float(ret)
-MATH.register("/", Builtin("/", interpretDivision, [factor_arg, factor_arg]))
+MATH.register("/", Builtin("/", interpretDivision, [factor_arg, factor_arg], return_type=Type(":number")))
def interpretFloor(symbol, args, env, ns):
return Int(math.floor(args[0].value))
-MATH.register("floor", Builtin("floor", interpretFloor, [Arg("floor", TypeEnum.NUMBER)]))
+MATH.register("floor", Builtin("floor", interpretFloor, [Arg("floor", TypeEnum.NUMBER)], return_type=Type(":int")))