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, [], 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) :-
|
||||||
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) :-
|
number_to_chars(Number, L0, OUT) :-
|
||||||
throw(error(type_error(number,Number),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_chars_stream(Chars, Stream) :-
|
||||||
open_mem_read_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),
|
charsio:write_to_chars(Term,S),
|
||||||
atom_codes(Atom,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(V) :- var(V), !.
|
||||||
simple(A) :- atom(A), !.
|
simple(A) :- atom(A), !.
|
||||||
simple(N) :- number(N).
|
simple(N) :- number(N).
|
||||||
|
Reference in New Issue
Block a user