|
| 1 | +\begin{alignat*}{9} |
| 2 | +&& \textit{for-init} && \quad ::= & \quad && \textit{local-variable-declaration} \ | \ \textit{statement-expression-list} && \\[1mm] |
| 3 | +&& \textit{for-update} && \quad ::= & \quad && \textit{statement-expression-list} && \\[1mm] |
| 4 | +&& \textit{while-statement} && \quad ::= & \quad && \textbf{\texttt{while (}} \textit{expression} \textbf{\texttt{)}} \ \textit{statement} && \\[1mm] |
| 5 | +&& \textit{do-statement} && \quad ::= & \quad && \textbf{\texttt{do}} \ \textit{statement} \ \textbf{\texttt{while (}} \ \textit{expression} \ \textbf{\texttt{) ;}}&& \\[1mm] |
| 6 | +&& \textit{statement-expression-list} && \quad ::= & \quad && \epsilon \ | \ \textit{statement-expression} \ (\textbf{\texttt{,}} \textit{statement-expression}) ... && \\[2mm] |
| 7 | +&& \textit{expression-statement} && \quad ::= & \quad && \textit{statement-expression} \ \textbf{\texttt{;}} && \\[1mm] |
| 8 | +&& \textit{statement-expression} && \quad ::= & \quad && \textit{assignment} \ | \ \textit{unary-expression} \ | \ \textit{method-invocation} && \\[2mm] |
| 9 | +&& \textit{assignment} && \quad ::= & \quad && \textit{left-hand-side} \ \textit{assignment-operator} \ \textit{expression} && \\[1mm] |
| 10 | +&& \textit{left-hand-side} && \quad ::= & \quad && \textit{expression-name} \ | \ \textit{field-access} \ | \ \textit{array-access} && \\[2mm] |
| 11 | +&& \textit{assignment-operator} && \quad ::= & \quad && \textbf{\texttt{=}} \ | \ \textbf{\texttt{+=}} \ | \ \textbf{\texttt{-=}} \ | \ \textbf{\texttt{*=}} \ | \ \textbf{\texttt{/=}} \ | \ \textbf{\texttt{\%=}} \ | \ \textbf{\texttt{\&=}} \ | \ \textbf{\texttt{\string^=}} \ | \ \textbf{\texttt{|=}} \ | \ \textbf{\texttt{<}}\textbf{\texttt{<=}} \ | \ \textbf{\texttt{>}}\textbf{\texttt{>=}} \ | \ \textbf{\texttt{>}}\textbf{\texttt{>}}\textbf{\texttt{>=}} && \\[1mm] |
| 12 | +&& \textit{expressions} && \quad ::= & \quad && \epsilon \ | \ \textit{expression} \ (\textbf{\texttt{,}}\textit{expression}) ...&& \\ |
| 13 | +&& \textit{expression} && \quad ::= & \quad && \textit{assignment} && \\ |
| 14 | +&& && | & \quad && \textit{non-assignment-expression} && \\ |
| 15 | +&& \textit{non-assignment-expression} && \quad ::= & \quad && \textit{unary-expression} && \\ |
| 16 | +&& && | & \quad && \textit{binary-expression} && \\ |
| 17 | +&& && | & \quad && \textit{ternary-expression} && \\ |
| 18 | +&& && | & \quad && \textit{primary} && \\ |
| 19 | +&& && | & \quad && \textit{expression-name} && \\ |
| 20 | +&& \textit{primary} && \quad ::= & \quad && \textit{literal} && \\ |
| 21 | +&& && | & \quad && \textit{field-access} && \\ |
| 22 | +&& && | & \quad && \textit{array-access} && \\ |
| 23 | +&& && | & \quad && \textit{method-invocation} && \\ |
| 24 | +&& && | & \quad && \textit{class-instance-creation-expression} && \\[2mm] |
| 25 | +&& \textit{unary-expression} && \quad ::= & \quad && \textit{unary-operator} \ \textit{expression} && \\ |
| 26 | +&& && | & \quad && \textit{expression} \ \textit{increment-decrement-operator} && \\[1mm] |
| 27 | +&& && | & \quad && \textit{increment-decrement-operator} \ \textit{expression} && \\[1mm] |
| 28 | +&& \textit{unary-operator} && \quad ::= & \quad && \textbf{\texttt{+}} \ | \ \textbf{\texttt{-}} \ | \ \textbf{\texttt{!}} \ | \ \textbf{\texttt{\textasciitilde}} && \\[1mm] |
| 29 | +&& \textit{increment-decrement-operator} && \quad ::= & \quad && \textbf{\texttt{++}} \ | \ \textbf{\texttt{-}}\textbf{\texttt{-}} && \\[1mm] |
| 30 | +&& \textit{binary-expression} && \quad ::= & \quad && \textit{expression} \ \textit{binary-operator} \ \textit{expression} && \\[1mm] |
| 31 | +&& \textit{binary-operator} && \quad ::= & \quad && \textbf{\texttt{+}} \ | \ \textbf{\texttt{-}} \ | \ \textbf{\texttt{*}} \ | \ \textbf{\texttt{/}} \ | \ \textbf{\texttt{\%}} \ | \ \textbf{\texttt{\&}} \ | \ \textbf{\texttt{\string^}} \ | \ \textbf{\texttt{|}} \ | \ \textbf{\texttt{<}}\textbf{\texttt{<}} \ | \ \textbf{\texttt{>}}\textbf{\texttt{>}} \ | \ \textbf{\texttt{\&\&}} \ | \ \textbf{\texttt{||}} \ | \ \textbf{\texttt{==}} \ | \ \textbf{\texttt{!=}} \ | \ \textbf{\texttt{<=}} \ | \ \textbf{\texttt{>=}} && \\ |
| 32 | +&& && | & \quad && \textbf{\texttt{<}} \ | \ \textbf{\texttt{>}} \ | \ \textbf{\texttt{>}}\textbf{\texttt{>}}\textbf{\texttt{>}} && \\[1mm] |
| 33 | +&& \textit{ternary-expression} && \quad ::= & \quad && \textit{expression} \ \textbf{\texttt{?}} \ \textit{expression} \ \textbf{\texttt{:}} \ \textit{non-assignment-expression} && \\[1mm] |
| 34 | +&& \textit{field-access} && \quad ::= & \quad && (\textbf{\texttt{this}} \ | \ \textit{expression-name}) |
| 35 | + \textbf{\texttt{.}} |
| 36 | + \textit{identifier} && \\[2mm] |
| 37 | +&& \textit{array-access} && \quad ::= & \quad && \textit{expression} \ [ \ \textit{expression} \ ] && \\[2mm] |
| 38 | +&& \textit{method-invocation} && \quad ::= & \quad && \textit{expression-name} \ \textbf{\texttt{(}} \textit{expression} ... \textbf{\texttt{)}} && \\ |
| 39 | +&& && | & \quad && \textbf{\texttt{this}} \textbf{\texttt{.}} \textit{identifier} \ \textbf{\texttt{(}} \textit{expression} ... \textbf{\texttt{)}} && \\ |
| 40 | +&& \textit{class-instance-creation-expression} && \quad ::= & \quad && \textbf{\texttt{new}} \ \textit{identifier} \ \textbf{\texttt{(}} \textit{expression} ... \textbf{\texttt{)}} && \\[2mm] |
| 41 | +&& \textit{expression-name} && \quad ::= & \quad && \textit{identifier} \ | \ \textit{expression-name} \textbf{\texttt{.}} \textit{identifier} && \\[1mm] |
| 42 | +&& \textit{type-name} && \quad ::= & \quad && \textit{identifier} \ | \ \textit{package-name} \textbf{\texttt{.}} \textit{identifier} && \\[1mm] |
| 43 | +&& \textit{package-name} && \quad ::= & \quad && \textit{identifier} \ | \ \textit{package-name} \textbf{\texttt{.}} \textit{identifier} && \\[1mm] |
| 44 | +&& \textit{literal} && \quad ::= & \quad && number \ | \ string \ | \ \textbf{\texttt{true}} \ | \ \textbf{\texttt{false}} \ | \ \textbf{\texttt{null}}&& \\[2mm] |
| 45 | +\end{alignat*} |
0 commit comments