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