From 5f484ca29fa49584fb82d789cde1ac084dfef30e Mon Sep 17 00:00:00 2001 From: mryouse Date: Sat, 9 Jul 2022 00:14:36 +0000 Subject: rename 'macros' to 'syntax' --- neb/std/core.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'neb/std/core.py') diff --git a/neb/std/core.py b/neb/std/core.py index a0f2cf6..cf0686b 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, InterpretPanic, TypeWrap, Function, UserType, NebMacro +from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, evaluate, interpret, parse, lex, InterpretPanic, TypeWrap, Function, UserType, NebSyntax from ..structs import * from pathlib import Path @@ -18,7 +18,7 @@ def interpretIf(symbol, args, env, ns): cond = Arg("cond", TypeEnum.BOOL) t_branch = Arg("t-branch", TypeEnum.ANY) f_branch = Arg("f-branch", TypeEnum.ANY, optional=True) -CORE.register("if", NebMacro("if", interpretIf, [cond, t_branch, f_branch])) +CORE.register("if", NebSyntax("if", interpretIf, [cond, t_branch, f_branch])) def interpretDef(symbol, args, env, ns): if not isinstance(args[0], Symbol): @@ -30,7 +30,7 @@ def interpretDef(symbol, args, env, ns): def_name_arg = Arg("name", TypeEnum.ANY) def_val_arg = Arg("value", TypeEnum.ANY) -CORE.register("def", NebMacro("def", interpretDef, [def_name_arg, def_val_arg], return_type=Type(":list"))) +CORE.register("def", NebSyntax("def", interpretDef, [def_name_arg, def_val_arg], return_type=Type(":list"))) def interpretRedef(symbol, args, env, ns): if not isinstance(args[0], Symbol): @@ -43,7 +43,7 @@ def interpretRedef(symbol, args, env, ns): env.reregister(name, res) return List([]) -CORE.register("redef", NebMacro("redef", interpretRedef, [def_name_arg, def_val_arg], return_type=Type(":list"))) +CORE.register("redef", NebSyntax("redef", interpretRedef, [def_name_arg, def_val_arg], return_type=Type(":list"))) def interpretLambda(symbol, args, env, ns): new_args = args @@ -61,7 +61,7 @@ def interpretLambda(symbol, args, env, ns): lambda_args_arg = Arg("args", TypeEnum.ANY) lambda_body_arg = Arg("body", TypeEnum.ANY) -CORE.register("lambda", NebMacro("lambda", interpretLambda, [lambda_args_arg, lambda_body_arg], lambda_body_arg)) +CORE.register("lambda", NebSyntax("lambda", interpretLambda, [lambda_args_arg, lambda_body_arg], lambda_body_arg)) def interpretForCount(symbol, args, env, ns): num = evaluate(args[0], env, ns) @@ -79,7 +79,7 @@ def interpretForCount(symbol, args, env, ns): for_count_arg = Arg("count", TypeEnum.INT) for_body_arg = Arg("body", TypeEnum.ANY) -CORE.register("for-count", NebMacro("for-count", interpretForCount, [for_count_arg, for_body_arg], for_body_arg)) +CORE.register("for-count", NebSyntax("for-count", interpretForCount, [for_count_arg, for_body_arg], for_body_arg)) def interpretForEach(symbol, args, env, ns): coll = evaluate(args[0], env, ns) @@ -96,7 +96,7 @@ def interpretForEach(symbol, args, env, ns): return ret for_each_arg = Arg("list", TypeEnum.LIST) -CORE.register("for-each", NebMacro("for-each", interpretForEach, [for_each_arg, for_body_arg], for_body_arg)) +CORE.register("for-each", NebSyntax("for-each", interpretForEach, [for_each_arg, for_body_arg], for_body_arg)) def interpretBranch(symbol, args, env, ns): for arg in args: @@ -109,7 +109,7 @@ def interpretBranch(symbol, args, env, ns): return evaluate(arg.args[1], env, ns) return List([]) -CORE.register("branch", NebMacro("branch", interpretBranch, [for_body_arg], for_body_arg)) +CORE.register("branch", NebSyntax("branch", interpretBranch, [for_body_arg], for_body_arg)) def interpretFunc(symbol, args, env, ns): if not isinstance(args[0], Symbol): @@ -128,7 +128,7 @@ def interpretFunc(symbol, args, env, ns): env.register(name, func) return List([]) -CORE.register("func", NebMacro("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg, Type(":list"))) +CORE.register("func", NebSyntax("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg, Type(":list"))) def interpretBlock(symbol, args, env, ns): new_env = Environment(env) @@ -138,7 +138,7 @@ def interpretBlock(symbol, args, env, ns): return ret block_arg = Arg("expr", TypeEnum.ANY) -CORE.register("block", NebMacro("block", interpretBlock, [block_arg], block_arg)) +CORE.register("block", NebSyntax("block", interpretBlock, [block_arg], block_arg)) def interpretWhile(symbol, args, env, ns): new_env = Environment(env) @@ -154,7 +154,7 @@ def interpretWhile(symbol, args, env, ns): ret = evaluate(arg, new_env, ns) return ret -CORE.register("while", NebMacro("while", interpretWhile, [Arg("cond", TypeEnum.BOOL)], Arg("expr", TypeEnum.ANY))) +CORE.register("while", NebSyntax("while", interpretWhile, [Arg("cond", TypeEnum.BOOL)], Arg("expr", TypeEnum.ANY))) # NOTE this doesn't technically need to be a macro def interpretUse(symbol, args, env, ns): @@ -169,7 +169,7 @@ def interpretUse(symbol, args, env, ns): interpret(parse(lex(data)), env, ns) return List([]) -CORE.register("use", NebMacro("use", interpretUse, [Arg("filename", TypeEnum.STRING)], return_type=Type(":list"))) +CORE.register("use", NebSyntax("use", interpretUse, [Arg("filename", TypeEnum.STRING)], return_type=Type(":list"))) # NOTE this doesn't technically need to be a macro def interpretAssert(symbol, args, env, ns): @@ -180,7 +180,7 @@ def interpretAssert(symbol, args, env, ns): raise InterpretPanic(symbol, "assertion failed") return List([]) -CORE.register("assert", NebMacro("assert", interpretAssert, [Arg("cond", TypeEnum.BOOL)], return_type=Type(":list"))) +CORE.register("assert", NebSyntax("assert", interpretAssert, [Arg("cond", TypeEnum.BOOL)], return_type=Type(":list"))) def interpretUseAs(symbol, args, env, ns): target = evaluate(args[0], env, ns) @@ -197,20 +197,20 @@ def interpretUseAs(symbol, args, env, ns): interpret(parse(lex(data)), env, new_ns) return List([]) -CORE.register("use-as", NebMacro("use-as", interpretUseAs, [Arg("filename", TypeEnum.STRING), Arg("namespace", TypeEnum.ANY)], return_type=Type(":list"))) +CORE.register("use-as", NebSyntax("use-as", interpretUseAs, [Arg("filename", TypeEnum.STRING), Arg("namespace", TypeEnum.ANY)], return_type=Type(":list"))) def interpretQuote(symbol, args, env, ns): return args[0] quote_arg = Arg("arg", TypeEnum.ANY) -CORE.register("quote", NebMacro("quote", interpretQuote, [quote_arg])) +CORE.register("quote", NebSyntax("quote", interpretQuote, [quote_arg])) def interpretEval(symbol, args, env, ns): ev = evaluate(args[0], env, ns) # TODO why do i have to evaluate twice? return evaluate(ev, env, ns) eval_arg = Arg("arg", TypeEnum.ANY) -CORE.register("eval", NebMacro("eval", interpretEval, [eval_arg])) +CORE.register("eval", NebSyntax("eval", interpretEval, [eval_arg])) def interpretType(symbol, args, env, ns): # (type typename parent func) @@ -239,7 +239,7 @@ def interpretType(symbol, args, env, ns): type_name_arg = Arg("name", TypeEnum.ANY) type_parent_arg = Arg("name", TypeEnum.ANY) type_func_arg = Arg("func", TypeEnum.ANY) -CORE.register("type", NebMacro("type", interpretType, [type_name_arg, type_parent_arg, type_func_arg])) +CORE.register("type", NebSyntax("type", interpretType, [type_name_arg, type_parent_arg, type_func_arg])) def interpretOr(symbol, args, env, ns): # or returns true for the first expression that returns true @@ -252,7 +252,7 @@ def interpretOr(symbol, args, env, ns): return Bool(False) or_arg = Arg("arg", TypeEnum.BOOL) -CORE.register("or", NebMacro("or", interpretOr, [or_arg, or_arg], or_arg, Type(":bool"))) +CORE.register("or", NebSyntax("or", interpretOr, [or_arg, or_arg], or_arg, Type(":bool"))) def interpretAnd(symbol, args, env, ns): # and returns false for the first expression that returns false @@ -264,7 +264,7 @@ def interpretAnd(symbol, args, env, ns): return ev return Bool(True) -CORE.register("and", Builtin("and", interpretAnd, [or_arg, or_arg], or_arg, Type(":bool"))) +CORE.register("and", NebSyntax("and", interpretAnd, [or_arg, or_arg], or_arg, Type(":bool"))) def interpretBench(symbol, args, env, ns): before = datetime.now() @@ -273,4 +273,4 @@ def interpretBench(symbol, args, env, ns): print(f"bench [{symbol.line}]: {args[0]} => {after - before}") return ret -CORE.register("bench", NebMacro("bench", interpretBench, [Arg("command", TypeEnum.ANY)], return_type=Type(":any"))) +CORE.register("bench", NebSyntax("bench", interpretBench, [Arg("command", TypeEnum.ANY)], return_type=Type(":any"))) -- cgit v1.2.3