The grammar rules for statements are:
stmt:: lhstup : type ;| lhs [:=|<-] expr ;
| { block }
| if ( expr ) stmt
| case { cblk }
| switch ( tuple ) { cblk }
| [for|chain] ( atom = expr ; expr ; atom = expr ) stmt
lhs:: id
| next ( id )
| ( lhstup )
lhstup::
| lhs
| lhstup lhs
block:: stmt
| block stmt
cblk:: expr : stmt
| cblk expr : stmt