aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormryouse2022-07-29 19:03:50 +0000
committermryouse2022-07-29 19:03:50 +0000
commitac1b2333867b68a67210e27f9aa9de89c38862e9 (patch)
treeb24c84c1f0f30fe9ac10820f328bef1fa8e29e39
parentaa52ae991cd7bfaebd358f7d1a9482613b82396c (diff)
implement string->float
-rw-r--r--neb/std/types.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/neb/std/types.py b/neb/std/types.py
index cc40066..44906d8 100644
--- a/neb/std/types.py
+++ b/neb/std/types.py
@@ -108,6 +108,18 @@ stringtoint_multi = MultiFunction("string->int")
stringtoint_multi.register(stringtoint_func)
TYPES.register("string->int", stringtoint_multi)
+def interpretStringToFloat(symbol, args, env, ns):
+ try:
+ val = float(args[0].value)
+ return Float(val)
+ except:
+ raise InterpretPanic(symbol, "can't convert to a :float", args[0])
+
+stringtofloat_func = Builtin("string->float", interpretStringToFloat, [Arg("arg", TypeEnum.STRING)], return_type=Type(":float"))
+stringtofloat_multi = MultiFunction("string->float")
+stringtofloat_multi.register(stringtofloat_func)
+TYPES.register("string->float", stringtofloat_multi)
+
def interpretToString(symbol, args, env, ns):
item = args[0]
if isinstance(item, String):