\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}