summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2021-07-20 23:17:16 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2021-07-20 23:17:16 +0000
commit0478e6930517d63b30630c88a815d99f6e756c09 (patch)
treebbbc185e1d4fd4631226fd5f7afab844fae0e051 /eval.c
parent901224d36c3f488e4118a1fd804da2b3372d8ed6 (diff)
Throw errors when trying to evaluate goals that cannot be evaluated
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 09bb009..e57f28f 100644
--- a/eval.c
+++ b/eval.c
@@ -28,6 +28,11 @@ evalquery(Term *query)
if(flagdebug)
print("Working goal: %S:%S\n", module->name, prettyprint(goal, 0, 0, 0, nil));
+ if(goal->tag == VariableTerm)
+ goal = instantiationerror();
+ if(goal->tag != AtomTerm && goal->tag != CompoundTerm)
+ goal = typeerror(L"callable", goal);
+
Binding *bindings = nil;
Clause *clause = nil;