From 74d5706c20aa3773041a9d23dd8434bcb5e1c0cd Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 11 Mar 2013 18:52:10 -0500 Subject: [PATCH] properly compose readtables --- collects/unstable/2d/lang/reader.rkt | 4 +--- collects/unstable/2d/private/readtable.rkt | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/collects/unstable/2d/lang/reader.rkt b/collects/unstable/2d/lang/reader.rkt index 8a5ecbdb56..b9b9a69a09 100644 --- a/collects/unstable/2d/lang/reader.rkt +++ b/collects/unstable/2d/lang/reader.rkt @@ -6,11 +6,9 @@ [2d-read-syntax read-syntax] [2d-get-info get-info])) -(define 2d-readtable (make-2d-readtable)) - (define (wrap-reader p) (lambda args - (parameterize ([current-readtable 2d-readtable]) + (parameterize ([current-readtable (make-2d-readtable)]) (apply p args)))) (define-values (2d-read 2d-read-syntax 2d-get-info) diff --git a/collects/unstable/2d/private/readtable.rkt b/collects/unstable/2d/private/readtable.rkt index 9fe4806deb..0c10dd8393 100644 --- a/collects/unstable/2d/private/readtable.rkt +++ b/collects/unstable/2d/private/readtable.rkt @@ -23,13 +23,13 @@ example uses: (provide make-2d-readtable) (define (make-2d-readtable) - (define previous-readtable (current-readtable)) (make-readtable #f #\2 'dispatch-macro (case-lambda [(char port) + (define previous-readtable (current-readtable)) (define-values (line col pos) (port-next-location port)) ;; the "-2"s here are because the initial line and column @@ -40,6 +40,7 @@ example uses: (and pos (- pos 2)) read/recursive previous-readtable)] [(char port source _line _col _pos) + (define previous-readtable (current-readtable)) (dispatch-proc char port source _line _col _pos (λ (a b c) (read-syntax/recursive source a b c)) previous-readtable)])))