From 44ab8a339c78bcc3460d44b2f435116f21faa60a Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Mon, 5 Jul 2021 16:27:38 +0000 Subject: First step on modules. Still very very rough. --- builtins.c | 89 +++++++++++++++++++++----------------------------------------- 1 file changed, 30 insertions(+), 59 deletions(-) (limited to 'builtins.c') diff --git a/builtins.c b/builtins.c index b0fb447..de0ede2 100644 --- a/builtins.c +++ b/builtins.c @@ -5,7 +5,7 @@ #include "dat.h" #include "fns.h" -#define BuiltinProto(name) int name(Term *, Term *, Binding **) +#define BuiltinProto(name) int name(Term *, Binding **) #define Match(X, Y) (runestrcmp(name, X) == 0 && arity == Y) #define Throw(What) do{\ Goal *g = malloc(sizeof(Goal)); \ @@ -128,18 +128,16 @@ findbuiltin(Term *goal) } int -builtinfail(Term *database, Term *goal, Binding **bindings) +builtinfail(Term *goal, Binding **bindings) { - USED(database); USED(goal); USED(bindings); return 0; } int -builtincall(Term *database, Term *goal, Binding **bindings) +builtincall(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Goal *g = malloc(sizeof(Goal)); @@ -152,9 +150,8 @@ builtincall(Term *database, Term *goal, Binding **bindings) } int -builtincut(Term *database, Term *goal, Binding **bindings) +builtincut(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Choicepoint *cp = choicestack; @@ -169,72 +166,64 @@ builtincut(Term *database, Term *goal, Binding **bindings) } int -builtinvar(Term *database, Term *goal, Binding **bindings) +builtinvar(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == VariableTerm); } int -builtinatom(Term *database, Term *goal, Binding **bindings) +builtinatom(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == AtomTerm); } int -builtininteger(Term *database, Term *goal, Binding **bindings) +builtininteger(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == NumberTerm && arg->numbertype == NumberInt); } int -builtinfloat(Term *database, Term *goal, Binding **bindings) +builtinfloat(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == NumberTerm && arg->numbertype == NumberFloat); } int -builtinatomic(Term *database, Term *goal, Binding **bindings) +builtinatomic(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == AtomTerm || arg->tag == NumberTerm); } int -builtincompound(Term *database, Term *goal, Binding **bindings) +builtincompound(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == CompoundTerm); } int -builtinnonvar(Term *database, Term *goal, Binding **bindings) +builtinnonvar(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag != VariableTerm); } int -builtinnumber(Term *database, Term *goal, Binding **bindings) +builtinnumber(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *arg = goal->children; return (arg->tag == NumberTerm); @@ -296,9 +285,8 @@ compareterms(Term *t1, Term *t2) } int -builtincompare(Term *database, Term *goal, Binding **bindings) +builtincompare(Term *goal, Binding **bindings) { - USED(database); Term *order = goal->children; Term *t1 = order->next; Term *t2 = t1->next; @@ -317,9 +305,8 @@ builtincompare(Term *database, Term *goal, Binding **bindings) } int -builtinfunctor(Term *database, Term *goal, Binding **bindings) +builtinfunctor(Term *goal, Binding **bindings) { - USED(database); Term *term = goal->children; Term *name = term->next; @@ -354,9 +341,8 @@ builtinfunctor(Term *database, Term *goal, Binding **bindings) } int -builtinarg(Term *database, Term *goal, Binding **bindings) +builtinarg(Term *goal, Binding **bindings) { - USED(database); Term *n = goal->children; Term *term = n->next; @@ -390,9 +376,8 @@ listlength(Term *term) } int -builtinuniv(Term *database, Term *goal, Binding **bindings) +builtinuniv(Term *goal, Binding **bindings) { - USED(database); Term *term = goal->children; Term *list = term->next; @@ -463,9 +448,8 @@ aritheval(Term *expr) } int -builtinis(Term *database, Term *goal, Binding **bindings) +builtinis(Term *goal, Binding **bindings) { - USED(database); Term *result = goal->children; Term *expr = result->next; @@ -478,9 +462,8 @@ builtinis(Term *database, Term *goal, Binding **bindings) } int -builtincatch(Term *database, Term *goal, Binding **bindings) +builtincatch(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *catchgoal = goal->children; @@ -503,9 +486,8 @@ builtincatch(Term *database, Term *goal, Binding **bindings) } int -builtinthrow(Term *database, Term *goal, Binding **bindings) +builtinthrow(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *ball = goal->children; @@ -543,18 +525,16 @@ builtinthrow(Term *database, Term *goal, Binding **bindings) } int -builtincurrentprologflag(Term *database, Term *goal, Binding **bindings) +builtincurrentprologflag(Term *goal, Binding **bindings) { - USED(database); USED(goal); USED(bindings); return 0; } int -builtinsetprologflag(Term *database, Term *goal, Binding **bindings) +builtinsetprologflag(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *key = goal->children; Term *value = key->next; @@ -572,9 +552,8 @@ builtinsetprologflag(Term *database, Term *goal, Binding **bindings) } int -builtinopen(Term *database, Term *goal, Binding **bindings) +builtinopen(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *sourcesink = goal->children; @@ -608,9 +587,8 @@ builtinopen(Term *database, Term *goal, Binding **bindings) } int -builtinclose(Term *database, Term *goal, Binding **bindings) +builtinclose(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *stream = goal->children; @@ -634,9 +612,8 @@ builtinclose(Term *database, Term *goal, Binding **bindings) } int -builtincurrentinput(Term *database, Term *goal, Binding **bindings) +builtincurrentinput(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *stream = goal->children; @@ -648,9 +625,8 @@ builtincurrentinput(Term *database, Term *goal, Binding **bindings) } int -builtincurrentoutput(Term *database, Term *goal, Binding **bindings) +builtincurrentoutput(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *stream = goal->children; @@ -662,9 +638,8 @@ builtincurrentoutput(Term *database, Term *goal, Binding **bindings) } int -builtinsetinput(Term *database, Term *goal, Binding **bindings) +builtinsetinput(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *stream = goal->children; @@ -685,9 +660,8 @@ builtinsetinput(Term *database, Term *goal, Binding **bindings) } int -builtinsetoutput(Term *database, Term *goal, Binding **bindings) +builtinsetoutput(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *stream = goal->children; @@ -708,9 +682,8 @@ builtinsetoutput(Term *database, Term *goal, Binding **bindings) } int -builtinreadterm(Term *database, Term *goal, Binding **bindings) +builtinreadterm(Term *goal, Binding **bindings) { - USED(database); USED(bindings); Term *stream = goal->children; @@ -739,11 +712,10 @@ builtinreadterm(Term *database, Term *goal, Binding **bindings) } int -builtinwriteterm(Term *database, Term *goal, Binding **bindings) +builtinwriteterm(Term *goal, Binding **bindings) { - USED(database); USED(bindings); - + Term *stream = goal->children; Term *term = stream->next; Term *options = term->next; @@ -763,4 +735,3 @@ builtinwriteterm(Term *database, Term *goal, Binding **bindings) writeterm(stream, options, term); return 1; } - -- cgit v1.2.3