make new framework more flexible.
This commit is contained in:
parent
5ed065f92d
commit
59f6e89def
@ -201,6 +201,7 @@ compose_message(yes, _Level) --> !,
|
|||||||
|
|
||||||
compose_message(Term, Level) -->
|
compose_message(Term, Level) -->
|
||||||
{ Level == error -> true ; Level == warning },
|
{ Level == error -> true ; Level == warning },
|
||||||
|
[nl],
|
||||||
location(Term, Level),
|
location(Term, Level),
|
||||||
[nl],
|
[nl],
|
||||||
main_message( Term, Level ),
|
main_message( Term, Level ),
|
||||||
@ -208,12 +209,21 @@ compose_message(Term, Level) -->
|
|||||||
caller( Term, Level ),
|
caller( Term, Level ),
|
||||||
extra_info( Term, Level ),
|
extra_info( Term, Level ),
|
||||||
!,
|
!,
|
||||||
[nl].
|
[nl,nl].
|
||||||
compose_message(A-L, _Level) -->
|
compose_message(Term, Level) -->
|
||||||
{ format(user_error,A,L) }.
|
{ Level == error -> true ; Level == warning },
|
||||||
|
[nl],
|
||||||
|
main_message( Term, Level ),
|
||||||
|
[nl,nl].
|
||||||
|
|
||||||
location( error(_,Term), Level ) -->
|
location( error(_,Term), Level ) -->
|
||||||
{ lists:memberchk([p|p(M,Na,Ar,File,FilePos)], Term ) },
|
{ source_location(F0, L),
|
||||||
|
stream_property(_Stream, alias(loop_stream)) }, !,
|
||||||
|
{ lists:memberchk([p|p(M,Na,Ar,_File,_FilePos)], Term ) },
|
||||||
|
[ '~a:~d:0 ~a in ~a:~q/~d:'-[F0, L,Level,M,Na,Ar] ],
|
||||||
|
[nl].
|
||||||
|
location( error(_,Term), Level ) -->
|
||||||
|
{ lists:memberchk([p|p(M,Na,Ar,File,FilePos)], Term ) }, !,
|
||||||
[ '~a:~d:0 ~a in ~a:~q/~d:'-[File, FilePos,Level,M,Na,Ar] ],
|
[ '~a:~d:0 ~a in ~a:~q/~d:'-[File, FilePos,Level,M,Na,Ar] ],
|
||||||
[nl].
|
[nl].
|
||||||
location(error(_,syntax_error(_,between(_,LN,_),FileName,_) ), _ ) -->
|
location(error(_,syntax_error(_,between(_,LN,_),FileName,_) ), _ ) -->
|
||||||
@ -257,7 +267,7 @@ main_message(error(domain_error(Who , Type), _Where), _Source) -->
|
|||||||
main_message(error(evaluation_error(What), _Where), _Source) -->
|
main_message(error(evaluation_error(What), _Where), _Source) -->
|
||||||
[ '~*|!!! caused ~a during evaluation of arithmetic expressions,' - [8,What], nl ].
|
[ '~*|!!! caused ~a during evaluation of arithmetic expressions,' - [8,What], nl ].
|
||||||
main_message(error(existence_error(Type , Who), _Where), _Source) -->
|
main_message(error(existence_error(Type , Who), _Where), _Source) -->
|
||||||
[ '~*|!!! ~q ~a could not be found,' - [8,Type, Who], nl ].
|
[ '~*|!!! ~q ~q could not be found,' - [8,Type, Who], nl ].
|
||||||
main_message(error(permission_error(Op, Type, Id), _Where), _Source) -->
|
main_message(error(permission_error(Op, Type, Id), _Where), _Source) -->
|
||||||
[ '~*|!!! ~q is not allowed in ~a ~q,' - [8, Op, Type,Id], nl ].
|
[ '~*|!!! ~q is not allowed in ~a ~q,' - [8, Op, Type,Id], nl ].
|
||||||
main_message(error(instantiation_error, _Where), _Source) -->
|
main_message(error(instantiation_error, _Where), _Source) -->
|
||||||
@ -265,10 +275,18 @@ main_message(error(instantiation_error, _Where), _Source) -->
|
|||||||
main_message(error(representation_error), _Source) -->
|
main_message(error(representation_error), _Source) -->
|
||||||
[ '~*|!!! unbound variable' - [8], nl ].
|
[ '~*|!!! unbound variable' - [8], nl ].
|
||||||
main_message(error(type_error(Type,Who), _What), _Source) -->
|
main_message(error(type_error(Type,Who), _What), _Source) -->
|
||||||
[ '~*|!!! ~q should be of type ~a' - [8,Who,Type], nl ].
|
[ '~*|!!! ~q should be of type ~a' - [8,Who,Type]],
|
||||||
|
[ nl ].
|
||||||
main_message(error(uninstantiation_error(T),_), _Source) -->
|
main_message(error(uninstantiation_error(T),_), _Source) -->
|
||||||
[ '~*|!!! found ~q, expected unbound variable ' - [8,T], nl ].
|
[ '~*|!!! found ~q, expected unbound variable ' - [8,T], nl ].
|
||||||
|
|
||||||
|
consulting -->
|
||||||
|
{ source_location(F0, L),
|
||||||
|
stream_property(_Stream, alias(loop_stream)) }, !,
|
||||||
|
[ '~*| while consulting ~a:~d'-[10,F0,L] ],
|
||||||
|
[nl].
|
||||||
|
consulting --> [].
|
||||||
|
|
||||||
caller( error(_,Term), _) -->
|
caller( error(_,Term), _) -->
|
||||||
{ lists:memberchk([p|p(M,Na,Ar,File,FilePos)], Term ) },
|
{ lists:memberchk([p|p(M,Na,Ar,File,FilePos)], Term ) },
|
||||||
{ lists:memberchk([g|g(Call)], Term) },
|
{ lists:memberchk([g|g(Call)], Term) },
|
||||||
|
Reference in New Issue
Block a user