From d7c8cdd938cecc976f049b1dd154ae7c581fe9fd Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Tue, 19 Mar 2013 08:58:32 -0600 Subject: [PATCH] Removing even/odd reading hack and just protecting parser from eof-ing ports original commit: 41e07b0cc6c8db0eae1e986037d1fe1e6e5c4fe6 --- collects/datalog/lang/configure-runtime.rkt | 22 ++++++++++----------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/collects/datalog/lang/configure-runtime.rkt b/collects/datalog/lang/configure-runtime.rkt index 25e9ad3..eb066a1 100644 --- a/collects/datalog/lang/configure-runtime.rkt +++ b/collects/datalog/lang/configure-runtime.rkt @@ -1,20 +1,18 @@ #lang racket/base (define (configure data) - ;; (printf "Configuring\n") - (current-read-interaction even-read)) + (current-read-interaction the-read)) (provide configure) (require datalog/parse datalog/private/compiler) -; XXX This is almost certainly wrong. -(define (even-read src ip) - (begin0 - (compile-statement - (parameterize ([current-source-name src]) - (parse-statement ip))) - (current-read-interaction odd-read))) -(define (odd-read src ip) - (current-read-interaction even-read) - eof) +(define (the-read src ip) + (cond + [(or (not (char-ready? ip)) + (eof-object? (peek-char ip))) + eof] + [else + (compile-statement + (parameterize ([current-source-name src]) + (parse-statement ip)))]))