This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/pl/flags.yap

107 lines
2.9 KiB
Plaintext
Raw Normal View History

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
/**
* @file flagd.ysp
*
* @defgroup Flags Yap Flags
2017-07-24 18:20:00 +01:00
* @{}
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),
'$swi_set_prolog_flag'(character_escapes, false), % disable character escapes.
2010-02-28 01:11:05 +00:00
'$set_yap_flags'(14,1),
'$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
'$swi_set_prolog_flag'(character_escapes, true), % disable character escapes.
'$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),
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
'$swi_set_prolog_flag'(character_escapes, true), % disable character escapes.
'$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).
/**
@}
*/