diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-20 23:17:16 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-20 23:17:16 +0000 |
commit | 0478e6930517d63b30630c88a815d99f6e756c09 (patch) | |
tree | bbbc185e1d4fd4631226fd5f7afab844fae0e051 | |
parent | 901224d36c3f488e4118a1fd804da2b3372d8ed6 (diff) |
Throw errors when trying to evaluate goals that cannot be evaluated
-rw-r--r-- | eval.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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; |