Block:
{
BlockStatements}
BlockStatements:
BlockStatement
BlockStatements BlockStatement
BlockStatement:
LocalVariableDeclarationStatement
Statement
LocalVariableDeclarationStatement:
LocalVariableDeclaration;
LocalVariableDeclaration:
Type VariableDeclarators
Statement:
StatementWithoutTrailingSubstatement
LabeledStatement
IfThenStatement
IfThenElseStatement
WhileStatement
ForStatement
StatementNoShortIf:
StatementWithoutTrailingSubstatement
LabeledStatementNoShortIf
IfThenElseStatementNoShortIf
WhileStatementNoShortIf
ForStatementNoShortIf
StatementWithoutTrailingSubstatement:
Block
EmptyStatement
ExpressionStatement
SwitchStatement
DoStatement
BreakStatement
ContinueStatement
ReturnStatement
SynchronizedStatement
ThrowStatement
TryStatement
EmptyStatement:
;
LabeledStatement:
Identifier:
Statement
LabeledStatementNoShortIf:
Identifier:
StatementNoShortIf
ExpressionStatement:
StatementExpression;
StatementExpression:
Assignment
PreIncrementExpression
PreDecrementExpression
PostIncrementExpression
PostDecrementExpression
MethodInvocation
ClassInstanceCreationExpression
IfThenStatement:
if
(
Expression)
Statement
IfThenElseStatement:
if
(
Expression)
StatementNoShortIfelse
Statement
IfThenElseStatementNoShortIf:
if
(
Expression)
StatementNoShortIfelse
StatementNoShortIf
SwitchStatement:
switch
(
Expression)
SwitchBlock
SwitchBlock:
{
SwitchBlockStatementGroups SwitchLabels}
SwitchBlockStatementGroups:
SwitchBlockStatementGroup
SwitchBlockStatementGroups SwitchBlockStatementGroup
SwitchBlockStatementGroup:
SwitchLabels BlockStatements
SwitchLabels:
SwitchLabel
SwitchLabels SwitchLabel
SwitchLabel:
case
ConstantExpression:
default
:
WhileStatement:
while
(
Expression)
Statement
WhileStatementNoShortIf:
while
(
Expression)
StatementNoShortIf
DoStatement:
do
Statementwhile
(
Expression)
;
ForStatement:
for
(
ForInit;
Expression;
ForUpdate)
Statement
ForStatementNoShortIf:
for
(
ForInit;
Expression;
ForUpdate)
StatementNoShortIf
ForInit:
StatementExpressionList
LocalVariableDeclaration
ForUpdate:
StatementExpressionList
StatementExpressionList:
StatementExpression
StatementExpressionList,
StatementExpression
BreakStatement:
break
Identifier;
ContinueStatement:
continue
Identifier;
ReturnStatement:
return
Expression;
ThrowStatement:
throw
Expression;
SynchronizedStatement:
synchronized
(
Expression)
Block
TryStatement:
try
Block Catches
try
Block Catches Finally
Catches:
CatchClause
Catches CatchClause
CatchClause:
catch
(
FormalParameter)
Block
Finally:
finally
Block