Prolog "charsio"

Admin User, created Dec 04. 2023
         
/**
* Modern Albufeira Prolog Interpreter
*
* 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.
*/
:-(with_text_to(A, G), ','(current_output(S), try_call_finally(sys_redirect_output, ','(G, sys_fetch_output(A)), set_output(S)))).
:-(sys_redirect_output, ','(open_output_atom_stream(T), set_output(T))).
:-(sys_fetch_output(A), ','(current_output(T), ','(flush_output(T), close_output_atom_stream(T, A)))).
:-(with_text_from(A, G), ','(current_input(S), ','(open_input_atom_stream(A, T), try_call_finally(set_input(T), G, set_input(S))))).
:-(term_atom(T, A), term_atom(T, A, [])).
:-(term_atom(T, A, O), ','(open_output_atom_stream(K), ','(write_term(K, T, '.'(quoted(true), O)), ','(flush_output(K), close_output_atom_stream(K, A))))).
:-(ensure_loaded(foreign(/(util, auxlib)))).