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.
\begin{describe}{cls}{c-fragment () \&key :location :text}
\end{describe}
-\begin{describe}{gf}{c-fragment-text @<fragment> @> @<string>}
-\end{describe}
+\begin{describe*}
+ {\dhead{gf}{c-fragment-text @<fragment> @> @<string>}
+ \dhead{meth}{c-fragment}
+ {file-location (@<fragment> c-fragment) @> @<floc>}}
+\end{describe*}
\begin{describe}{fun}
{scan-c-fragment @<scanner> @<end-chars>