Many stubs were missing. A few were wrongly spelled, or had the wrong
category. Some were spurious. Fixfixfix.
Neither generic function defines a default primary method; subclasses of
@|c-type| must define their own methods in order to print correctly.
Neither generic function defines a default primary method; subclasses of
@|c-type| must define their own methods in order to print correctly.
+\begin{describe}{fun}{c-name-case @<name> @> @<string>}
+\end{describe}
+
\subsection{The C type root class} \label{sec:clang.c-types.root}
\subsection{The C type root class} \label{sec:clang.c-types.root}
The class @|qualifiable-c-type| is abstract.
\end{describe}
The class @|qualifiable-c-type| is abstract.
\end{describe}
+\begin{describe}{fun}
+ {canonify-qualifiers @<qualifiers> @> @<canonfied-qualifiers>}
+\end{describe}
+
\begin{describe}{gf}{c-type-qualifiers @<c-type> @> @<list>}
Returns the qualifiers of the @|qualifiable-c-type| instance @<c-type> as
an immutable list.
\end{describe}
\begin{describe}{gf}{c-type-qualifiers @<c-type> @> @<list>}
Returns the qualifiers of the @|qualifiable-c-type| instance @<c-type> as
an immutable list.
\end{describe}
-\begin{describe}{fun}{qualify-type @<c-type> @<qualifiers> @> @<c-type>}
+\begin{describe}{fun}{qualify-c-type @<c-type> @<qualifiers> @> @<c-type>}
The argument @<c-type> must be an instance of @|qualifiable-c-type|,
currently bearing no qualifiers, and @<qualifiers> a list of qualifier
keywords. The result is a C type object like @<c-type> except that it
The argument @<c-type> must be an instance of @|qualifiable-c-type|,
currently bearing no qualifiers, and @<qualifiers> a list of qualifier
keywords. The result is a C type object like @<c-type> except that it
structs and unions.
\end{boxy}
structs and unions.
\end{boxy}
+\begin{describe}{gf}{c-type-tag @<c-type> @> @<keyword>}
+\end{describe}
+
+\begin{describe}{fun}
+ {make-c-tagged-type @<kind> @<tag> \&optional @<qualifiers>
+ @> @<tagged-type>}
+\end{describe}
+
\begin{describe}{gf}{c-tagged-type-kind @<c-type> @> @<keyword>}
Returns a keyword classifying the tagged @<c-type>: one of @|:enum|,
@|:struct| or @|:union|. User-defined subclasses of @|tagged-c-type|
\begin{describe}{gf}{c-tagged-type-kind @<c-type> @> @<keyword>}
Returns a keyword classifying the tagged @<c-type>: one of @|:enum|,
@|:struct| or @|:union|. User-defined subclasses of @|tagged-c-type|
Return the (non-keyword) argument list of the @<c-function-type>.
\end{describe}
Return the (non-keyword) argument list of the @<c-function-type>.
\end{describe}
+\begin{describe}{gf}
+ {c-function-keywords @<c-function-type> @> @<keywords>}
+ Return the keyword-argument list of the @<c-function-type>.
+\end{describe}
+
\begin{describe}{fun}
{commentify-function-type @<c-function-type> @> @<commentified-c-type>}
Return a commentified version of the @<c-function-type>.
\begin{describe}{fun}
{commentify-function-type @<c-function-type> @> @<commentified-c-type>}
Return a commentified version of the @<c-function-type>.
subclasses, but is also usable on its own.
\end{describe}
subclasses, but is also usable on its own.
\end{describe}
+\begin{describe}{gf}{temp-tag @<name> @> @<tag>}
+\end{describe}
+
\begin{describe}{meth}{temporary-name}
{commentify-argument-name (@<name> temporary-name) @> nil}
\end{describe}
\begin{describe}{meth}{temporary-name}
{commentify-argument-name (@<name> temporary-name) @> nil}
\end{describe}
\begin{describe}{gf}{compute-islots @<class> @<subclass> @> @<islots>}
\end{describe}
\begin{describe}{gf}{compute-islots @<class> @<subclass> @> @<islots>}
\end{describe}
-\begin{describe}{gf}{vtable-pointer () \&key :class :chain-head :chain-tail}
+\begin{describe}{cls}{vtable-pointer () \&key :class :chain-head :chain-tail}
\end{describe}
\begin{describe*}
\end{describe}
\begin{describe*}
\dhead{gf}{vtable-pointer-chain-tail @<vtable-pointer> @> @<class>}}
\end{describe*}
\dhead{gf}{vtable-pointer-chain-tail @<vtable-pointer> @> @<class>}}
\end{describe*}
-\begin{describe}{gf}{ichain () \&key :class :chain-head :chain-tail :body}
+\begin{describe}{cls}{ichain () \&key :class :chain-head :chain-tail :body}
\end{describe}
\begin{describe*}
{\dhead{gf}{ichain-class @<ichain> @> @<class>}
\end{describe}
\begin{describe*}
{\dhead{gf}{ichain-class @<ichain> @> @<class>}
- \dhead{gf}{ichain-chain-head @<ichain> @> @<class>}
- \dhead{gf}{ichain-chain-tail @<ichain> @> @<class>}
+ \dhead{gf}{ichain-head @<ichain> @> @<class>}
+ \dhead{gf}{ichain-tail @<ichain> @> @<class>}
\dhead{gf}{ichain-body @<ichain> @> @<list>}}
\end{describe*}
\begin{describe}{gf}{compute-ichain @<class> @<chain> @> @<ichain>}
\end{describe}
\dhead{gf}{ichain-body @<ichain> @> @<list>}}
\end{describe*}
\begin{describe}{gf}{compute-ichain @<class> @<chain> @> @<ichain>}
\end{describe}
-\begin{describe}{gf}{ilayout () \&key :class :ichains}
+\begin{describe}{cls}{ilayout () \&key :class :ichains}
\end{describe}
\begin{describe*}
\end{describe}
\begin{describe*}
\dhead{gf}{vtmsgs-entries @<vtmsgs> @> @<list>}}
\end{describe*}
\dhead{gf}{vtmsgs-entries @<vtmsgs> @> @<list>}}
\end{describe*}
+\begin{describe}{gf}
+ {compute-vtmsgs @<class> @<subclass> @<chain-head> @<chain-tail>
+ @> @<vtmsgs>}
+\end{describe}
+
\begin{describe}{cls}
{class-pointer () \&key :class :chain-head :metaclass :meta-chain-head}
\end{describe}
\begin{describe}{cls}
{class-pointer () \&key :class :chain-head :metaclass :meta-chain-head}
\end{describe}
@> @<chain-offset>}
\end{describe}
@> @<chain-offset>}
\end{describe}
-\begin{describe}{gf}{vtable () \&key :class :chain-head :chain-tail :body}
+\begin{describe}{cls}{vtable () \&key :class :chain-head :chain-tail :body}
\end{describe}
\begin{describe*}
\end{describe}
\begin{describe*}
\&key :name :location :class :type :combination}
\end{describe}
\&key :name :location :class :type :combination}
\end{describe}
+\begin{describe*}
+ {\dhead{gf}{sod-message-combination @<message> @> @<keyword>}
+ \dhead{gf}{sod-message-kernel-function @<message> @> @<function>}}
+\end{describe*}
+
\begin{describe}{gf}
{aggregating-message-properties @<message> @<combination> @> @<plist>}
\end{describe}
\begin{describe}{gf}
{aggregating-message-properties @<message> @<combination> @> @<plist>}
\end{describe}
\begin{describe*}
{\dhead{gf}{sod-initializer-slot @<init> @> @<slot>}
\begin{describe*}
{\dhead{gf}{sod-initializer-slot @<init> @> @<slot>}
- \dhead{gf}{sod-initializer-value @<init> @> @<fragment>}}
+ \dhead{gf}{sod-initializer-value @<init> @> @<fragment>}
+ \dhead{gf}{sod-initializer-class @<init> @> @<class>}}
\end{describe*}
\begin{describe*}
\end{describe*}
\begin{describe*}
\dhead{gf}{sod-initarg-slot @<initarg> @> @<slot>}}
\end{describe*}
\dhead{gf}{sod-initarg-slot @<initarg> @> @<slot>}}
\end{describe*}
+\begin{describe}{gf}{sod-initarg-argument @<initarg> @> @<argument>}
+\end{describe}
+
\begin{describe}{gf}
{make-sod-user-initarg @<class> @<name> @<type> @<pset>
\&key :default :location
\begin{describe}{gf}
{make-sod-user-initarg @<class> @<name> @<type> @<pset>
\&key :default :location
\dhead{fun}{setf (opt-negated-tag @<option>) @<tag>}
\dhead{fun}{opt-arg-name @<option> @> @<string-or-null>}
\dhead{fun}{setf (opt-arg-name @<option>) @<string-or-null>}
\dhead{fun}{setf (opt-negated-tag @<option>) @<tag>}
\dhead{fun}{opt-arg-name @<option> @> @<string-or-null>}
\dhead{fun}{setf (opt-arg-name @<option>) @<string-or-null>}
- \dhead{fun}{opt-optional-p @<option> @> @<generalized-boolean>}
- \dhead{fun}{setf (opt-optional-p @<option>) @<generalized-boolean>}
+ \dhead{fun}{opt-arg-optional-p @<option> @> @<generalized-boolean>}
+ \dhead{fun}{setf (opt-arg-optional-p @<option>) @<generalized-boolean>}
\dhead{fun}{opt-documentation @<option> @> @<string-or-null>}
\dhead{fun}{setf (opt-documentation @<option>) @<string-or-null>}}
\end{describe*}
\dhead{fun}{opt-documentation @<option> @> @<string-or-null>}
\dhead{fun}{setf (opt-documentation @<option>) @<string-or-null>}}
\end{describe*}
\&key :format-control :format-arguments}
\end{describe}
\&key :format-control :format-arguments}
\end{describe}
+\begin{describe}{fun}{option-parse-error @<msg> \&optional @<args>}
+\end{describe}
+
\begin{describe}{fun}{option-parse-remainder @<option-parser>}
\end{describe}
\begin{describe}{fun}{option-parse-remainder @<option-parser>}
\end{describe}
\dhead{gf}{module-pset @<module> @> @<pset>}
\dhead{gf}{module-errors @<module> @> @<integer>}
\dhead{gf}{module-items @<module> @> @<list>}
\dhead{gf}{module-pset @<module> @> @<pset>}
\dhead{gf}{module-errors @<module> @> @<integer>}
\dhead{gf}{module-items @<module> @> @<list>}
+ \dhead{gf}{setf (module-items @<module>) @<list>}
\dhead{gf}{module-dependencies @<module> @> @<list>}
\dhead{gf}{module-dependencies @<module> @> @<list>}
- \dhead{gf}{module-state @<module> @> @<keyword>}}
+ \dhead{gf}{setf (module-dependencies @<module>) @<list>}
+ \dhead{gf}{module-state @<module> @> @<symbol>}
+ \dhead{gf}{setf (module-state @<module>) @<keyword>}}
\end{describe*}
\begin{describe}{var}{*module*}
\end{describe*}
\begin{describe}{var}{*module*}
\begin{describe}{cls}{sequencer () \&key :constraints}
\end{describe}
\begin{describe}{cls}{sequencer () \&key :constraints}
\end{describe}
+\begin{describe*}
+ {\dhead{fun}{sequencer-constraints @<sequencer> @> @<list>}
+ \dhead{fun}{setf (sequencer-constraints @<sequencer>) @<list>}
+ \dhead{fun}{sequencer-table @<sequencer> @> @<hash-table>}}
+\end{describe*}
+
\begin{describe}{fun}{ensure-sequencer-item @<sequencer> @<name> @> @<item>}
\end{describe}
\begin{describe}{fun}{add-sequencer-constraint @<sequencer> @<constraint>}
\end{describe}
\begin{describe}{fun}{ensure-sequencer-item @<sequencer> @<name> @> @<item>}
\end{describe}
\begin{describe}{fun}{add-sequencer-constraint @<sequencer> @<constraint>}
\end{describe}
+\begin{describe}{fun}
+ {add-sequencer-item-function @<sequencer> @<name> @<function>}
+\end{describe}
+
\begin{describe}{fun}
{invoke-sequencer-items @<sequencer> \&rest @<arguments>}
\end{describe}
\begin{describe}{fun}
{invoke-sequencer-items @<sequencer> \&rest @<arguments>}
\end{describe}
\dhead{gf}{setf (position-aware-stream-column @<stream>) @<fixnum>}}
\end{describe*}
\dhead{gf}{setf (position-aware-stream-column @<stream>) @<fixnum>}}
\end{describe*}
+\begin{describe*}
+ {\dhead{cls}{position-aware-input-stream \&key :file :line :column}
+ \dhead{cls}{position-aware-output-stream \&key :file :line :column}}
+\end{describe*}
+
\begin{describe}{gf}{stream-pathname @<stream> @> @<pathname-or-nil>}
\begin{describe}{meth}{stream}
{stream-pathname (@<stream> stream) @> nil}
\begin{describe}{gf}{stream-pathname @<stream> @> @<pathname-or-nil>}
\begin{describe}{meth}{stream}
{stream-pathname (@<stream> stream) @> nil}
\dhead{cls}
{information-with-location (condition-with-location information) \\ \>
\&key :location}
\dhead{cls}
{information-with-location (condition-with-location information) \\ \>
\&key :location}
+ \dhead{cls}
+ {enclosing-condition-with-location (condition) \\ \>
+ \&key :location}
\dhead{cls}
{enclosing-error-with-location
(enclosing-error-with-location error) \\ \>
\dhead{cls}
{enclosing-error-with-location
(enclosing-error-with-location error) \\ \>
\dhead{fun}{cerror-with-location @<floc> @<continue-string>
@<datum> \&rest @<arguments>}
\dhead{fun}{cerror*-with-location @<floc> @<datum> \&rest @<arguments>}
\dhead{fun}{cerror-with-location @<floc> @<continue-string>
@<datum> \&rest @<arguments>}
\dhead{fun}{cerror*-with-location @<floc> @<datum> \&rest @<arguments>}
- \dhead{fun}{warn-with-location @<floc> @<datum> \&rest @<arguments>}}
+ \dhead{fun}{warn-with-location @<floc> @<datum> \&rest @<arguments>}
+ \dhead{fun}{info-with-location @<floc> @<datum> \&rest @<arguments>}}
\end{describe*}
\begin{describe*}
\end{describe*}
\begin{describe*}
the scanner will update the location as it reads its input.
\end{describe}
the scanner will update the location as it reads its input.
\end{describe}
+\begin{describe}{cls}
+ {charbuf-scanner-stream (character-scanner-stream) \&key :scanner}
+\end{describe}
+
\begin{describe}{cls}{charbuf-scanner-place}
The class of place objects captured by a charbuf scanner.
\end{describe}
\begin{describe}{cls}{charbuf-scanner-place}
The class of place objects captured by a charbuf scanner.
\end{describe}
{token-scanner () \&key :filename (:line 1) (:column 0)}
\end{describe}
{token-scanner () \&key :filename (:line 1) (:column 0)}
\end{describe}
+\begin{describe*}
+ {\dhead{gf}{setf (scanner-line @<scanner>) @<fixnum>}
+ \dhead{gf}{setf (scanner-column @<scanner>) @<fixnum>}}
+\end{describe*}
+
\begin{describe}{gf}{token-type @<scanner> @> @<type>}
\end{describe}
\begin{describe}{gf}{token-type @<scanner> @> @<type>}
\end{describe}
\-\nlret @<value>^*}
\end{describe}
\-\nlret @<value>^*}
\end{describe}
+\begin{describe}{cls}{list-parser () \&key :var}
+\end{describe}
+
\subsection{Basic parser syntax} \label{sec:parsing.syntax.basic}
\subsection{Basic parser syntax} \label{sec:parsing.syntax.basic}
\begin{describe}{gf}{parser-current-char @<context> @> @<form>}
\end{describe}
\begin{describe}{gf}{parser-current-char @<context> @> @<form>}
\end{describe}
+\begin{describe}{cls}
+ {string-parser (character-parser-context) \&key :string :index :length}
+\end{describe}
+
\begin{describe}{parseform}
{if-char (@[@<result-var>@]) @<condition> @<consequent> @<alternative>}
\end{describe}
\begin{describe}{parseform}
{if-char (@[@<result-var>@]) @<condition> @<consequent> @<alternative>}
\end{describe}
\begin{describe}{cls}{scanner-context () \&key :scanner}
\end{describe}
\begin{describe}{cls}{scanner-context () \&key :scanner}
\end{describe}
-\begin{describe}{gf}{parse-scanner @<context> @> @<symbol>}
+\begin{describe}{gf}{parser-scanner @<context> @> @<symbol>}
\end{describe}
\begin{describe}{cls}
\end{describe}
\begin{describe}{cls}
\end{describe*}
\begin{describe*}
\end{describe*}
\begin{describe*}
- {\dhead{cls}{parenthesis () \&key :tag}
- \dhead{cls}{open-parenthesis (parenthesis prefix-operator) \&key :tag}
+ {\dhead{cls}{open-parenthesis (parenthesis prefix-operator) \&key :tag}
\dhead{cls}{close-parenthesis (parenthesis) \&key :tag}}
\end{describe*}
\dhead{cls}{close-parenthesis (parenthesis) \&key :tag}}
\end{describe*}