- (if (multiple-fors? loop)
- (append (body loop)
- (loop :for (var nil nil step test) :in (iterations loop)
- :collect `(setf ,var ,step)
- :when test :collect `(when ,test (break))))
- (body loop))))
-
-(defun the-actual-loop (loop)
- (let ((body `(,@(awhen (during-first loop)
- `((when ,(first-guard loop)
- ,@it
- (setf ,(first-guard loop) nil))))
- ,@(outer-body loop)
- ,@(when (during-last loop)
- `((setf ,(last-guard loop) t))))))
- (if (multiple-fors? loop)
- `(while t ,@body)
- `(for ,(inits loop) (,(end-test loop)) ,(steps loop) ,@body))))
+ (append (body loop)
+ (loop :for (var nil nil step test) :in (iterations loop)
+ :collect `(setf ,var ,step)
+ :when test :collect `(when ,test (break))))))