anchor.diff:  (defvar *decimal-digits* "0123456789")
   
   (defun read-float (string)
  -  ;; float    = sign? decimal-digit* decimal-point decimal-digit+
  +  ;; float    = sign? decimal-digit* decimal-point decimal-digit+ [exponent]
     ;;          = sign? decimal-digit+ [decimal-point decimal-digit*] exponent
     ;; exponent = exponent-marker [sign] decimal-digit+
     ;; exponent-marker = d | D | e | E | f | F | l | L | s | S
  
positive.code:                (setf exponent-sign -1))
            (#\+ (consume)))
          ;; Must be at least one digit in the exponent
          ;; and one digit in the integer part
          (when (or (not (find (peek) *decimal-digits*))
                    (not saw-integer-digits))
            (return-from read-float))
          ;; Read exponent part.
          (loop (when (not (find (peek) *decimal-digits*))
  
negative.code:         (when (not (if saw-integer-digits
                         (or (find (peek) *exponent-markers*)
                             (find (peek) *decimal-digits*))
                         (find (peek) *decimal-digits*)))
            (return-from read-float))
          ;; Accumulate decimal digits.
          (let ((first-decimal position))
  