From 87a83f43e48d250e7bd36e098e7b680c7f78574a Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 14 Aug 2017 22:47:27 +0000 Subject: [PATCH] Vector parsing --- read.scm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/read.scm b/read.scm index 78b4ea97..afa73284 100644 --- a/read.scm +++ b/read.scm @@ -743,9 +743,26 @@ (reverse lis)) (else (loop (cons t lis) (parse2 fp)))))) - ((eq? token #()) - ;; TODO: vector parsing, similar to list - 'TODO) + ((vector? token) + (let loop ((lis '()) + (t (parse2 fp))) + (cond + ((eof-object? t) + (error "missing closing parenthesis")) + ((eq? t #\)) + (list->vector (reverse lis))) + (else + (loop (cons t lis) (parse2 fp)))))) + ;;((bytevector? token) + ;; (let loop ((lis '()) + ;; (t (parse2 fp))) + ;; (cond + ;; ((eof-object? t) + ;; (error "missing closing parenthesis")) + ;; ((eq? t #\)) + ;; (list->vector (reverse lis))) + ;; (else + ;; (loop (cons t lis) (parse2 fp)))))) ((eq? token #\') (list 'quote (parse2 fp))) ((eq? token #\`)