(module-name module)))
(defun output-module (module reason stream)
- (let ((sequencer (make-instance 'sequencer)))
+ (let ((sequencer (make-instance 'sequencer))
+ (stream (if (typep stream 'position-aware-output-stream)
+ stream
+ (make-instance 'position-aware-output-stream
+ :stream stream
+ :file (or (stream-pathname stream)
+ #p"<unnamed>")))))
(add-output-hooks module reason sequencer)
(invoke-sequencer-items sequencer stream)))
(dolist (item (module-items module))
(add-output-hooks item reason sequencer)))
+(defmethod add-output-hooks progn
+ ((frag code-fragment-item) reason sequencer)
+ (when (eq reason (code-fragment-reason frag))
+ (dolist (constraint (code-fragment-constraints frag))
+ (add-sequencer-constraint sequencer constraint))
+ (add-sequencer-item-function sequencer (code-fragment-name frag)
+ (lambda (stream)
+ (write (code-fragment frag)
+ :stream stream
+ :pretty nil
+ :escape nil)))))
+
;;;--------------------------------------------------------------------------
;;; Header output.
(:guard :start)
(:typedefs :start) :typedefs (:typedefs :end)
(:includes :start) :includes (:includes :end)
- (:classes :start) (:classes :end)
+ (:classes :start) :classes (:classes :end)
(:guard :end)
:epilogue)