if you wanted to circumvent the cleanup then you should have used
`with-parser-place', which does all of this in the meta-level."
(once-only (scanner)
- `(let ((,place (scanner-capture-place ,scanner)))
- (unwind-protect (progn ,@body)
- (scanner-release-place ,scanner ,place)))))
+ (multiple-value-bind (docs decls body) (parse-body body :docp nil)
+ (declare (ignore docs))
+ `(let ((,place (scanner-capture-place ,scanner)))
+ ,@decls
+ (unwind-protect (progn ,@body)
+ (scanner-release-place ,scanner ,place))))))
;;;--------------------------------------------------------------------------
;;; Character scanner protocol.