Dig up `SodObject' as a suitable default, and don't actually add the
class to the module.
;; class-item ::= property-set raw-class-item
(with-parser-context (token-scanner-context :scanner scanner)
(make-class-type name)
;; class-item ::= property-set raw-class-item
(with-parser-context (token-scanner-context :scanner scanner)
(make-class-type name)
- (let* ((class (make-sod-class name (mapcar #'find-sod-class supers)
+ (let* ((duff nil)
+ (class (make-sod-class name
+ (restart-case
+ (mapcar #'find-sod-class supers)
+ (continue ()
+ (setf duff t)
+ (list (find-sod-class "SodObject"))))
pset scanner))
(nick (sod-class-nickname class)))
pset scanner))
(nick (sod-class-nickname class)))
(check-unused-properties sub-pset))))
(nil (error () #\})))
(finalize-sod-class class)
(check-unused-properties sub-pset))))
(nil (error () #\})))
(finalize-sod-class class)
- (add-to-module *module* class)))))))
+ (unless duff
+ (add-to-module *module* class))))))))
(define-pluggable-parser module class (scanner pset)
;; `class' id `:' id-list class-body
(define-pluggable-parser module class (scanner pset)
;; `class' id `:' id-list class-body