 
            Module: ppl/ppl Branch: master Commit: eb9d162975ce37469fa28fa69c07a29ca76ca6f9 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=eb9d162975ce3...
Author: Patricia Hill p.m.hill@leeds.ac.uk Date: Wed Apr 18 15:35:12 2012 +0100
Allow for Prolog exception errors to have message functor ppl_length_error.
---
interfaces/Prolog/tests/pl_check.pl | 85 ++++++++++++++++++++--------------- 1 files changed, 48 insertions(+), 37 deletions(-)
diff --git a/interfaces/Prolog/tests/pl_check.pl b/interfaces/Prolog/tests/pl_check.pl index 4c327a8..4235caa 100644 --- a/interfaces/Prolog/tests/pl_check.pl +++ b/interfaces/Prolog/tests/pl_check.pl @@ -3017,46 +3017,52 @@ exception_cplusplus(10, [A, B, C]) :- % If expected exception is caught, it succeeds and fails if not.
must_catch(Call, prolog_exception_error) :- - !, - catch( Call, Message, format_exception_message( Message ) ), - ( +var(Message) -> - ((Message =.. [ppl_invalid_argument|_] ; Message = out_of_memory) -> - true - ; - check_exception_term(Message) - ) - ; - fail - ). + !, + catch( Call, Message, format_exception_message( Message ) ), + ( +var(Message) -> + (( + Message =.. [ppl_invalid_argument|_] + ; + Message =.. [ppl_length_error|_] + ; + Message = out_of_memory + ) -> + true + ; + check_exception_term(Message) + ) + ; + fail + ). must_catch(Call, cpp_error) :- - !, - catch( Call, Message, format_exception_message( cpp_error(Message) ) ), - ( ( + var(Message), - functor(Message, ppl_invalid_argument, _) ) -> - true - ; - fail - ). + !, + catch( Call, Message, format_exception_message( cpp_error(Message) ) ), + ( ( + var(Message), + functor(Message, ppl_invalid_argument, _) ) -> + true + ; + fail + ). must_catch(Call, ppl_sys_prolog_error) :- - !, - catch( Call, Message, format_exception_message(Message) ), - ( ( + var(Message), - (Message =.. [ppl_representation_error|_] )) -> - true - ; - fail - ). + !, + catch( Call, Message, format_exception_message(Message) ), + ( ( + var(Message), + (Message =.. [ppl_representation_error|_] )) -> + true + ; + fail + ). must_catch(Call, Expected) :- - catch(Call, Message, format_exception_message(Message) ), - (+ var(Message), Message = ppl_overflow_error(_) -> - true - ; - ( + var(Message), Message =.. [Expected|_] -> - true - ; - fail - ) - ). + catch(Call, Message, format_exception_message(Message) ), + (+ var(Message), Message = ppl_overflow_error(_) -> + true + ; + ( + var(Message), Message =.. [Expected|_] -> + true + ; + fail + ) + ).
%%%%%%%%%%%% predicate for making list of ppl variables %%%%%%
@@ -3324,6 +3330,11 @@ format_exception_message( F, 'is an invalid argument for', W, nl, ' ', F, 'should be', E, '.']).
+format_exception_message(ppl_length_error(Error)) :- + !, + display_message(['PPL Prolog Interface Exception: ', nl, ' ', + 'ppl_length_error', Error]). + format_exception_message( ppl_representation_error(I, where(W)) ) :-