From d7f2bd3e15b76ed0937ec53f2930e2a5cce7cae2 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 17 Dec 2019 07:30:47 -0700 Subject: [PATCH] cs: eval multiple expressions provided with `-e` --- racket/src/cs/main.sps | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/racket/src/cs/main.sps b/racket/src/cs/main.sps index f539c9fe2c..e4da9403cb 100644 --- a/racket/src/cs/main.sps +++ b/racket/src/cs/main.sps @@ -371,19 +371,24 @@ (set! loads (cons (lambda () - (call-with-values (lambda () - (call-with-continuation-prompt - (lambda () - (eval `(|#%top-interaction| . ,(read (open-input-string expr))))) - (default-continuation-prompt-tag) - (lambda (proc) - ;; continue escape to set error status: - (abort-current-continuation (default-continuation-prompt-tag) proc)))) - (lambda vals - (for-each (lambda (v) - (|#%app| (current-print) v) - (flush-output)) - vals)))) + (define i (open-input-string expr)) + (let loop () + (define expr (read i)) + (unless (eof-object? expr) + (call-with-values (lambda () + (call-with-continuation-prompt + (lambda () + (eval `(|#%top-interaction| . ,expr))) + (default-continuation-prompt-tag) + (lambda (proc) + ;; continue escape to set error status: + (abort-current-continuation (default-continuation-prompt-tag) proc)))) + (lambda vals + (for-each (lambda (v) + (|#%app| (current-print) v) + (flush-output)) + vals))) + (loop)))) loads)) (flags-loop rest-args (see saw 'non-config)))] [("-k")