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/strict_iso.yap

206 lines
5.7 KiB
Plaintext
Raw Normal View History

'$iso_check_goal'(V,G) :-
var(V), !,
throw(error(instantiation_error,call(G))).
'$iso_check_goal'(V,G) :-
number(V), !,
throw(error(type_error(callable,V),G)).
'$iso_check_goal'(_:G,G0) :- !,
'$iso_check_goal'(G,G0).
'$iso_check_goal'((G1,G2),G0) :- !,
'$iso_check_a_goal'(G1,(G1,G2),G0),
'$iso_check_a_goal'(G2,(G1,G2),G0).
'$iso_check_goal'((G1;G2),G0) :- !,
'$iso_check_a_goal'(G1,(G1;G2),G0),
'$iso_check_a_goal'(G2,(G1;G2),G0).
'$iso_check_goal'((G1->G2),(G1->G2),G0) :- !,
'$iso_check_a_goal'(G1,(G1->G2),G0),
'$iso_check_a_goal'(G2,(G1->G2),G0).
'$iso_check_goal'(!,G0) :- !.
'$iso_check_goal'((G1|G2),G0) :-
'$access_yap_flags'(9,1), !,
throw(error(domain_error(builtin_procedure,(G1|G2)), call(G))).
'$iso_check_goal'((G1|G2),G0) :- !,
'$iso_check_a_goal'(G1,(G1|G2),G0),
'$iso_check_a_goal'(G2,(G1|G2),G0).
'$iso_check_goal'(G,G0) :-
'$access_yap_flags'(9,1),
'$system_predicate'(G),
(
'$iso_builtin'(G)
->
true
;
throw(error(domain_error(builtin_procedure,G), G))
).
'$iso_check_goal'(_,_).
'$iso_check_a_goal'(V,_,G) :-
var(V), !,
throw(error(instantiation_error,call(G))).
'$iso_check_a_goal'(V,E,G) :-
number(V), !,
throw(error(type_error(callable,E),call(G))).
'$iso_check_a_goal'(_:G,E,G0) :- !,
'$iso_check_a_goal'(G,E,G0).
'$iso_check_a_goal'((G1,G2),_,_) :- !.
'$iso_check_a_goal'((G1;G2),_,_) :- !.
'$iso_check_a_goal'((G1->G2),_,_) :- !.
'$iso_check_a_goal'(!,_,_) :- !.
'$iso_check_a_goal'((_|_),E,G0) :-
'$access_yap_flags'(9,1), !,
throw(error(domain_error(builtin_procedure,E), call(G0))).
'$iso_check_a_goal'((G1|G2),_,G0) :- !.
'$iso_check_a_goal'(G,_,G0) :-
'$access_yap_flags'(9,1),
'$system_predicate'(G),
(
'$iso_builtin'(G)
->
true
;
throw(error(domain_error(builtin_procedure,G), G))
).
'$iso_check_a_goal'(_,_,_).
'$check_iso_strict_clause'((G:-B)) :- !,
'$check_iso_strict_body'(B).
'$check_iso_strict_clause'(G).
'$check_iso_strict_body'((B1,B2)) :- !,
'$check_iso_strict_body'(B1),
'$check_iso_strict_body'(B2).
'$check_iso_strict_body'((B1;B2)) :- !,
'$check_iso_strict_body'(B1),
'$check_iso_strict_body'(B2).
'$check_iso_strict_body'((B1->B2)) :- !,
'$check_iso_strict_body'(B1),
'$check_iso_strict_body'(B2).
'$check_iso_strict_body'(B) :-
'$check_iso_strict_goal'(B).
'$check_iso_strict_goal'(G) :-
'$system_predicate'(G), !,
'$check_iso_system_goal'(G).
'$check_iso_strict_goal'(_).
'$check_iso_system_goal'(G) :-
'$iso_builtin'(G), !.
'$check_iso_system_goal'(G) :-
throw(error(domain_error(builtin_procedure,G), G)).
'$iso_builtin'(abolish(_)).
'$iso_builtin'(arg(_,_,_)).
'$iso_builtin'(_=:=_).
'$iso_builtin'(_=\=_).
'$iso_builtin'(_>_).
'$iso_builtin'(_>=_).
'$iso_builtin'(_<_).
'$iso_builtin'(_=<_).
'$iso_builtin'(asserta(_)).
'$iso_builtin'(assertz(_)).
'$iso_builtin'(at_end_of_stream).
'$iso_builtin'(at_end_of_stream(_)).
'$iso_builtin'(atom(_)).
'$iso_builtin'(atom_chars(_,_)).
'$iso_builtin'(atom_codes(_,_)).
'$iso_builtin'(atom_concat(_,_,_)).
'$iso_builtin'(atom_length(_,_)).
'$iso_builtin'(atomic(_)).
'$iso_builtin'(bagof(_,_,_)).
'$iso_builtin'(call(_)).
'$iso_builtin'(catch(_,_,_)).
'$iso_builtin'(char_code(_,_)).
'$iso_builtin'(char_conversion(_,_)).
'$iso_builtin'(clause(_,_)).
'$iso_builtin'(close(_)).
'$iso_builtin'(close(_,_)).
'$iso_builtin'(compound(_)).
'$iso_builtin'((_,_)).
'$iso_builtin'(copy_term(_,_)).
'$iso_builtin'(current_char_conversion(_,_)).
'$iso_builtin'(current_input(_)).
'$iso_builtin'(current_op(_,_,_)).
'$iso_builtin'(current_output(_)).
'$iso_builtin'(current_predicate(_)).
'$iso_builtin'(current_prolog_flag(_,_)).
'$iso_builtin'(!).
'$iso_builtin'((_;_)).
'$iso_builtin'(fail).
'$iso_builtin'(findall(_,_,_)).
'$iso_builtin'(float(_)).
'$iso_builtin'(abort).
'$iso_builtin'(flush_output).
'$iso_builtin'(flush_output(_)).
'$iso_builtin'(functor(_,_,_)).
'$iso_builtin'(get_byte(_)).
'$iso_builtin'(get_byte(_,_)).
'$iso_builtin'(get_char(_)).
'$iso_builtin'(get_char(_,_)).
'$iso_builtin'(get_code(_)).
'$iso_builtin'(get_code(_,_)).
'$iso_builtin'(halt).
'$iso_builtin'(halt(_)).
'$iso_builtin'((_->_)).
'$iso_builtin'(integer(_)).
'$iso_builtin'(_ is _).
'$iso_builtin'(nl).
'$iso_builtin'(nl(_)).
'$iso_builtin'(nonvar(_)).
'$iso_builtin'(\+(_)).
'$iso_builtin'(number(_)).
'$iso_builtin'(number_chars(_,_)).
'$iso_builtin'(number_codes(_,_)).
'$iso_builtin'(once(_)).
'$iso_builtin'(op(_,_,_)).
'$iso_builtin'(open(_,_,_)).
'$iso_builtin'(open(_,_,_,_)).
'$iso_builtin'(peek_byte(_)).
'$iso_builtin'(peek_byte(_,_)).
'$iso_builtin'(peek_char(_)).
'$iso_builtin'(peek_char(_,_)).
'$iso_builtin'(peek_code(_)).
'$iso_builtin'(peek_code(_,_)).
'$iso_builtin'(put_byte(_)).
'$iso_builtin'(put_byte(_,_)).
'$iso_builtin'(put_char(_)).
'$iso_builtin'(put_char(_,_)).
'$iso_builtin'(put_code(_)).
'$iso_builtin'(put_code(_,_)).
'$iso_builtin'(read(_)).
'$iso_builtin'(read(_,_)).
'$iso_builtin'(read_term(_,_)).
'$iso_builtin'(read_term(_,_,_)).
'$iso_builtin'(repeat).
'$iso_builtin'(retract(_)).
'$iso_builtin'(set_input(_)).
'$iso_builtin'(set_output(_)).
'$iso_builtin'(set_prolog_flag(_,_)).
'$iso_builtin'(set_stream_position(_,_)).
'$iso_builtin'(setof(_,_,_)).
'$iso_builtin'(stream_property(_,_)).
'$iso_builtin'(sub_atom(_,_,_,_,_)).
'$iso_builtin'(_@>_).
'$iso_builtin'(_@>=_).
'$iso_builtin'(_==_).
'$iso_builtin'(_@<_).
'$iso_builtin'(_@=<_).
'$iso_builtin'(_\==_).
'$iso_builtin'(throw(_)).
'$iso_builtin'(true).
'$iso_builtin'(_\=_).
'$iso_builtin'(_=_).
'$iso_builtin'(unify_with_occurs_check(_,_)).
'$iso_builtin'(_384=.._385).
'$iso_builtin'(var(_)).
'$iso_builtin'(write(_)).
'$iso_builtin'(write(_,_)).
'$iso_builtin'(write_canonical(_)).
'$iso_builtin'(write_canonical(_,_)).
'$iso_builtin'(write_term(_,_)).
'$iso_builtin'(write_term(_,_,_)).
'$iso_builtin'(writeq(_)).
'$iso_builtin'(writeq(_,_)).