Prolog "charsio"

         
/**
* Warranty & Liability
* To the extent permitted by applicable law and unless explicitly
* otherwise agreed upon, XLOG Technologies AG makes no warranties
* regarding the provided information. XLOG Technologies AG assumes
* no liability that any problems might be solved with the information
* provided by XLOG Technologies AG.
*
* Rights & License
* All industrial property rights regarding the information - copyright
* and patent rights in particular - are the sole property of XLOG
* Technologies AG. If the company was not the originator of some
* excerpts, XLOG Technologies AG has at least obtained the right to
* reproduce, change and translate the information.
*
* Reproduction is restricted to the whole unaltered document. Reproduction
* of the information is only allowed for non-commercial uses. Selling,
* giving away or letting of the execution of the library is prohibited.
* The library can be distributed as part of your applications and libraries
* for execution provided this comment remains unchanged.
*
* Restrictions
* Only to be distributed with programs that add significant and primary
* functionality to the library. Not to be distributed with additional
* software intended to replace any components of the library.
*
* Trademarks
* Jekejeke is a registered trademark of XLOG Technologies AG.
*/
% close_output_atom_stream(+Stream, -Atom)
close_output_atom_stream(X, Y) :-
flush_output(X),
sys_output_atom_stream_get(X, Y).
/**
* term_atom(T, A):
* term_atom(T, A, O):
* The build-in succeeds in writing the term T into a new
* atom A. The ternary predicate accepts write options O.
*/
% term_atom(+Term, -Atom)
term_atom(Term, Atom) :-
term_atom(Term, Atom, []).
% term_atom(+Term, -Atom, +List)
term_atom(Term, Atom, Opts) :- var(Atom), !,
open_output_atom_stream(Stream),
write_term(Stream, Term, [quoted(true)|Opts]),
close_output_atom_stream(Stream, Atom).
term_atom(Term, Atom, Opts) :-
open_input_atom_stream(Atom, Stream),
read_term(Stream, Term, [end_of_file(true)|Opts]).
/*********************************************************************/
/* Time Format */
/*********************************************************************/
/**
* atom_time(A, F, T):
* atom_time(A, F, T, L):
* If A is a variable, the built-in succeeds in A with the millisecond
* time T formatted by the pattern F. Otherwise the built-in succeeds
* in T with the millisecond time parsed from A by the pattern F. The
* quaternary predicate allows specifying time options.
*/
% atom_time(+-Atom, +Atom, -+Integer)
atom_time(A, F, T) :-
sys_atom_time(A, F, 0, T).
% atom_time(+-Atom, +Atom, -+Integer, +List)
atom_time(A, F, T, L) :-
sys_time_opts(L, 0, O),
sys_atom_time(A, F, O, T).
% sys_time_opts(+List, +Integer, -Integer)
sys_time_opts(V, _, _) :- var(V),
throw(error(instantiation_error,_)).
sys_time_opts([X|L], F, G) :- !,
sys_time_opt(X, F, H),
sys_time_opts(L, H, G).
sys_time_opts([], F, F) :- !.
sys_time_opts(L, _, _) :-
throw(error(type_error(list,L),_)).
% sys_time_opt(+Term, +Integer, -Integer)
sys_time_opt(V, _, _) :- var(V),
throw(error(instantiation_error,_)).
sys_time_opt(face(F), _, G) :- !,
sys_check_face(F, G).
sys_time_opt(O, _, _) :-
throw(error(domain_error(time_option,O),_)).
% sys_check_face(+Boolean, -Integer)
sys_check_face(V, _) :- var(V),
throw(error(instantiation_error,_)).
sys_check_face(local, 0) :- !.
sys_check_face(utc, 1) :- !.
sys_check_face(B, _) :-
throw(error(domain_error(face,B),_)).
/*******************************************************************/
/* Format Message */
/*******************************************************************/
/**
* put_message(S, T):
* put_message(S, T, L):
* The built-in succeeds in writing the message T formatted
* according an output stream S. The ternary predicate allows
* specifying a locale.
*/
% put_message(+Stream, +Term)
put_message(Stream, Message) :-
current_prolog_flag(sys_locale, Locale),
put_message(Stream, Message, Locale).
% put_message(+Stream, +Term, +Locale)
put_message(Stream, Message, Locale) :- var(Message), !,
put_message(Stream, exception(template, Message), Locale).
put_message(Stream, Message, Locale) :-
get_message(Message, Locale, Template, Args), !,
format(Stream, Template, Args).
put_message(Stream, Message, Locale) :-
put_message(Stream, exception(template, Message), Locale).
/****************************************************************/
/* Error Texts */
/****************************************************************/
% strings(+Atom, +Atom, -Atom)
:- multifile(strings/3).
strings('domain_error.time_option', de, 'Zeitoption erwartet, gefunden ~q.').
strings('domain_error.face', de, 'Face erwartet, gefunden ~q.').
strings('domain_error.time_option', '', 'Time option expected, found ~q.').
strings('domain_error.face', '', 'Face expected, found ~q.').
/*******************************************************************/
/* Foreign Predicates */
/*******************************************************************/
% open_input_atom_stream(X, Y):
% defined in foreign(text/auxlib)
% open_output_atom_stream(X):
% defined in foreign(text/auxlib)
% sys_output_atom_stream_get(X, Y):
% defined in foreign(text/auxlib)
:- ensure_loaded(foreign(text/auxlib)).

Use Privacy (c) 2005-2026 XLOG Technologies AG