Grammar of C++ Statements

statement:

labeled-statement
expression-statement
compound-statement
selection-statement
iteration-statement
jump-statement
declaration-statement
asm-statement
try-except-statement
try-finally-statement

labeled-statement:

identifier : statement
case constant-expression : statement
default  : statement

expression-statement:

expressionopt ;

compound-statement:

{ statement-listopt }

statement-list:

statement
statement-list  statement

selection-statement:

if  (  expression ) statement
if  ( expression  ) statement else statement
switch  ( expression ) statement

iteration-statement:

while  ( expression ) statement
do statement while  ( expression ) ;
for  ( for-init-statement  expressionopt ; expressionopt ) statement

for-init-statement:

expression-statement
declaration-statement

jump-statement:

break  ;
continue  ;
return  expressionopt ;
goto identifier ;

declaration-statement:

declaration

try-except-statement:

__try compound-statement
__except ( expression ) compound-statement

try-finally-statement:

__try compound-statement
__finally ( expression ) compound-statement