\begin{diagram}{Units}{units}
\begin{mysyntdiag}
\synt{unit}
\synt{unit\ header}
\synt{interface\ part}
\synt{implementation\ part}
\[ \synt{initialization\ part} \[ \synt{finalization\ part} \] \\
    \lit*{begin} \<[b] \synt{statement} \\ \lit* ; \>
\]
\lit*{end} \lit* .
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{unit\ header} 
\lit*{unit}
\synt{unit\ identifier}
\lit* ;
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{interface\ part} \lit*{interface}
\<[b]
  \[  \synt{constant\ declaration\ part} \\
      \synt{type\ declaration\ part}\\
      \synt{procedure\ headers\ part}
  \]
\>
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{procedure\ headers\ part}
\( \synt{procedure\ header} \\ \synt{function\ header}\) \lit* ;
\[ \synt{call\ modifiers} \lit* ; \]
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{implementation\ part}
\lit*{implementation}
\[ \synt{uses\ clause} \]
\synt{declaration\ part}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{initialization\ part}
  \lit*{initialization} 
  \<[b] \synt{statement} \\ \lit* ; \>
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{finalization\ part}
  \lit*{finalization} 
  \<[b] \synt{statement} \\ \lit* ; \>
\end{mysyntdiag}
\end{diagram}