2010-02-28 01:11:05 +00:00
|
|
|
/*************************************************************************
|
|
|
|
* *
|
|
|
|
* YAP Prolog *
|
|
|
|
* *
|
|
|
|
* Yap Prolog was developed at NCCUP - Universidade do Porto *
|
|
|
|
* *
|
|
|
|
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
|
|
|
|
* *
|
|
|
|
**************************************************************************
|
|
|
|
* *
|
|
|
|
* File: flags.yap *
|
|
|
|
* Last rev: *
|
|
|
|
* mods: *
|
|
|
|
* comments: controlling YAP *
|
|
|
|
* *
|
|
|
|
*************************************************************************/
|
2017-04-13 21:42:34 +01:00
|
|
|
/**
|
2018-04-27 17:37:42 +01:00
|
|
|
* @file pl/flags.yap
|
2017-04-13 21:42:34 +01:00
|
|
|
*
|
2018-04-20 14:59:17 +01:00
|
|
|
* @defgroup YAPFlags Yap Flags
|
|
|
|
*
|
2017-04-13 21:42:34 +01:00
|
|
|
* @ingroup builtins
|
2017-07-24 18:20:00 +01:00
|
|
|
*
|
2017-04-13 21:42:34 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
2010-02-28 01:11:05 +00:00
|
|
|
|
2014-04-09 12:39:29 +01:00
|
|
|
:- system_module( '$_flags', [create_prolog_flag/3,
|
|
|
|
current_prolog_flag/2,
|
|
|
|
no_source/0,
|
|
|
|
prolog_flag/2,
|
|
|
|
prolog_flag/3,
|
|
|
|
set_prolog_flag/2,
|
|
|
|
source/0,
|
|
|
|
source_mode/2,
|
|
|
|
yap_flag/2,
|
|
|
|
yap_flag/3], []).
|
|
|
|
|
2010-02-28 01:11:05 +00:00
|
|
|
|
|
|
|
'$adjust_language'(cprolog) :-
|
|
|
|
% '$switch_log_upd'(0),
|
|
|
|
'$syntax_check_mode'(_,off),
|
|
|
|
'$syntax_check_single_var'(_,off),
|
|
|
|
'$syntax_check_discontiguous'(_,off),
|
|
|
|
'$syntax_check_multiple'(_,off),
|
2013-11-13 10:38:20 +00:00
|
|
|
'$swi_set_prolog_flag'(character_escapes, false), % disable character escapes.
|
2010-02-28 01:11:05 +00:00
|
|
|
'$set_yap_flags'(14,1),
|
2014-10-14 15:53:24 +01:00
|
|
|
'$set_fpu_exceptions'(true),
|
2010-02-28 01:11:05 +00:00
|
|
|
unknown(_,fail).
|
|
|
|
'$adjust_language'(sicstus) :-
|
|
|
|
'$switch_log_upd'(1),
|
|
|
|
leash(full),
|
|
|
|
'$syntax_check_mode'(_,on),
|
|
|
|
'$syntax_check_single_var'(_,on),
|
|
|
|
'$syntax_check_discontiguous'(_,on),
|
|
|
|
'$syntax_check_multiple'(_,on),
|
|
|
|
'$transl_to_on_off'(X1,on),
|
|
|
|
'$set_yap_flags'(5,X1),
|
|
|
|
'$force_char_conversion',
|
|
|
|
'$set_yap_flags'(14,0),
|
|
|
|
% CHARACTER_ESCAPE
|
2013-11-13 10:38:20 +00:00
|
|
|
'$swi_set_prolog_flag'(character_escapes, true), % disable character escapes.
|
2014-10-14 01:13:31 +01:00
|
|
|
'$set_fpu_exceptions'(true),
|
2011-03-26 15:17:17 +00:00
|
|
|
'$swi_set_prolog_flag'(fileerrors, true),
|
2010-02-28 01:11:05 +00:00
|
|
|
unknown(_,error).
|
|
|
|
'$adjust_language'(iso) :-
|
|
|
|
'$switch_log_upd'(1),
|
2014-04-24 08:26:31 +01:00
|
|
|
style_check(all),
|
2010-02-28 01:11:05 +00:00
|
|
|
fileerrors,
|
|
|
|
'$transl_to_on_off'(X1,on),
|
|
|
|
% CHAR_CONVERSION
|
|
|
|
'$set_yap_flags'(5,X1),
|
|
|
|
'$force_char_conversion',
|
|
|
|
% ALLOW_ASSERTING_STATIC
|
|
|
|
'$set_yap_flags'(14,0),
|
|
|
|
% CHARACTER_ESCAPE
|
2013-11-13 10:38:20 +00:00
|
|
|
'$swi_set_prolog_flag'(character_escapes, true), % disable character escapes.
|
2014-10-14 01:13:31 +01:00
|
|
|
'$set_fpu_exceptions'(true),
|
2010-02-28 01:11:05 +00:00
|
|
|
unknown(_,error).
|
|
|
|
|
|
|
|
|
2017-07-24 18:20:00 +01:00
|
|
|
/** @pred create_prolog_flag( +Flag, +Value, +Options)
|
2014-09-11 20:06:57 +01:00
|
|
|
|
2015-06-19 01:11:30 +01:00
|
|
|
Create a new YAP Prolog flag. _Options_ include
|
2014-09-11 20:06:57 +01:00
|
|
|
|
2015-06-19 01:11:30 +01:00
|
|
|
* `type(+_Type_)` with _Type_ one of `boolean`, `integer`, `float`, `atom`
|
|
|
|
and `term` (that is, any ground term)
|
2014-09-11 20:06:57 +01:00
|
|
|
|
2015-06-19 01:11:30 +01:00
|
|
|
* `access(+_Access_)` with _Access_ one of `read_only` or `read_write`
|
2014-09-11 20:06:57 +01:00
|
|
|
|
2015-06-19 01:11:30 +01:00
|
|
|
* `keeep(+_Keep_) protect existing flag.
|
2014-09-11 20:06:57 +01:00
|
|
|
*/
|
2010-02-28 01:11:05 +00:00
|
|
|
create_prolog_flag(Name, Value, Options) :-
|
2015-06-19 01:11:30 +01:00
|
|
|
'$flag_domain_from_value'( Value, Type ),
|
|
|
|
'$create_prolog_flag'(Name, Value, [type(Type)|Options]).
|
2010-02-28 01:11:05 +00:00
|
|
|
|
|
|
|
'$flag_domain_from_value'(true, boolean) :- !.
|
|
|
|
'$flag_domain_from_value'(false, boolean) :- !.
|
|
|
|
'$flag_domain_from_value'(Value, integer) :- integer(Value), !.
|
|
|
|
'$flag_domain_from_value'(Value, float) :- float(Value), !.
|
|
|
|
'$flag_domain_from_value'(Value, atom) :- atom(Value), !.
|
|
|
|
'$flag_domain_from_value'(_, term).
|
|
|
|
|
2014-07-27 01:14:15 +01:00
|
|
|
/**
|
|
|
|
@}
|
|
|
|
*/
|