Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define-condition parsing-error (error)
- ((error :initarg :error :reader parsing-error.error)
- (when :initarg :when :reader parsing-error.when))
- (:report (lambda (condition stream)
- (format stream "~A~%~{~A~%~}"
- (parsing-error.error condition)
- (parsing-error.when condition)))))
- (defvar *when* '())
- (defmacro with-parsing-error-wrapper (&body body)
- `(handler-bind ((error (lambda (err)
- (error 'parsing-error :error err
- :when (copy-seq *when*)))))
- ,@body))
- (let ((*when* (cons (format nil "Parsing slot clause ~S" clause) *when*)))
- ...)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement