Fixing minor portability issues
This commit is contained in:
@@ -204,14 +204,15 @@
|
||||
%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
:-module(flags, [problog_define_flag/4,
|
||||
problog_define_flag/5,
|
||||
problog_define_flag/6,
|
||||
problog_defined_flag/5,
|
||||
problog_defined_flag_group/1,
|
||||
set_problog_flag/2,
|
||||
reset_problog_flags/0,
|
||||
problog_flag/2]).
|
||||
:-module(flags, [
|
||||
problog_define_flag/4,
|
||||
problog_define_flag/5,
|
||||
problog_define_flag/6,
|
||||
problog_defined_flag/5,
|
||||
problog_defined_flag_group/1,
|
||||
set_problog_flag/2,
|
||||
reset_problog_flags/0,
|
||||
problog_flag/2]).
|
||||
|
||||
|
||||
:- use_module(gflags).
|
||||
@@ -241,37 +242,39 @@ problog_flag(Flag, Value):-
|
||||
|
||||
reset_problog_flags:- flags_reset.
|
||||
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_dummy, flag_validate_dummy).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_atom, flag_validate_atom).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_atomic, flag_validate_atomic).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_number, flag_validate_number).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_integer, flag_validate_integer).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_directory, flag_validate_directory).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_file, flag_validate_file).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_in_list(L), flag_validate_in_list(L)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval(I, Type), flag_validate_in_interval(I, Type)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_closed([L, U]), flag_validate_in_interval([L, U], number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_open([L, U]), flag_validate_in_interval((L, U), number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_left_open([L, U]), flag_validate_in_interval((L, [U]), number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_right_open([L, U]), flag_validate_in_interval(([L], U), number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_closed([L, U]), flag_validate_in_interval([L, U], integer)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_open([L, U]), flag_validate_in_interval((L, U), integer)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_left_open([L, U]), flag_validate_in_interval((L, [U]), integer)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_right_open([L, U]), flag_validate_in_interval(([L], U), integer)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_closed([L, U]), flag_validate_in_interval([L, U], float)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_open([L, U]), flag_validate_in_interval((L, U), float)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_left_open([L, U]), flag_validate_in_interval((L, [U]), float)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_right_open([L, U]), flag_validate_in_interval(([L], U), float)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_posnumber, flag_validate_in_interval((0, [+inf]), number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_posint, flag_validate_in_interval((0, +inf), integer)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_nonegint, flag_validate_in_interval(([0], +inf), integer)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_boolean, flag_validate_in_list([true, false])).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_switch, flag_validate_in_list([on, off])).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_method, flag_validate_in_list([max, delta, exact, montecarlo, low, kbest])).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_aggregate, flag_validate_in_list([sum, prod, soft_prod])).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_indomain_0_1_open, flag_validate_in_interval((0, 1), number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_indomain_0_1_close, flag_validate_in_interval([0, 1], number)).
|
||||
:- flag_add_validation_syntactic_sugar(problog_flag_validate_0to5, flag_validate_in_interval([0, 5], integer)).
|
||||
:- initialization((
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_dummy, flag_validate_dummy),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_atom, flag_validate_atom),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_atomic, flag_validate_atomic),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_number, flag_validate_number),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_integer, flag_validate_integer),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_directory, flag_validate_directory),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_file, flag_validate_file),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_in_list(L), flag_validate_in_list(L)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval(I, Type), flag_validate_in_interval(I, Type)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_closed([L, U]), flag_validate_in_interval([L, U], number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_open([L, U]), flag_validate_in_interval((L, U), number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_left_open([L, U]), flag_validate_in_interval((L, [U]), number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_in_interval_right_open([L, U]), flag_validate_in_interval(([L], U), number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_closed([L, U]), flag_validate_in_interval([L, U], integer)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_open([L, U]), flag_validate_in_interval((L, U), integer)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_left_open([L, U]), flag_validate_in_interval((L, [U]), integer)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_integer_in_interval_right_open([L, U]), flag_validate_in_interval(([L], U), integer)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_closed([L, U]), flag_validate_in_interval([L, U], float)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_open([L, U]), flag_validate_in_interval((L, U), float)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_left_open([L, U]), flag_validate_in_interval((L, [U]), float)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_float_in_interval_right_open([L, U]), flag_validate_in_interval(([L], U), float)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_posnumber, flag_validate_in_interval((0, [+inf]), number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_posint, flag_validate_in_interval((0, +inf), integer)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_nonegint, flag_validate_in_interval(([0], +inf), integer)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_boolean, flag_validate_in_list([true, false])),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_switch, flag_validate_in_list([on, off])),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_method, flag_validate_in_list([max, delta, exact, montecarlo, low, kbest])),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_aggregate, flag_validate_in_list([sum, prod, soft_prod])),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_indomain_0_1_open, flag_validate_in_interval((0, 1), number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_indomain_0_1_close, flag_validate_in_interval([0, 1], number)),
|
||||
flag_add_validation_syntactic_sugar(problog_flag_validate_0to5, flag_validate_in_interval([0, 5], integer))
|
||||
)).
|
||||
|
||||
last_threshold_handler(message, '').
|
||||
last_threshold_handler(validating, _Value).
|
||||
@@ -294,7 +297,7 @@ bdd_file_handler(validate, Value):-
|
||||
catch(file_exists(Path), _, fail), file_property(Path, type(regular)), !.
|
||||
bdd_file_handler(validate, Value):-
|
||||
convert_filename_to_working_path(Value, Path),
|
||||
catch((not(file_exists(Path)), tell(Path)), _, fail),
|
||||
catch((\+ file_exists(Path), tell(Path)), _, fail),
|
||||
told,
|
||||
delete_file(Path).
|
||||
bdd_file_handler(validated, _Value).
|
||||
@@ -311,7 +314,7 @@ working_file_handler(validate, Value):-
|
||||
catch(file_exists(Path), _, fail), file_property(Path, type(regular)), !.
|
||||
working_file_handler(validate, Value):-
|
||||
convert_filename_to_working_path(Value, Path),
|
||||
catch((not(file_exists(Path)), tell(Path)), _, fail),
|
||||
catch((\+ file_exists(Path), tell(Path)), _, fail),
|
||||
told,
|
||||
delete_file(Path).
|
||||
working_file_handler(validated, _Value).
|
||||
|
@@ -259,10 +259,10 @@ flag_define(Flag, Group, Type, DefaultValue, Handler, Message):-
|
||||
throw(duplicate_flag_definition(flag_define(Flag, Group, Type, DefaultValue, Handler, Message))).
|
||||
|
||||
flag_define(Flag, Group, Type, DefaultValue, Handler, Message):-
|
||||
(catch(call(Type), _, fail)->
|
||||
(catch(Type, _, fail)->
|
||||
fail
|
||||
;
|
||||
\+ (flag_validation_syntactic_sugar(Type, SyntacticSugar), catch(call(SyntacticSugar), _, fail)),
|
||||
\+ (flag_validation_syntactic_sugar(Type, SyntacticSugar), catch(SyntacticSugar, _, fail)),
|
||||
throw(unknown_flag_type(flag_define(Flag, Group, Type, DefaultValue, Handler, Message)))
|
||||
).
|
||||
|
||||
@@ -371,13 +371,13 @@ flag_validate(_Flag, Value, Type, M:Handler):-
|
||||
Type =.. LType,
|
||||
append(LType, [Value], LGoal),
|
||||
G =.. LGoal,
|
||||
catch((call(M:GoalValidating), call(G)), _, fail), !.
|
||||
catch((M:GoalValidating, G), _, fail), !.
|
||||
flag_validate(_Flag, Value, Type, _M:Handler):-
|
||||
Handler == true,
|
||||
Type =.. LType,
|
||||
append(LType, [Value], LGoal),
|
||||
G =.. LGoal,
|
||||
catch(call(G), _, fail), !.
|
||||
catch(G, _, fail), !.
|
||||
|
||||
flag_validate(_Flag, Value, SyntacticSugar, M:Handler):-
|
||||
Handler \= true,
|
||||
@@ -386,14 +386,14 @@ flag_validate(_Flag, Value, SyntacticSugar, M:Handler):-
|
||||
Type =.. LType,
|
||||
append(LType, [Value], LGoal),
|
||||
G =.. LGoal,
|
||||
catch((call(M:GoalValidating), call(G)), _, fail), !.
|
||||
catch((M:GoalValidating, G), _, fail), !.
|
||||
flag_validate(_Flag, Value, SyntacticSugar, _M:Handler):-
|
||||
Handler == true,
|
||||
flag_validation_syntactic_sugar(SyntacticSugar, Type),
|
||||
Type =.. LType,
|
||||
append(LType, [Value], LGoal),
|
||||
G =.. LGoal,
|
||||
catch(call(G), _, fail), !.
|
||||
catch(G, _, fail), !.
|
||||
flag_validate(Flag, Value, Type, Handler):-
|
||||
(var(Value) ->
|
||||
Value = 'free variable'
|
||||
|
Reference in New Issue
Block a user