:- multifile portray_message/2. % % portray_message( Mode, pfd(Code,Message) ) :- % write( user_error, pfd_code(Code) ), nl, % print_message( Mode, Message ), % halt( Code ). % portray_message( pfd, dbg(Message) ) :- % print_message( informational, Message ). % portray_message( A, B ) :- % write( portraying(A,B) ), nl. % demo. % portray_message( informational, prompt(off,0,user,off) ) :- % [loads], % demo. % portray_message( error, syntax_error(Gal,Pos,Mes,Tok,Aft) ) :- % print_message( informational, syntax_error(goal(Gal)) ), % print_message( informational, syntac_error(position(Pos)) ), % print_message( informational, syntac_error(message(Mes)) ), % % print_message( informational, syntac_error(token(Tok)) ), % print_message( informational, syntac_error(after_expr(Aft)) ). % portray_message( force(error), syntax_error(A,B,C,D,E) ). pfd_portray_message( error, internal(Error) ) :- format( 'The following is an internal error.~n', [] ), pfd_portray_message( error, Error ). pfd_portray_message( error, std(Term) ) :- print_message( error, Term ). pfd_portray_message( error, rats(Error,Clause) ) :- format( 'ERROR : rational arithmetic error ~m~n', Error ), format( ' in ~w~n', Clause ). pfd_portray_message( error, probabilistic_method_fails(Term) ) :- format( 'ERROR : probabilstic_method/1 failed on~n', [] ), format( ' ~w~n', Term ). pfd_portray_message( error, construct_domain_fails(Var,Dmn) ) :- format( 'ERROR : ~w found instead of value~n', Dmn ), format( ' while constructing domain for var ~w~n', Var ). pfd_portray_message( error, unkown_label_method(Clause,Method) ) :- format( 'ERROR : unknown method ~w in~n', Method ), format( ' ~w~n', Clause ). pfd_portray_message( error, no_data_for_var(PfdVar,Active,Vals) ) :- format( 'ERROR : unknown (pfd) variable ~w with data ~w ~n', [PfdVar,Vals] ), format( ' while looking in active :~w~n',Active). pfd_portray_message( error, missing_qvar(QV,Stcs) ) :- format( 'ERROR : could not look-up variable ~w', QV ), format( ' while looking in static distribuitions :~w~n', Stcs ). % portray_message( error, B ) :- % print_message( force(error), B ), nl, % % raise_exception( pfd(error,B) ). % % fail. % demo. demo_exception( pfd(exit) ) :- !, % ??? abort true. demo_exception( pfd(halt) ) :- !, halt. demo_exception( pfd(Term) ) :- !, % write( user_error, pfd_exception(Code) ), % nl( user_error ), % trace, pfd_portray_message( error, Term ), % abort, pfd_demo. demo_exception( reserved(4) ) :- % sicstus tested. !, % write( in_reserve(4) ), nl, halt. demo_exception( Other ) :- !, % write( last_clause_for(Other) ), nl, print_message( error, Other ), pfd_demo. % demo_exception( Other ) :- % write( user_error, non_pfd_exception(Other) ), % nl( user_error ), % demo.