term_position in read_terms

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@536 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2002-06-16 23:47:01 +00:00
parent 3638b381dd
commit 9b8dad9d15
2 changed files with 19 additions and 16 deletions

View File

@ -16,6 +16,11 @@
<h2>Yap-4.3.23:</h2> <h2>Yap-4.3.23:</h2>
<ul> <ul>
<li>FIXED: \newline in strings (Roberto Bagnara). </li>
<li>FIXED: avoid reincluding of c_interface.h (Roberto
Bagnara). </li>
<li>FIXED: make c_interface.h compilable in C++ (Roberto
Bagnara). </li>
<li>FIXED: garbage collector should recover dynamic clauses <li>FIXED: garbage collector should recover dynamic clauses
and logical semantics DB. Trust gc to recover active clauses </li> and logical semantics DB. Trust gc to recover active clauses </li>
<li>FIXED: read_vars was called with unbound argument.</li> <li>FIXED: read_vars was called with unbound argument.</li>

View File

@ -147,6 +147,7 @@ open(F,T,S,Opts) :-
'$check_opt_read'(singletons(_), _) :- !. '$check_opt_read'(singletons(_), _) :- !.
'$check_opt_read'(syntax_errors(T), G) :- !, '$check_opt_read'(syntax_errors(T), G) :- !,
'$check_read_syntax_errors_arg'(T, G). '$check_read_syntax_errors_arg'(T, G).
'$check_opt_read'(term_position(_), G) :- !.
'$check_opt_read'(A, G) :- '$check_opt_read'(A, G) :-
throw(error(domain_error(read_option,A),G)). throw(error(domain_error(read_option,A),G)).
@ -332,35 +333,31 @@ read(Stream,T) :-
read_term(T, Options) :- read_term(T, Options) :-
'$check_io_opts'(Options,read_term(T, Options)), '$check_io_opts'(Options,read_term(T, Options)),
'$preprocess_read_terms_options'(Options), current_input(S),
'$read_vars'(T,VL), '$preprocess_read_terms_options'(Options,S),
'$read_vars'(S,T,VL),
'$postprocess_read_terms_options'(Options, T, VL). '$postprocess_read_terms_options'(Options, T, VL).
'$read_vars'(T,V) :-
'$read'(true,T,V,Err),
(nonvar(Err) ->
'$print_message'(error,Err), fail
;
true
).
read_term(Stream, T, Options) :- read_term(Stream, T, Options) :-
'$check_io_opts'(Options,read_term(T, Options)), '$check_io_opts'(Options,read_term(T, Options)),
'$preprocess_read_terms_options'(Options), '$preprocess_read_terms_options'(Options, Stream),
'$read_vars'(Stream,T,VL), '$read_vars'(Stream,T,VL),
'$postprocess_read_terms_options'(Options, T, VL). '$postprocess_read_terms_options'(Options, T, VL).
% %
% support flags to read % support flags to read
% %
'$preprocess_read_terms_options'([]). '$preprocess_read_terms_options'([], _).
'$preprocess_read_terms_options'([syntax_errors(NewVal)|L]) :- !, '$preprocess_read_terms_options'([syntax_errors(NewVal)|L], Stream) :- !,
'$get_read_error_handler'(OldVal), '$get_read_error_handler'(OldVal),
'$set_value'('$read_term_error_handler', OldVal), '$set_value'('$read_term_error_handler', OldVal),
'$set_read_error_handler'(NewVal), '$set_read_error_handler'(NewVal),
'$preprocess_read_terms_options'(L). '$preprocess_read_terms_options'(L, Stream).
'$preprocess_read_terms_options'([_|L]) :- '$preprocess_read_terms_options'([term_position(Pos)|L], Stream) :- !,
'$preprocess_read_terms_options'(L). '$show_stream_position'(Stream, '$stream_position'(_,Pos,_)),
'$preprocess_read_terms_options'(L, Stream).
'$preprocess_read_terms_options'([_|L], Stream) :-
'$preprocess_read_terms_options'(L, Stream).
'$postprocess_read_terms_options'([], _, _). '$postprocess_read_terms_options'([], _, _).
'$postprocess_read_terms_options'([H|Tail], T, VL) :- !, '$postprocess_read_terms_options'([H|Tail], T, VL) :- !,
@ -382,6 +379,7 @@ read_term(Stream, T, Options) :-
'$fetch_singleton_names'(Val1,VL,Val). '$fetch_singleton_names'(Val1,VL,Val).
'$postprocess_read_terms_option'(variables(Val), T, _) :- '$postprocess_read_terms_option'(variables(Val), T, _) :-
'$variables_in_term'(T, [], Val). '$variables_in_term'(T, [], Val).
'$postprocess_read_terms_option'(term_position(_), _, _).
%'$postprocess_read_terms_option'(cycles(Val), _, _). %'$postprocess_read_terms_option'(cycles(Val), _, _).
'$read_term_non_anonymous'([], []). '$read_term_non_anonymous'([], []).