From 29807e054b3457a46d4b51225fc29a3c0c126939 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Sun, 4 Aug 2024 18:54:53 +0900 Subject: Refactor to add pnm-parse-error procedure --- pnm/read.scm | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) (limited to 'pnm/read.scm') diff --git a/pnm/read.scm b/pnm/read.scm index 55e5068..e277a32 100644 --- a/pnm/read.scm +++ b/pnm/read.scm @@ -18,8 +18,7 @@ (define-library (pnm read) (export image-read - pnm-parse-error? - pnm-parse-error-type) + pnm-parse-error?) (import (scheme base) (scheme write) (pnm image) @@ -217,40 +216,31 @@ ((digit? u8) (read-u8 in) (loop (+ (* number 10) (u8->integer u8)))) - (else number)))))))) + (else number))))))) + + (define (unexpected-magic-number-error) + (raise (pnm-parse-error "(pnm read) image-read: Not supported magic number"))) + (define (unexpected-eof-error) + (raise (pnm-parse-error "(pnm read) image-read: Unexpected end of file"))) + (define (unexpected-character-error) + (raise (pnm-parse-error "(pnm read) image-read: Unexpected character")))) (cond-expand ((library (srfi 35)) (import (srfi 35)) (begin (define-condition-type &pnm-parse-error &error - pnm-parse-error? - (type pnm-parse-error-type)) + pnm-parse-error?) - (define (unexpected-magic-number-error) - (raise (condition (&pnm-parse-error - (type 'unexpected-magic-number-error)) - (&message - (message "(pnm read) image-read: Not supported magic number"))))) - (define (unexpected-eof-error) - (raise (condition (&pnm-parse-error - (type 'unexpected-eof-error)) - (&message - (message "(pnm read) image-read: Unexpected end of file"))))) - (define (unexpected-character-error) - (raise (condition (&pnm-parse-error - (type 'unexpected-character-error)) + (define (pnm-parse-error msg) + (raise (condition (&pnm-parse-error) (&message - (message "(pnm read) image-read: Unexpected character"))))))) + (message msg))))))) (r7rs (begin (define-record-type - (make-pnm-parse-error type) + (make-pnm-parse-error message) pnm-parse-error? - (type pnm-parse-error-type)) + (message pnm-parse-error-message)) - (define (unexpected-magic-number-error) - (raise (make-pnm-parse-error 'unexpected-magic-number-error))) - (define (unexpected-eof-error) - (raise (make-pnm-parse-error 'unexpected-eof-error))) - (define (unexpected-character-error) - (raise (make-pnm-parse-error 'unexpected-character-error))))))) + (define (pnm-parse-error msg) + (raise (make-pnm-parse-error msg))))))) -- cgit v1.2.3