From a054e735eda7cbe151679b1e10a369251c8cf613 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Thu, 18 Jul 2013 16:45:54 +0200 Subject: Fix the TAGBODY parser. --- sb-eval2.lisp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sb-eval2.lisp b/sb-eval2.lisp index 0d7033e..ad1a709 100644 --- a/sb-eval2.lisp +++ b/sb-eval2.lisp @@ -156,12 +156,15 @@ (finishp nil)) (loop until finishp collect - (let ((tag next-form) - (forms (loop until (symbolp (setq next-form (pop forms))) - collect next-form))) + (progn (unless forms - (setq finishp t)) - (cons tag forms))))) + (setq finishp (null forms))) + (let ((tag next-form) + (current-forms (loop for current-form = (pop forms) + do (setq next-form current-form) + until (symbolp current-form) + collect current-form))) + (cons tag current-forms)))))) (defun context-var-lexical-p (context var) (context-find-lexical context var)) (defun context-add-env-lexicals (context vars) -- cgit v1.2.3