www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit a8a41e18206d205032d7cc812c61ac10aa1ae943
parent 5d3e291c44ed861cba581f7cd3923b8129baf727
Author: AlexKnauth <alexander@knauth.org>
Date:   Wed, 29 Oct 2014 22:49:25 -0400

extend reader for repl too

Diffstat:
M.gitignore | 9++-------
Aafl/lang/language-info.rkt | 10++++++++++
Mafl/lang/reader.rkt | 7++++++-
Aafl/lang/runtime-config.rkt | 12++++++++++++
4 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1,10 +1,5 @@ - -*.scrbl~ - -*.rkt~ - +*~ +compiled/ *.html - *.css - *.js diff --git a/afl/lang/language-info.rkt b/afl/lang/language-info.rkt @@ -0,0 +1,10 @@ +#lang racket/base + +(provide get-language-info) + +(define (get-language-info data) + (lambda (key default) + (case key + [(configure-runtime) + '(#[afl/lang/runtime-config configure #f])] + [else default]))) diff --git a/afl/lang/reader.rkt b/afl/lang/reader.rkt @@ -20,7 +20,12 @@ ;; fall back to /lang/reader: (string->symbol (string-append str "/lang/reader")))))) wrap-reader - wrap-reader + (lambda (orig-read-syntax) + (define read-syntax (wrap-reader orig-read-syntax)) + (lambda args + (syntax-property (apply read-syntax args) + 'module-language + '#(afl/lang/language-info get-language-info #f)))) (lambda (proc) (lambda (key defval) (define (fallback) (if proc (proc key defval) defval)) diff --git a/afl/lang/runtime-config.rkt b/afl/lang/runtime-config.rkt @@ -0,0 +1,12 @@ +#lang racket/base + +(provide configure) + +(require (only-in afl/reader make-afl-readtable)) + +(define (configure data) + (define old-read (current-read-interaction)) + (define (new-read src in) + (parameterize ([current-readtable (make-afl-readtable (current-readtable))]) + (old-read src in))) + (current-read-interaction new-read))