added error checking for the reader, some shuffling
svn: r16471
This commit is contained in:
parent
55506e6ecf
commit
87a5092c82
|
@ -486,32 +486,40 @@
|
||||||
void))))
|
void))))
|
||||||
|
|
||||||
(define in-lines
|
(define in-lines
|
||||||
(case-lambda
|
(let ([mk (lambda (p m)
|
||||||
[() (in-lines (current-input-port))]
|
(make-do-sequence
|
||||||
[(v) (in-lines v 'any)]
|
(lambda ()
|
||||||
[(v mode)
|
(values (lambda (p) (read-line p m))
|
||||||
(unless (input-port? v) (raise-type-error 'in-lines "input-port" v))
|
values p void
|
||||||
(unless (memq mode '(linefeed return return-linefeed any any-one))
|
|
||||||
(raise-type-error 'in-lines "('linefeed, 'return, 'return-linefeed, 'any, or 'any-one)" mode))
|
|
||||||
(make-do-sequence (lambda ()
|
|
||||||
(values (lambda (v) (read-line v mode))
|
|
||||||
values
|
|
||||||
v
|
|
||||||
void
|
|
||||||
(lambda (x) (not (eof-object? x)))
|
(lambda (x) (not (eof-object? x)))
|
||||||
void)))]))
|
void))))])
|
||||||
|
(case-lambda
|
||||||
|
[() (in-lines (current-input-port) 'any)]
|
||||||
|
[(p) (in-lines p 'any)]
|
||||||
|
[(p mode)
|
||||||
|
(unless (input-port? p) (raise-type-error 'in-lines "input-port" p))
|
||||||
|
(unless (memq mode '(linefeed return return-linefeed any any-one))
|
||||||
|
(raise-type-error
|
||||||
|
'in-lines
|
||||||
|
"'linefeed, 'return, 'return-linefeed, 'any, or 'any-one"
|
||||||
|
mode))
|
||||||
|
(mk p mode)])))
|
||||||
|
|
||||||
(define in-port
|
(define in-port
|
||||||
(case-lambda
|
(let ([mk (lambda (p r)
|
||||||
[() (in-port read (current-input-port))]
|
|
||||||
[(r) (in-port r (current-input-port))]
|
|
||||||
[(r p)
|
|
||||||
(unless (input-port? p) (raise-type-error 'in-port "input-port" p))
|
|
||||||
(make-do-sequence
|
(make-do-sequence
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(values r values p void
|
(values r values p void
|
||||||
(lambda (x) (not (eof-object? x)))
|
(lambda (x) (not (eof-object? x)))
|
||||||
void)))]))
|
void))))])
|
||||||
|
(case-lambda
|
||||||
|
[() (mk (current-input-port) read)]
|
||||||
|
[(r) (mk (current-input-port) r)]
|
||||||
|
[(r p)
|
||||||
|
(unless (and (procedure? r) (procedure-arity-includes? r 1))
|
||||||
|
(raise-type-error 'in->port "procedure (arity 1)" r))
|
||||||
|
(unless (input-port? p) (raise-type-error 'in-port "input-port" p))
|
||||||
|
(mk p r)])))
|
||||||
|
|
||||||
(define (in-hash ht)
|
(define (in-hash ht)
|
||||||
(unless (hash? ht) (raise-type-error 'in-hash "hash" ht))
|
(unless (hash? ht) (raise-type-error 'in-hash "hash" ht))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user