aboutsummaryrefslogtreecommitdiff
path: root/neb/std/core.py
diff options
context:
space:
mode:
authormryouse2022-06-22 00:59:28 +0000
committermryouse2022-06-22 00:59:28 +0000
commitf126db2e1d476d5f7457594bcb318a5cb5f0c528 (patch)
treee23fc55a7d864cc47685c6199ce1775c265f1a85 /neb/std/core.py
parentf2c9f51359f7f2c7a1b968bc72ca911b7bb2b2d0 (diff)
give builtin functions proper names
Diffstat (limited to 'neb/std/core.py')
-rw-r--r--neb/std/core.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/neb/std/core.py b/neb/std/core.py
index d481daa..171b96b 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
+from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, evaluate, interpret, parse, lex, InterpretPanic
from ..structs import *
from pathlib import Path
@@ -14,7 +14,7 @@ def interpretIf(symbol, args, env, ns):
cond = Arg("cond", TypeEnum.BOOL)
t_branch = Arg("t-branch", TypeEnum.ANY, lazy=True)
f_branch = Arg("f-branch", TypeEnum.ANY, optional=True, lazy=True)
-CORE.register("if", Builtin(interpretIf, [cond, t_branch, f_branch]))
+CORE.register("if", Builtin("if", interpretIf, [cond, t_branch, f_branch]))
def interpretDef(symbol, args, env, ns):
@@ -30,7 +30,7 @@ def interpretDef(symbol, args, env, ns):
def_name_arg = Arg("name", TypeEnum.ANY, lazy=True)
def_val_arg = Arg("value", TypeEnum.ANY)
-CORE.register("def", Builtin(interpretDef, [def_name_arg, def_val_arg]))
+CORE.register("def", Builtin("def", interpretDef, [def_name_arg, def_val_arg]))
def interpretRedef(symbol, args, env, ns):
if not isinstance(args[0], Symbol):
@@ -42,7 +42,7 @@ def interpretRedef(symbol, args, env, ns):
env.reregister(name, args[1])
return List([])
-CORE.register("redef", Builtin(interpretRedef, [def_name_arg, def_val_arg]))
+CORE.register("redef", Builtin("redef", interpretRedef, [def_name_arg, def_val_arg]))
def interpretLambda(symbol, args, env, ns):
if len(args[0].args) != 0:
@@ -53,7 +53,7 @@ def interpretLambda(symbol, args, env, ns):
lambda_args_arg = Arg("args", TypeEnum.ANY, lazy=True)
lambda_body_arg = Arg("body", TypeEnum.ANY, lazy=True)
-CORE.register("lambda", Builtin(interpretLambda, [lambda_args_arg, lambda_body_arg], lambda_body_arg))
+CORE.register("lambda", Builtin("lambda", interpretLambda, [lambda_args_arg, lambda_body_arg], lambda_body_arg))
def interpretForCount(symbol, args, env, ns):
new_env = Environment(env)
@@ -68,7 +68,7 @@ def interpretForCount(symbol, args, env, ns):
for_count_arg = Arg("count", TypeEnum.INT)
for_body_arg = Arg("body", TypeEnum.ANY, lazy=True)
-CORE.register("for-count", Builtin(interpretForCount, [for_count_arg, for_body_arg], for_body_arg))
+CORE.register("for-count", Builtin("for-count", interpretForCount, [for_count_arg, for_body_arg], for_body_arg))
def interpretForEach(symbol, args, env, ns):
new_env = Environment(env)
@@ -82,7 +82,7 @@ def interpretForEach(symbol, args, env, ns):
return ret
for_each_arg = Arg("list", TypeEnum.LIST)
-CORE.register("for-each", Builtin(interpretForEach, [for_each_arg, for_body_arg], for_body_arg))
+CORE.register("for-each", Builtin("for-each", interpretForEach, [for_each_arg, for_body_arg], for_body_arg))
def interpretBranch(symbol, args, env, ns):
for arg in args:
@@ -95,7 +95,7 @@ def interpretBranch(symbol, args, env, ns):
return evaluate(arg.args[1], env, ns)
return List([])
-CORE.register("branch", Builtin(interpretBranch, [for_body_arg], for_body_arg))
+CORE.register("branch", Builtin("branch", interpretBranch, [for_body_arg], for_body_arg))
def interpretFunc(symbol, args, env, ns):
if not isinstance(args[0], Symbol):
@@ -114,7 +114,7 @@ def interpretFunc(symbol, args, env, ns):
env.register(name, func)
return List([])
-CORE.register("func", Builtin(interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg))
+CORE.register("func", Builtin("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg))
def interpretBlock(symbol, args, env, ns):
ret = List([])
@@ -123,7 +123,7 @@ def interpretBlock(symbol, args, env, ns):
return ret
block_arg = Arg("expr", TypeEnum.ANY, lazy=True)
-CORE.register("block", Builtin(interpretBlock, [block_arg], block_arg))
+CORE.register("block", Builtin("block", interpretBlock, [block_arg], block_arg))
def interpretWhile(symbol, args, env, ns):
cond = args[0]
@@ -138,7 +138,7 @@ def interpretWhile(symbol, args, env, ns):
ret = evaluate(arg, env, ns)
return ret
-CORE.register("while", Builtin(interpretWhile, [Arg("cond", TypeEnum.BOOL, lazy=True)], Arg("expr", TypeEnum.ANY, lazy=True)))
+CORE.register("while", Builtin("while", interpretWhile, [Arg("cond", TypeEnum.BOOL, lazy=True)], Arg("expr", TypeEnum.ANY, lazy=True)))
def interpretUse(symbol, args, env, ns):
target_file_name = args[0].value
@@ -150,14 +150,14 @@ def interpretUse(symbol, args, env, ns):
interpret(parse(lex(data)), env, ns)
return List([])
-CORE.register("use", Builtin(interpretUse, [Arg("filename", TypeEnum.STRING)]))
+CORE.register("use", Builtin("use", interpretUse, [Arg("filename", TypeEnum.STRING)]))
def interpretAssert(symbol, args, env, ns):
if args[0].value != True:
raise InterpretPanic(symbol, "assertion failed")
return List([])
-CORE.register("assert", Builtin(interpretAssert, [Arg("cond", TypeEnum.BOOL)]))
+CORE.register("assert", Builtin("assert", interpretAssert, [Arg("cond", TypeEnum.BOOL)]))
def interpretUseAs(symbol, args, env, ns):
target_file_name = args[0].value
@@ -169,16 +169,16 @@ def interpretUseAs(symbol, args, env, ns):
interpret(parse(lex(data)), ns=args[1].name)
return List([])
-CORE.register("use-as", Builtin(interpretUseAs, [Arg("filename", TypeEnum.STRING), Arg("namespace", TypeEnum.ANY, lazy=True)]))
+CORE.register("use-as", Builtin("use-as", interpretUseAs, [Arg("filename", TypeEnum.STRING), Arg("namespace", TypeEnum.ANY, lazy=True)]))
def interpretQuote(symbol, args, env, ns):
return args[0]
quote_arg = Arg("arg", TypeEnum.ANY, lazy=True)
-CORE.register("quote", Builtin(interpretQuote, [quote_arg]))
+CORE.register("quote", Builtin("quote", interpretQuote, [quote_arg]))
def interpretEval(symbol, args, env, ns):
return evaluate(args[0], env, ns) # TODO why do i have to explicitly evaluate here?
eval_arg = Arg("arg", TypeEnum.ANY)
-CORE.register("eval", Builtin(interpretEval, [eval_arg]))
+CORE.register("eval", Builtin("eval", interpretEval, [eval_arg]))