X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e048fa5955190d01ea6069e0d0705279108b6851..a13386ba3e5cbeecd0e4315a423e3280dabf0f1c:/doc/clang.tex diff --git a/doc/clang.tex b/doc/clang.tex index 0047efb..0213269 100644 --- a/doc/clang.tex +++ b/doc/clang.tex @@ -91,6 +91,9 @@ similar names. 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 @ @> @} +\end{describe} + \subsection{The C type root class} \label{sec:clang.c-types.root} @@ -347,12 +350,16 @@ methods to \descref{gf}{c-qualifier-keyword}. The class @|qualifiable-c-type| is abstract. \end{describe} +\begin{describe}{fun} + {canonify-qualifiers @ @> @} +\end{describe} + \begin{describe}{gf}{c-type-qualifiers @ @> @} Returns the qualifiers of the @|qualifiable-c-type| instance @ as an immutable list. \end{describe} -\begin{describe}{fun}{qualify-type @ @ @> @} +\begin{describe}{fun}{qualify-c-type @ @ @> @} The argument @ must be an instance of @|qualifiable-c-type|, currently bearing no qualifiers, and @ a list of qualifier keywords. The result is a C type object like @ except that it @@ -501,16 +508,13 @@ In Sod, the leaf types are Two simple type objects are equal if and only if they have @|string=| names and matching qualifiers. - \def\x#1{\desclabel{const}{#1}} - \x{c-type-bool} \x{c-type-char} \x{c-type-wchar-t} \x{c-type-signed-char} - \x{c-type-unsigned-char} \x{c-type-short} \x{c-type-unsigned-short} - \x{c-type-int} \x{c-type-unsigned} \x{c-type-long} \x{c-type-unsigned-long} - \x{c-type-long-long} \x{c-type-unsigned-long-long} \x{c-type-size-t} - \x{c-type-ptrdiff-t} \x{c-type-float} \x{c-type-double} - \x{c-type-long-double} \x{c-type-float-imaginary} - \x{c-type-double-imaginary} \x{c-type-long-double-imaginary} - \x{c-type-float-complex} \x{c-type-double-complex} - \x{c-type-long-double-complex} \x{c-type-va-list} \x{c-type-void} + \def\x#1{\desclabel{const}{c-type-#1}} + \x{bool} \x{char} \x{wchar-t} \x{signed-char} \x{unsigned-char} \x{short} + \x{unsigned-short} \x{int} \x{unsigned} \x{long} \x{unsigned-long} + \x{long-long} \x{unsigned-long-long} \x{size-t} \x{ptrdiff-t} \x{float} + \x{double} \x{long-double} \x{float-imaginary} \x{double-imaginary} + \x{long-double-imaginary} \x{float-complex} \x{double-complex} + \x{long-double-complex} \x{va-list} \x{void} A number of symbolic type specifiers for builtin types are predefined as shown in \xref{tab:codegen.c-types.simple}. These are all defined as if by @|define-simple-c-type|, so can be used to construct qualified types. @@ -620,6 +624,14 @@ In Sod, the leaf types are structs and unions. \end{boxy} +\begin{describe}{gf}{c-type-tag @ @> @} +\end{describe} + +\begin{describe}{fun} + {make-c-tagged-type @ @ \&optional @ + @> @} +\end{describe} + \begin{describe}{gf}{c-tagged-type-kind @ @> @} Returns a keyword classifying the tagged @: one of @|:enum|, @|:struct| or @|:union|. User-defined subclasses of @|tagged-c-type| @@ -1016,6 +1028,11 @@ function type is the type of the function's return value. Return the (non-keyword) argument list of the @. \end{describe} +\begin{describe}{gf} + {c-function-keywords @ @> @} + Return the keyword-argument list of the @. +\end{describe} + \begin{describe}{fun} {commentify-function-type @ @> @} Return a commentified version of the @. @@ -1179,6 +1196,9 @@ Temporary names are represented by objects which implement a simple protocol. subclasses, but is also usable on its own. \end{describe} +\begin{describe}{gf}{temp-tag @ @> @} +\end{describe} + \begin{describe}{meth}{temporary-name} {commentify-argument-name (@ temporary-name) @> nil} \end{describe} @@ -1400,8 +1420,11 @@ Temporary names are represented by objects which implement a simple protocol. \begin{describe}{cls}{c-fragment () \&key :location :text} \end{describe} -\begin{describe}{gf}{c-fragment-text @ @> @} -\end{describe} +\begin{describe*} + {\dhead{gf}{c-fragment-text @ @> @} + \dhead{meth}{c-fragment} + {file-location (@ c-fragment) @> @}} +\end{describe*} \begin{describe}{fun} {scan-c-fragment @ @