X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/52e2a70f115d79f743314f98420e69f7e5ac62b8..ac8ddb83cbc699b3d82ae1be837076b41d90757d:/doc/clang.tex diff --git a/doc/clang.tex b/doc/clang.tex index 0806f1d..8a1be72 100644 --- a/doc/clang.tex +++ b/doc/clang.tex @@ -355,9 +355,11 @@ In Sod, the leaf types are \begin{tabular}[C]{ll} \hlx*{hv} \thd{C type} & \thd{Specifiers} \\ \hlx{vhv} @|void| & @|void| \\ \hlx{v} - @|char| & @|char| \\ \hlx{v} - @|unsigned char| & @|unsigned-char|, @|uchar| \\ \hlx{} - @|signed char| & @|signed-char|, @|schar| \\ \hlx{v} + @|_Bool| & @|bool| \\ \hlx{v} + @|char| & @|char| \\ \hlx{} + @|wchar_t| & @|wchar-t| \\ \hlx{v} + @|signed char| & @|signed-char|, @|schar| \\ \hlx{} + @|unsigned char| & @|unsigned-char|, @|uchar| \\ \hlx{v} @|short| & @|short|, @|signed-short|, @|short-int|, @|signed-short-int| @|sshort| \\ \hlx{} @|unsigned short| & @|unsigned-short|, @|unsigned-short-int|, @@ -370,17 +372,26 @@ In Sod, the leaf types are @|unsigned long| & @|unsigned-long|, @|unsigned-long-int|, @|ulong| \\ \hlx{v} @|long long| & @|long-long|, @|signed-long-long|, - @|long-long-int|, \\ + @|long-long-int|, \\ \hlx{} & \qquad @|signed-long-long-int|, @|llong|, @|sllong| \\ \hlx{v} @|unsigned long long| & @|unsigned-long-long|, @|unsigned-long-long-int|, @|ullong| \\ \hlx{v} + @|size_t| & @|size-t| \\ \hlx{} + @|ptrdiff_t| & @|ptrdiff-t| \\ \hlx{v} @|float| & @|float| \\ \hlx{} - @|double| & @|double| \\ \hlx{v} - @|va_list| & @|va-list| \\ \hlx{v} - @|size_t| & @|size-t| \\ \hlx{v} - @|ptrdiff_t| & @|ptrdiff-t| \\ \hlx*{vh} + @|double| & @|double| \\ \hlx{} + @|long double| & @|long-double| \\ \hlx{v} + @|float _Imaginary| & @|float-imaginary| \\ \hlx{} + @|double _Imaginary|& @|double-imaginary| \\ \hlx{} + @|long double _Imaginary| + & @|long-double-imaginary| \\ \hlx{v} + @|float _Complex| & @|float-complex| \\ \hlx{} + @|double _Complex| & @|double-complex| \\ \hlx{} + @|long double _Complex| + & @|long-double-complex| \\ \hlx{v} + @|va_list| & @|va-list| \\ \hlx*{vh} \end{tabular} \caption{Builtin symbolic type specifiers for simple C types} \label{tab:codegen.c-types.simple} @@ -657,14 +668,19 @@ function type is the type of the function's return value. in the same order, and either both or neither argument list ends with @|:ellipsis|; argument names are not compared. - The type specifier @|(fun @ @{ (@ @) @}^* - @[:ellipsis @! . @
@])| constructs a function type. The function has - the subtype @. The remaining items in the type-specifier list - are used to construct the argument list. The argument items are a possibly - improper list, beginning with zero or more \emph{explicit arguments}: - two-item @/@ lists. For each such list, an @|argument| - object is constructed with the given name (evaluated) and type. Following - the explicit arguments, there may be + The type specifier + \begin{prog} + (fun @ + @{ (@ @) @}^* + @[:ellipsis @! . @@]) + \end{prog} + constructs a function type. The function has the subtype @. + The remaining items in the type-specifier list are used to construct the + argument list. The argument items are a possibly improper list, beginning + with zero or more \emph{explicit arguments}: two-item + @/@ lists. For each such list, an @|argument| object + is constructed with the given name (evaluated) and type. Following the + explicit arguments, there may be \begin{itemize} \item nothing, in which case the function's argument list consists only of the explicit arguments; @@ -827,8 +843,7 @@ Temporary names are represented by objects which implement a simple protocol. \begin{tabular}[C]{*2{>{\codeface}l}} \hlx*{hv} \thd{\textbf{Variable}} & \thd{\textbf{Name format}} \\ \hlx{vhv} {}*sod-ap* & sod__ap \\ - {}*sod-master-ap* & sod__master_ap \\ - {}*sod-tmp-ap* & sod__tmp_ap \\ \hlx*{vh} + {}*sod-master-ap* & sod__master_ap \\ \hlx*{vh} \end{tabular} \caption{Well-known temporary names} \label{tab:codegen.codegen.well-known-temps} @@ -914,7 +929,7 @@ Temporary names are represented by objects which implement a simple protocol. \begin{describe}{gf}{emit-decl @ @} \end{describe} -\begin{describe}{gf}{emit-declss @ @} +\begin{describe}{gf}{emit-decls @ @} \end{describe} \begin{describe}{gf}{codegen-push @}