\begin{diagram}{Units}{units} \begin{mysyntdiag} \synt{unit} \synt{unit\ header} \synt{interface\ part} \synt{implementation\ part} \begin{stack}\\ \synt{initialization\ part} \begin{stack}\\ \synt{finalization\ part} \end{stack} \\ \lit*{begin} \begin{rep}[b] \synt{statement} \\ \lit* ; \end{rep} \end{stack} \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} \begin{stack}\\ \synt{uses\ clause} \end{stack} \begin{rep}[b] \begin{stack}\\ \synt{constant\ declaration\ part} \\ \synt{type\ declaration\ part}\\ \synt{procedure\ headers\ part} \end{stack} \end{rep} \end{mysyntdiag} \begin{mysyntdiag} \synt{procedure\ headers\ part} \begin{stack} \synt{procedure\ header} \\ \synt{function\ header}\end{stack} \lit* ; \begin{stack}\\ \synt{call\ modifiers} \lit* ; \end{stack} \end{mysyntdiag} \begin{mysyntdiag} \synt{implementation\ part} \lit*{implementation} \begin{stack}\\ \synt{uses\ clause} \end{stack} \synt{declaration\ part} \end{mysyntdiag} \begin{mysyntdiag} \synt{initialization\ part} \lit*{initialization} \begin{rep}[b] \synt{statement} \\ \lit* ; \end{rep} \end{mysyntdiag} \begin{mysyntdiag} \synt{finalization\ part} \lit*{finalization} \begin{rep}[b] \synt{statement} \\ \lit* ; \end{rep} \end{mysyntdiag} \end{diagram}