make error handling for callable more ISO like.

This commit is contained in:
Vítor Santos Costa
2014-10-19 12:48:14 +01:00
parent 47d1bd5ecc
commit 0cd0ece207
18 changed files with 97 additions and 62 deletions

View File

@@ -724,7 +724,7 @@ get_pred(Term t, Term tmod, char *pname)
} else if (IsApplTerm(t)) {
Functor fun = FunctorOfTerm(t);
if (IsExtensionFunctor(fun)) {
Yap_Error(TYPE_ERROR_CALLABLE, t0, pname);
Yap_Error(TYPE_ERROR_CALLABLE, Yap_PredicateIndicator(t, tmod), pname);
return NULL;
}
if (fun == FunctorModule) {
@@ -2615,8 +2615,11 @@ p_compile( USES_REGS1 )
addclause(t, codeadr, (int) (IntOfTerm(t1) & 3), mod, &tn);
YAPLeaveCriticalSection();
if (LOCAL_ErrorMessage) {
if (LOCAL_Error_TYPE == TYPE_ERROR_CALLABLE) {
Yap_Error(LOCAL_Error_TYPE, Yap_PredicateIndicator(t, mod), LOCAL_ErrorMessage);
}
if (IntOfTerm(t1) & 4) {
Yap_Error(LOCAL_Error_TYPE, LOCAL_Error_Term,
Yap_Error(TYPE_ERROR_CALLABLE, LOCAL_Error_Term,
"in line %d, %s", Yap_FirstLineInParse(), LOCAL_ErrorMessage);
} else {
Yap_Error(LOCAL_Error_TYPE, LOCAL_Error_Term, LOCAL_ErrorMessage);