Changeset 271


Ignore:
Timestamp:
Jan 13, 2004, 4:46:11 PM (21 years ago)
Author:
Gary Byers
Message:

Add an IN-PACKAGE. PARSE-INTEGER signals PARSE-ERRORs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lib/read.lisp

    r224 r271  
    1515;;;   http://opensource.franz.com/preamble.html
    1616
     17(in-package "CCL")
    1718
    1819(define-condition simple-reader-error (reader-error simple-error) ()
     
    124125(defun parse-integer (string &key (start 0) end
    125126                      (radix 10) junk-allowed)
    126   (when (null end)
    127     (setq end (length string)))
    128   (let ((index (do ((i start (1+ i)))
    129                    ((= i end)
    130                     (if junk-allowed
     127  (flet ((parse-integer-not-integer-string (s)
     128           (error 'parse-integer-not-integer-string :string s)))
     129    (declare (inline not-integer-string-error))
     130    (when (null end)
     131      (setq end (length string)))
     132    (let ((index (do ((i start (1+ i)))
     133                     ((= i end)
     134                      (if junk-allowed
    131135                        (return-from parse-integer (values nil end))
    132                         (error "Not an integer string: ~S." string)))
     136                        (parse-integer-not-integer-string string)))
    133137                   (unless (whitespacep (char string i)) (return i))))
    134138        (minusp nil)
     
    153157                     (until (eq (setq index (1+ index)) end)
    154158                       (unless (whitespacep (char string index))
    155                          (error "Not an integer string: ~S." string)))
     159                         (parse-integer-not-integer-string string)))
    156160                     (return nil))
    157161                    (t
    158                      (error "Not an integer string: ~S." string))))
     162                     (parse-integer-not-integer-string string))))
    159163         (setq index (1+ index)))
    160164       (values
     
    163167            (if junk-allowed
    164168                nil
    165                 (error "Not an integer string: ~S." string)))
    166         index)))
     169                (parse-integer-not-integer-string string)))
     170        index))))
    167171
    168172
Note: See TracChangeset for help on using the changeset viewer.