Changeset 271
- Timestamp:
- Jan 13, 2004, 4:46:11 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lib/read.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lib/read.lisp
r224 r271 15 15 ;;; http://opensource.franz.com/preamble.html 16 16 17 (in-package "CCL") 17 18 18 19 (define-condition simple-reader-error (reader-error simple-error) () … … 124 125 (defun parse-integer (string &key (start 0) end 125 126 (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 131 135 (return-from parse-integer (values nil end)) 132 ( error "Not an integer string: ~S."string)))136 (parse-integer-not-integer-string string))) 133 137 (unless (whitespacep (char string i)) (return i)))) 134 138 (minusp nil) … … 153 157 (until (eq (setq index (1+ index)) end) 154 158 (unless (whitespacep (char string index)) 155 ( error "Not an integer string: ~S."string)))159 (parse-integer-not-integer-string string))) 156 160 (return nil)) 157 161 (t 158 ( error "Not an integer string: ~S."string))))162 (parse-integer-not-integer-string string)))) 159 163 (setq index (1+ index))) 160 164 (values … … 163 167 (if junk-allowed 164 168 nil 165 ( error "Not an integer string: ~S."string)))166 index))) 169 (parse-integer-not-integer-string string))) 170 index)))) 167 171 168 172
Note:
See TracChangeset
for help on using the changeset viewer.
