chiark / gitweb /
doc/concepts.tex: Typeset method rĂ´le names as identifiers.
[sod] / doc / syntax.tex
index acf6f3f84445b27864f2b169c893d3575835db1c..6ebdc78e28eb1e0326ff5a3bb07a634947475baf 100644 (file)
@@ -59,7 +59,7 @@ could be a token.
 
 <digit-char> ::= "0" | <nonzero-digit-char>
 
-<nonzero-digit-char> ::= "1" | "2" $| \cdots |$ "9"
+<nonzero-digit-char> ::= "1" | "2" $| \ldots |$ "9"
 \end{grammar}
 
 The precise definition of @<alpha-char> is left to the function
@@ -112,7 +112,7 @@ discouraged.
 
 <octal-integer> ::= "0" @["o"|"O"@] @<octal-digit-char>^+
 
-<octal-digit-char> ::= "0" | "1" $| \cdots |$ "7"
+<octal-digit-char> ::= "0" | "1" $| \ldots |$ "7"
 
 <hex-integer> ::= "0" @("x"|"X"@) @<hex-digit-char>^+
 
@@ -492,8 +492,6 @@ All of these have their usual C meanings.
 
 <abstract-declarator> ::= <declarator>$[\epsilon, \mbox{@<argument-list>}]$
 
-<argument-declarator> ::= <declarator>$[\mbox{@<identifier> @! $\epsilon$}]$
-
 <argument-declarator> ::=
   <declarator>$[\mbox{@<identifier> @! $\epsilon$}, \mbox{@<argument-list>}]$
 
@@ -683,6 +681,8 @@ Properties:
   \xref{sec:concepts.lifecycle.birth} for the details.  An initializer item
   must have either an @|initarg| property, or an initializer expression, or
   both.
+\item[@"initarg_class"] A symbol naming the Lisp class to use to represent
+  the initarg.  Only permitted if @"initarg" is also set.
 \end{description}
 
 Each class may define at most one initializer item with an explicit
@@ -695,7 +695,11 @@ initializer expression for a given slot.
   @<declaration-specifier>^+
   <list>$[\mbox{@<init-declarator>}]$ ";"
 \end{grammar}
-Properties: none.
+Properties:
+\begin{description}
+\item[@"initarg_class"] A symbol naming the Lisp class to use to represent
+  the initarg.
+\end{description}
 
 \subsubsection{Fragment items}
 \begin{grammar}
@@ -737,6 +741,10 @@ Properties for the @|custom| aggregating method combination:
 \item[@"before"] A code fragment containing initialization to be performed at
   the beginning of the effective method body.  The default is to insert
   nothing.
+\item[@"empty"] A code fragment executed if there are no primary methods;
+  it should usually store a suitable (identity) value in @<retvar>.  The
+  default is not to emit an effective method at all if there are no primary
+  methods.
 \item[@"first"] A code fragment to set the return value after calling the
   first applicable direct method.  The default is to use the @"each"
   fragment.