\begin{diagram}{Properties}{properties}
\begin{mysyntdiag}
\synt{property\ definition}
\lit*{property} \synt{identifier} \begin{stack}\\ \synt{property\ interface} \end{stack}
\synt{property\ specifiers}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{property\ interface}
\begin{stack}\\ \synt{property\ parameter\ list}\end{stack} \lit*: \synt{type\ identifier}
\begin{stack}\\
\lit*{index} \synt{integer constant}
\end{stack}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{property\ parameter\ list} \lit*[
\begin{rep}[b] \synt{parameter\ declaration} \\ \lit; \end{rep} 
\lit*]
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{property\ specifiers}
\begin{stack}\\ \synt{read\ specifier} \end{stack}
\begin{stack}\\ \synt{write\ specifier} \end{stack}
\begin{stack}\\ \synt{default\ specifier} \end{stack}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{read\ specifier} \lit*{read} \synt{field\ or\ method}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{write\ specifier} \lit*{write} \synt{field\ or\ method}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{default\ specifier}
\begin{stack} 
\lit*{default} \begin{stack}\\ \synt{constant} \end{stack} \\
\lit*{nodefault}
\end{stack}
\end{mysyntdiag}
\begin{mysyntdiag}
\synt{field\ or\ method}
\begin{stack}
\synt{field\ identifier} \\
\synt{method\ identifier}
\end{stack}
\end{mysyntdiag}
\end{diagram}
