fix atom_term builtin not to require previous loading of charsio.
This commit is contained in:
parent
d593f99c13
commit
d52d05a626
@ -49,13 +49,6 @@ format_to_chars(Form, Args, OUT, L0) :-
|
||||
write_to_chars(Term, OUT) :-
|
||||
write_to_chars(Term, [], OUT).
|
||||
|
||||
write_to_chars(Term, L0, OUT) :-
|
||||
open_mem_write_stream(Stream),
|
||||
write(Stream, Term),
|
||||
peek_mem_write_stream(Stream, L0, O),
|
||||
close(Stream),
|
||||
O = OUT.
|
||||
|
||||
atom_to_chars(Atom, OUT) :-
|
||||
atom_to_chars(Atom, [], OUT).
|
||||
|
||||
@ -88,12 +81,6 @@ number_to_chars(Number, L0, OUT) :-
|
||||
number_to_chars(Number, L0, OUT) :-
|
||||
throw(error(type_error(number,Number),number_to_chars(Number, L0, OUT))).
|
||||
|
||||
read_from_chars(Chars, Term) :-
|
||||
open_mem_read_stream(Chars, Stream),
|
||||
read(Stream, T),
|
||||
close(Stream),
|
||||
T = Term.
|
||||
|
||||
open_chars_stream(Chars, Stream) :-
|
||||
open_mem_read_stream(Chars, Stream).
|
||||
|
||||
|
17
pl/utils.yap
17
pl/utils.yap
@ -684,6 +684,23 @@ term_to_atom(Term,Atom) :-
|
||||
charsio:write_to_chars(Term,S),
|
||||
atom_codes(Atom,S).
|
||||
|
||||
%
|
||||
% hack this here.
|
||||
%
|
||||
charsio:write_to_chars(Term, L0, OUT) :-
|
||||
charsio:open_mem_write_stream(Stream),
|
||||
prolog:write(Stream, Term),
|
||||
charsio:peek_mem_write_stream(Stream, L0, O),
|
||||
prolog:close(Stream),
|
||||
O = OUT.
|
||||
|
||||
charsio:read_from_chars(Chars, Term) :-
|
||||
charsio:open_mem_read_stream(Chars, Stream),
|
||||
prolog:read(Stream, T),
|
||||
prolog:close(Stream),
|
||||
T = Term.
|
||||
|
||||
|
||||
simple(V) :- var(V), !.
|
||||
simple(A) :- atom(A), !.
|
||||
simple(N) :- number(N).
|
||||
|
Reference in New Issue
Block a user