set_prolog_flag(integer_rounding_function, down) :- !. % 7.11.1.4
set_prolog_flag(integer_rounding_function, Value) :-
throw(error(domain_error(flag_value, integer_rounding_function + Value),
- set_prolog_flag/2)). % 8.17.1.3 e
+ set_prolog_flag/2)). % 8.17.1.3 e
set_prolog_flag(double_quotes, chars) :-
!, '$set_double_quotes'(chars). % 7.11.2.5, list of one-char atoms.
set_prolog_flag(double_quotes, atom) :-
!, '$set_sto_with_error_as_unify'.
set_prolog_flag(double_quotes, Value) :-
throw(error(domain_error(flag_value, double_quotes + Value),
- set_prolog_flag/2)). % 8.17.1.3 e
+ set_prolog_flag/2)). % 8.17.1.3 e
set_prolog_flag(Flag, _) :-
atom(Flag),
throw(error(domain_error(prolog_flag, Flag), set_prolog_flag/2)). % 8.17.1.3 d
; List = [H|T] ->
( var(H),
var(Term), % R == [] => List is a proper list.
- throw(error(instantiation_error, (=..)/2)) % 8.5.3.3 c)
+ throw(error(instantiation_error, (=..)/2)) % 8.5.3.3 c)
; T \== [],
nonvar(H),
\+ atom(H),
- throw(error(type_error(atom, H), (=..)/2)) % 8.5.3.3 d)
+ throw(error(type_error(atom, H), (=..)/2)) % 8.5.3.3 d)
; compound(H),
T == [],
- throw(error(type_error(atomic, H), (=..)/2)) % 8.5.3.3 e)
+ throw(error(type_error(atomic, H), (=..)/2)) % 8.5.3.3 e)
; var(Term),
max_arity(M),
N - 1 > M,
- throw(error(representation_error(max_arity), (=..)/2)) % 8.5.3.3 g)
+ throw(error(representation_error(max_arity), (=..)/2)) % 8.5.3.3 g)
; true
)
; var(Term) ->
Term =.. List :-
'$call_with_default_policy'(univ_errors(Term, List, N)),
- '$call_with_default_policy'(univ_worker(Term, List, N)).
+ '$call_with_default_policy'(univ_worker(Term, List, N)).
:- non_counted_backtracking univ_worker/3.
must_be_var_names_list_([VarName | VarNames], List) :-
( nonvar(VarName) ->
( VarName = (Atom = _) ->
- ( atom(Atom) ->
+ ( atom(Atom) ->
must_be_var_names_list_(VarNames, List)
- ; var(Atom) ->
+ ; var(Atom) ->
throw(error(instantiation_error, write_term/2))
- ; throw(error(domain_error(write_option, variable_names(List)), write_term/2))
- )
+ ; throw(error(domain_error(write_option, variable_names(List)), write_term/2))
+ )
; throw(error(domain_error(write_option, variable_names(List)), write_term/2))
)
; throw(error(instantiation_error, write_term/2))
'$lh_length'(LhLength),
'$call_with_default_policy'(
catch(builtins:'$iterate_find_all'(Template, Goal, Solutions, LhLength),
- Error,
- ( builtins:truncate_lh_to(LhLength), builtins:throw(Error) ))
+ Error,
+ ( builtins:truncate_lh_to(LhLength), builtins:throw(Error) ))
).
'$lh_length'(LhLength),
'$call_with_default_policy'(
catch(builtins:'$iterate_find_all_diff'(Template, Goal, Solutions0,
- Solutions1, LhLength),
- Error,
- ( builtins:truncate_lh_to(LhLength), builtins:throw(Error) ))
+ Solutions1, LhLength),
+ Error,
+ ( builtins:truncate_lh_to(LhLength), builtins:throw(Error) ))
).
set_difference([X|Xs], [Y|Ys], Zs) :-
( var(B) -> true
; functor(B, Name, _) ->
( atom(Name), Name \== '.' -> true
- ; throw(error(type_error(callable, B), clause/2))
- )
+ ; throw(error(type_error(callable, B), clause/2))
+ )
; throw(error(type_error(callable, B), clause/2))
).
throw(error(instantiation_error, clause/2))
; callable(H), functor(H, Name, Arity) ->
( '$head_is_dynamic'(Module, H) ->
- '$clause_body_is_valid'(B),
- Module:'$clause'(H, B)
+ '$clause_body_is_valid'(B),
+ Module:'$clause'(H, B)
; '$no_such_predicate'(Module, H) ->
'$fail'
- ; throw(error(permission_error(access, private_procedure, Name/Arity),
- clause/2))
- )
+ ; throw(error(permission_error(access, private_procedure, Name/Arity),
+ clause/2))
+ )
; throw(error(type_error(callable, H), clause/2))
).
; callable(H), functor(H, Name, Arity) ->
( Name == (:),
Arity =:= 2 ->
- arg(1, H, Module),
- arg(2, H, F),
- '$module_clause'(F, B, Module)
- ; '$head_is_dynamic'(user, H) ->
+ arg(1, H, Module),
+ arg(2, H, F),
+ '$module_clause'(F, B, Module)
+ ; '$head_is_dynamic'(user, H) ->
'$clause_body_is_valid'(B),
- '$clause'(H, B)
+ '$clause'(H, B)
; '$no_such_predicate'(user, H) -> %% '$no_such_predicate' fails if
- %% H is not callable.
+ %% H is not callable.
'$fail'
- ; throw(error(permission_error(access, private_procedure, Name/Arity),
- clause/2))
- )
+ ; throw(error(permission_error(access, private_procedure, Name/Arity),
+ clause/2))
+ )
; throw(error(type_error(callable, H), clause/2))
).
; callable(Head), functor(Head, Name, Arity) ->
( Name == (:),
Arity =:= 2 ->
- arg(1, Head, Module),
- arg(2, Head, HeadAndBody),
+ arg(1, Head, Module),
+ arg(2, Head, HeadAndBody),
( HeadAndBody = (F :- Body1) ->
true
; F = HeadAndBody,
Body1 = true
),
- module_asserta_clause(F, Body1, Module)
+ module_asserta_clause(F, Body1, Module)
; '$head_is_dynamic'(user, Head) ->
call_asserta(Head, Body, Name, Arity, user)
; '$no_such_predicate'(user, Head) ->
( '$head_is_dynamic'(Module, Head) ->
call_assertz(Head, Body, Name, Arity, Module)
; '$no_such_predicate'(Module, Head) ->
- call_assertz(Head, Body, Name, Arity, Module)
+ call_assertz(Head, Body, Name, Arity, Module)
; throw(error(permission_error(modify, static_procedure, Name/Arity),
assertz/1))
)
; callable(Head), functor(Head, Name, Arity) ->
( Name == (:),
Arity =:= 2 ->
- arg(1, Head, Module),
- arg(2, Head, HeadAndBody),
+ arg(1, Head, Module),
+ arg(2, Head, HeadAndBody),
( HeadAndBody = (F :- Body1) ->
true
; F = HeadAndBody,
Body1 = true
),
- module_assertz_clause(F, Body1, Module)
+ module_assertz_clause(F, Body1, Module)
; '$head_is_dynamic'(user, Head) ->
- call_assertz(Head, Body, Name, Arity, user)
+ call_assertz(Head, Body, Name, Arity, user)
; '$no_such_predicate'(user, Head) ->
- call_assertz(Head, Body, Name, Arity, user)
+ call_assertz(Head, Body, Name, Arity, user)
; throw(error(permission_error(modify, static_procedure, Name/Arity),
assertz/1))
)
; callable(Head), functor(Head, Name, Arity) ->
( Name == (:),
Arity =:= 2 ->
- arg(1, Head, Module),
- arg(2, Head, HeadAndBody),
+ arg(1, Head, Module),
+ arg(2, Head, HeadAndBody),
( HeadAndBody = (F :- Body1) ->
true
; F = HeadAndBody,
Body1 = true
),
- retract_module_clause(F, Body1, Module)
+ retract_module_clause(F, Body1, Module)
; '$no_such_predicate'(user, Head) ->
'$fail'
; '$head_is_dynamic'(user, Head) ->
( var(Name) ->
throw(error(instantiation_error, abolish/1))
; integer(Arity) ->
- ( \+ atom(Name) ->
+ ( \+ atom(Name) ->
throw(error(type_error(atom, Name), abolish/1))
- ; Arity < 0 ->
+ ; Arity < 0 ->
throw(error(domain_error(not_less_than_zero, Arity), abolish/1))
- ; max_arity(N), Arity > N ->
+ ; max_arity(N), Arity > N ->
throw(error(representation_error(max_arity), abolish/1))
- ; functor(Head, Name, Arity) ->
- ( '$head_is_dynamic'(Module, Head) ->
- '$abolish_clause'(Module, Name, Arity)
- ; throw(error(permission_error(modify, static_procedure, Pred), abolish/1))
- )
- )
+ ; functor(Head, Name, Arity) ->
+ ( '$head_is_dynamic'(Module, Head) ->
+ '$abolish_clause'(Module, Name, Arity)
+ ; '$no_such_predicate'(Module, Head) ->
+ true
+ ; throw(error(permission_error(modify, static_procedure, Pred), abolish/1))
+ )
+ )
; throw(error(type_error(integer, Arity), abolish/1))
)
; throw(error(type_error(predicate_indicator, Module:Pred), abolish/1))
; var(Arity) ->
throw(error(instantiation_error, abolish/1))
; integer(Arity) ->
- ( \+ atom(Name) ->
+ ( \+ atom(Name) ->
throw(error(type_error(atom, Name), abolish/1))
- ; Arity < 0 ->
+ ; Arity < 0 ->
throw(error(domain_error(not_less_than_zero, Arity), abolish/1))
- ; max_arity(N), Arity > N ->
+ ; max_arity(N), Arity > N ->
throw(error(representation_error(max_arity), abolish/1))
- ; functor(Head, Name, Arity) ->
- ( '$head_is_dynamic'(user, Head) ->
+ ; functor(Head, Name, Arity) ->
+ ( '$head_is_dynamic'(user, Head) ->
'$abolish_clause'(user, Name, Arity)
- ; '$no_such_predicate'(user, Head) ->
+ ; '$no_such_predicate'(user, Head) ->
true
- ; throw(error(permission_error(modify, static_procedure, Pred), abolish/1))
- )
- )
+ ; throw(error(permission_error(modify, static_procedure, Pred), abolish/1))
+ )
+ )
; throw(error(type_error(integer, Arity), abolish/1))
)
; throw(error(type_error(predicate_indicator, Pred), abolish/1))
; Op == '|' ->
( op_priority(Priority),
op_specifier(OpSpec),
- lists:member(OpSpec, [xfx, xfy, yfx]),
+ lists:member(OpSpec, [xfx, xfy, yfx]),
( Priority >= 1001 ; Priority == 0 )
- -> '$op'(Priority, OpSpec, Op)
- ; throw(error(permission_error(create, operator, (|)), op/3))) % www.complang.tuwien.ac.at/ulrich/iso-prolog/conformity_testing#72
+ -> '$op'(Priority, OpSpec, Op)
+ ; throw(error(permission_error(create, operator, (|)), op/3))) % www.complang.tuwien.ac.at/ulrich/iso-prolog/conformity_testing#72
; valid_op(Op), op_priority(Priority), op_specifier(OpSpec) ->
'$op'(Priority, OpSpec, Op)
; list_of_op_atoms(Op), op_priority(Priority), op_specifier(OpSpec) ->
; atom(Atom) ->
( var(Length) ->
'$atom_length'(Atom, Length)
- ; integer(Length), Length >= 0 ->
+ ; integer(Length), Length >= 0 ->
'$atom_length'(Atom, Length)
- ; integer(Length) ->
+ ; integer(Length) ->
throw(error(domain_error(not_less_than_zero, Length), atom_length/2))
- % 8.16.1.3 d)
- ; throw(error(type_error(integer, Length), atom_length/2)) % 8.16.1.3 c)
- )
+ % 8.16.1.3 d)
+ ; throw(error(type_error(integer, Length), atom_length/2)) % 8.16.1.3 c)
+ )
; throw(error(type_error(atom, Atom), atom_length/2)) % 8.16.1.3 b)
).
( var(Atom_12) ->
throw(error(instantiation_error, atom_concat/3))
; atom_chars(Atom_12, Atom_12_Chars),
- lists:append(BeforeChars, AfterChars, Atom_12_Chars),
- atom_chars(Atom_1, BeforeChars),
- atom_chars(Atom_2, AfterChars)
+ lists:append(BeforeChars, AfterChars, Atom_12_Chars),
+ atom_chars(Atom_1, BeforeChars),
+ atom_chars(Atom_2, AfterChars)
)
; var(Atom_2) ->
( var(Atom_12) -> throw(error(instantiation_error, atom_concat/3))
; atom_chars(Atom_1, Atom_1_Chars),
- atom_chars(Atom_12, Atom_12_Chars),
- lists:append(Atom_1_Chars, Atom_2_Chars, Atom_12_Chars),
- atom_chars(Atom_2, Atom_2_Chars)
+ atom_chars(Atom_12, Atom_12_Chars),
+ lists:append(Atom_1_Chars, Atom_2_Chars, Atom_12_Chars),
+ atom_chars(Atom_2, Atom_2_Chars)
)
; atom_chars(Atom_1, Atom_1_Chars),
atom_chars(Atom_2, Atom_2_Chars),
chars_or_vars([C|Cs], PI) :-
( nonvar(C) ->
( catch(builtins:atom_length(C, 1), _, false) ->
- ( nonvar(Cs) ->
+ ( nonvar(Cs) ->
chars_or_vars(Cs, PI)
- ; false
- )
+ ; false
+ )
; throw(error(type_error(character, C), PI))
)
; chars_or_vars(Cs, PI)
codes_or_vars([C|Cs], PI) :-
( nonvar(C) ->
( catch(builtins:char_code(_, C), _, false) ->
- ( nonvar(Cs) -> codes_or_vars(Cs, PI)
- ; false
- )
+ ( nonvar(Cs) -> codes_or_vars(Cs, PI)
+ ; false
+ )
; integer(C) ->
throw(error(representation_error(character_code), PI))
; throw(error(type_error(integer, C), PI))