anchor.diff:                             (parse-error ()
                                (decimal-error-cond (nil :return-p t)
                                  decimal-conversion-syntax))))
  +                        ;; There is an "E" but no exponent after it
                           (t (decimal-error-cond (nil :return-p t)
                                decimal-conversion-syntax)))))
       (unless (plusp digits)
  
positive.code:                                         (or (digit-char-p char)
                                              (member char '(#\+ #\-))))
                                        (digit-char-p (char string (1- end))))
                             ;; parse-integer accepts leading and trailing whitespaces
                             (decimal-error-cond (nil :return-p t)
                               decimal-conversion-syntax))
                           (handler-case (parse-integer string :start (1+ e-position)
  
negative.code:                                           :start position :end end))
                           (decimal-error-cond (nil :return-p t)
                             decimal-conversion-syntax))
                         (let ((position (position #\0 string :start position :end end
                                                   :test-not #'char=)))
                           (when position
                             (multiple-value-bind (iexponent slots fsld lsfd)
                                 (%parse-decimal string position end)
                               (declare (ignore iexponent))
                               (setf (df-slots nan) slots
                                     (df-first-slot-last-digit nan) fsld
                                     (df-last-slot-first-digit nan) lsfd)))))
                       nan))
                    ((or (string-equal "inf" string :start2 position :end2 end)
                         (string-equal "infinity" string :start2 position :end2 end))
  