Ticket #849 (closed defect: invalid)
Reader tokenization is wrong for +.e2
| Reported by: | pjb@… | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | ANSI CL Compliance | Version: | trunk |
| Keywords: | reader token float symbol | Cc: |
Description (last modified by gb) (diff)
$ clall -r '(read-from-string "+.e2")'
International Allegro CL Free Express Edition --> +.E2, 4
Clozure Common Lisp --> 0.0, 4
CLISP --> |+.E2|, 4
CMU Common Lisp --> |+.E2|, 4
ECL --> 0.0, 4
SBCL --> |+.E2|, 4
CLHS is clear about it "2.3.1 Numbers as Tokens", the syntax for
floating point numbers is:
float ::= [sign]
{decimal-digit}*
decimal-point
{decimal-digit}+
[exponent]
|
[sign]
{decimal-digit}+
[decimal-point
{decimal-digit}*]
exponent
exponent ::= exponent-marker
[sign]
{digit}+
that is, at least one decimal digit is required before or after the dot.
With no digit, the token +.e2 should be read as a symbol.
Change History
Note: See
TracTickets for help on using
tickets.
