Statements and Control Structures

Simple Statements

The Empty Statement

empty_stmt ::=  ";"

Expression Statement

expr_stmt ::=  expression ";"

Assignment Statement

assign_stmt ::=  ident "=" (ident "=")* expression ";"

Return Statement

return_stmt ::=  "return" [expression] ["if" expression] ";"

Compound Statements

Block Statement

block_stmt: “{” (statement)* “}”

With Statement

Conditional Statements

If Statement

if_stmt ::=  "if" expression statement [ "else" statement ]

Case Statement

Looping Statements

While Statement

while_stmt ::=  "while" expression statement

Do / While Statement

For Statement

For .. In Statement

Break Statement

break_stmt ::=  "break" [if expression] ";"

Continue Statement

continue_stmt ::=  "continue" [if expression] ";"

Exception Handling Statements

Throw Statement

throw_stmt ::=  "throw" [ expression ] ;

Try/Catch Statement

try_stmt  ::=  try_stmt1 | try_stmt2
try_stmt1 ::=  "try" statement
               ("except" [ident ":" type] statement)+
               ["else" statement]
               ["finally" statement]
try_stmt2 ::=  "try" statement
               "finally" statement

Compilation Directives

Compilation directives are statements that don’t generate executable code or data directly, but influence how subsequent code is compiled.

Import Statement