chiark / gitweb /
doc/concepts.tex: Typeset method rĂ´le names as identifiers.
[sod] / src / output-proto.lisp
index 1630de6fb7a0523b07e4ad6cd44de1ece0c5a653..c5a2dff1966d0f9e189cfecf4ffe2ac5944c25af 100644 (file)
@@ -7,7 +7,7 @@
 
 ;;;----- Licensing notice ---------------------------------------------------
 ;;;
-;;; This file is part of the Sensble Object Design, an object system for C.
+;;; This file is part of the Sensible Object Design, an object system for C.
 ;;;
 ;;; SOD is free software; you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by
@@ -41,14 +41,13 @@ (defstruct (sequencer-item
 
 (export '(sequencer sequencer-constraints sequencer-table))
 (defclass sequencer ()
-  ((constraints :initarg :constraints :initform nil
-               :type list :accessor sequencer-constraints)
+  ((constraints :initform nil :type list :accessor sequencer-constraints)
    (table :initform (make-hash-table :test #'equal)
          :reader sequencer-table))
   (:documentation
    "A sequencer tracks items and invokes them in the proper order.
 
-   The job of a SEQUENCER object is threefold.  Firstly, it collects
+   The job of a `sequencer' object is threefold.  Firstly, it collects
    sequencer items and stores them in its table indexed by name.  Secondly,
    it gathers CONSTRAINTS, which impose an ordering on the items.  Thirdly,
    it can be instructed to invoke the items in an order compatible with the
@@ -72,7 +71,7 @@ (defgeneric add-sequencer-constraint (sequencer constraint)
    "Attach the given CONSTRAINT to an SEQUENCER.
 
    The CONSTRAINT should be a list of sequencer-item names; see
-   ENSURE-SEQUENCER-ITEM for what they look like.  Note that the names
+   `ensure-sequencer-item' for what they look like.  Note that the names
    needn't have been declared in advance; indeed, they needn't be mentioned
    anywhere else at all."))
 
@@ -85,9 +84,9 @@ (defgeneric add-sequencer-item-function (sequencer name function)
    They are called in the same order in which they were added.
 
    Note that an item must be mentioned in at least one constraint in order to
-   be traversed by INVOKE-SEQUENCER-ITEMS.  If there are no special ordering
-   requirments for a particular item, then the trivial constraint (NAME) will
-   suffice."))
+   be traversed by `invoke-sequencer-items'.  If there are no special
+   ordering requirments for a particular item, then the trivial
+   constraint (NAME) will suffice."))
 
 (export 'invoke-sequencer-items)
 (defgeneric invoke-sequencer-items (sequencer &rest arguments)
@@ -100,23 +99,26 @@ (defgeneric invoke-sequencer-items (sequencer &rest arguments)
 ;;;--------------------------------------------------------------------------
 ;;; Output preparation.
 
+(export 'hook-output)
 (defgeneric hook-output (object reason sequencer)
   (:documentation
    "Announces the intention to write SEQUENCER, with a particular REASON.
 
-   The SEQUENCER is an SEQUENCER instance; the REASON will be a symbol which
-   can be matched using an EQL-specializer.  In response, OBJECT should add
+   The SEQUENCER is a `sequencer' instance; the REASON will be a symbol which
+   can be matched using an `eql'-specializer.  In response, OBJECT should add
    any constraints and item functions that it wishes, and pass the
    announcement to its sub-objects.  It is not uncommon for an object to pass
    a reason to its sub-objects that is different from the REASON with which
    it was itself invoked.")
 
   (:method-combination progn)
-  (:method progn (object reason sequencer)))
+  (:method progn (object reason sequencer)
+          (declare (ignore object reason sequencer))))
 
 ;;;--------------------------------------------------------------------------
 ;;; Useful syntax.
 
+(export 'sequence-output)
 (defmacro sequence-output
     ((streamvar sequencer) &body clauses)
   "Register output behaviour in a convenient manner.