Parse floating point numbers.
This commit is contained in:
parent
4c78a31bd9
commit
3f19b2b210
|
|
@ -34,9 +34,14 @@ joy_term(C) --> symbol(C).
|
|||
|
||||
|
||||
symbol(C) --> chars(Chars), !, { Chars \= "==", atom_codes(C, Chars) }.
|
||||
num(N) --> signed_digits(Codes), !, end_num, { number_codes(N, Codes) }.
|
||||
num(N) --> number_digits(Codes), { number_codes(N, Codes) }.
|
||||
|
||||
number_digits(Codes) --> signed_float_or_integer(Codes), !, end_num.
|
||||
% TODO: floats, scientific notation.
|
||||
|
||||
signed_float_or_integer(Codes) --> signed_digits(J), ".", !, digits(I),
|
||||
{ append(J, [0'.|I], Codes) }.
|
||||
|
||||
signed_digits([45|Codes]) --> "-", !, digits(Codes).
|
||||
signed_digits( Codes ) --> digits(Codes).
|
||||
|
||||
|
|
|
|||
|
|
@ -123,7 +123,6 @@ combo(i, [P|S], S, Ei, Eo) :- append(P, Ei, Eo).
|
|||
combo(dip, [P, X|S], S, Ei, Eo) :- append(P, [X|Ei], Eo).
|
||||
combo(dipd, [P, X, Y|S], S, Ei, Eo) :- append(P, [Y, X|Ei], Eo).
|
||||
|
||||
combo(dupdip, [P, X|S], [X|S], Ei, Eo) :- append(P, [X|Ei], Eo).
|
||||
combo(dupdip, [P, X|S], [X|S], Ei, Eo) :- append(P, [X|Ei], Eo).
|
||||
|
||||
combo(branch, [T, _, true|S], S, Ei, Eo) :- append(T, Ei, Eo).
|
||||
|
|
|
|||
Loading…
Reference in New Issue