42 lines
1.0 KiB
Racket
42 lines
1.0 KiB
Racket
#lang racket
|
|
(provide configure)
|
|
|
|
;;;
|
|
;;; This file configures the repl in DrRacket/racket,
|
|
;;; when the bracket language is used.
|
|
;;;
|
|
|
|
(require bracket/lang/reader
|
|
bracket/unparse)
|
|
|
|
(define (configure data)
|
|
(current-read-interaction read0)
|
|
#;(define old-eval (current-eval))
|
|
#;(current-eval (λ (form) (displayln (list 'eval: form))
|
|
(define val (old-eval form))
|
|
(displayln (list 'eval-result: val))
|
|
val))
|
|
(define old-print (current-print))
|
|
#;(current-print (λ (val) (displayln (list 'print: val)) (old-print val)))
|
|
(current-print
|
|
(λ (val)
|
|
(unless (void? val)
|
|
(define u (unparse val))
|
|
(if (string? u)
|
|
(displayln u)
|
|
(old-print u))))) ; pict hack
|
|
)
|
|
|
|
|
|
(define (read0 src ip)
|
|
;(displayln (list 'read0 src ip))
|
|
(define expr (read-expression-syntax src ip))
|
|
(current-read-interaction read1)
|
|
;(displayln (list 'read0 expr))
|
|
expr)
|
|
|
|
(define (read1 src ip)
|
|
;(displayln (list 'read1 src ip))
|
|
(current-read-interaction read0)
|
|
eof)
|