summaryrefslogtreecommitdiff
path: root/builtins.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2021-07-05 16:27:38 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2021-07-05 16:27:38 +0000
commit44ab8a339c78bcc3460d44b2f435116f21faa60a (patch)
treefa512c143c5df81c0c333a187b9083cbac9636f6 /builtins.c
parent3f26a0f2a1f699e628136ec5be6178b5ab40fc44 (diff)
First step on modules. Still very very rough.
Diffstat (limited to 'builtins.c')
-rw-r--r--builtins.c89
1 files changed, 30 insertions, 59 deletions
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;
}
-