\begin{diagram}{Procedural types}{proceduraltypes}
\begin{mysyntdiag}
\synt{procedural\ type} 
\begin{stack} \synt{function\ header} \\ 
   \synt{procedure\ header}
\end{stack}
\begin{stack}\\ \lit*{of} \lit*{object} \end{stack}
\begin{stack}\\ \lit* ; \synt{call\ modifiers} \end{stack} 
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{function\ header} \lit*{function} \synt{formal\ parameter\ list}
\lit*: \synt{result\ type}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{procedure\ header} \lit*{procedure} \synt{formal\ parameter\ list}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{call\ modifiers} 
\begin{stack} 
\lit*{register} \\
\lit*{cdecl}    \\
\lit*{pascal}   \\
\lit*{stdcall}  \\
\lit*{safecall} \\
\lit*{saveregisters} \\
\lit*{popstack}
\end{stack}
\end{mysyntdiag}
\end{diagram}
