ADDED: call_with_error_context/2
See https://github.com/mthom/scryer-prolog/discussions/2839 for more information.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Written 2018-2023 by Markus Triska (triska@metalevel.at)
|
Written 2018-2025 by Markus Triska (triska@metalevel.at)
|
||||||
I place this code in the public domain. Use it in any way you want.
|
I place this code in the public domain. Use it in any way you want.
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
@@ -7,7 +7,8 @@
|
|||||||
can_be/2,
|
can_be/2,
|
||||||
instantiation_error/1,
|
instantiation_error/1,
|
||||||
domain_error/3,
|
domain_error/3,
|
||||||
type_error/3
|
type_error/3,
|
||||||
|
call_with_error_context/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
|
||||||
@@ -217,3 +218,20 @@ domain_error(Type, Term, Context) :-
|
|||||||
|
|
||||||
type_error(Type, Term, Context) :-
|
type_error(Type, Term, Context) :-
|
||||||
throw(error(type_error(Type, Term), Context)).
|
throw(error(type_error(Type, Term), Context)).
|
||||||
|
|
||||||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
call_with_error_context/2
|
||||||
|
|
||||||
|
See https://github.com/mthom/scryer-prolog/discussions/2839 .
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
|
%% call_with_error_context(+Goal, +Pair)
|
||||||
|
%
|
||||||
|
% Call _Goal_ with error context _Pair_.
|
||||||
|
%
|
||||||
|
% Examples of error contexts: `predicate-PI`, `file-Filename` etc.
|
||||||
|
|
||||||
|
:- meta_predicate(call_with_error_context(0,+)).
|
||||||
|
call_with_error_context(G_0, Pair) :-
|
||||||
|
must_be(pair, Pair),
|
||||||
|
catch(G_0, error(E,Pairs), throw(error(E,[Pair|Pairs]))).
|
||||||
|
|||||||
Reference in New Issue
Block a user