; This is a version of the read-xeval-print loop that will first read from ; a selected file before entering the interactive loop. Run the ; readfile-xeval-print function to load the xeval-tests.xl file when you're ; ready to handin your final results ; ; SEE ALSO: the file read-xeval-print.l ; ; (load "read-xeval-print.l") (defun readfile-xeval-print-loop () (prog (infilename instream xsexpr alist) (setq alist (preload-built-ins)) (read-line) (princ "Name of xeval test file: ") (setq infilename (read-line)) (setq instream (open infilename)) file-read-loop (setq xsexpr (read instream nil 'eof)) (cond ( (not (eq xsexpr 'eof)) (setq result (xeval xsexpr alist)) (print (car result)) (setq alist (cadr result)) (go file-read-loop) ) ) (terpri) (terpri) (read-xeval-print-loop-no-preload alist) ) ) (defun read-xeval-print-loop-no-preload (alist) (prog (result) loop (princ "X>") (setq result (xeval (read) alist)) (cond ( (eq (car result) ':q) (return 'Bye) ) ) (princ (car result)) (setq alist (cadr result)) (terpri)(terpri) (go loop) ) )