gotos

slabel_statement:=
executable | NAME :>
sgoto_statement:=
executable | goto NAME ;
sifgoto:=
csyntax | for ( statement sexpr ; sassignexpr ) statement
csyntax | "while" ( sdollar_apply ) statement
csyntax | do scompound "until" sdollar_apply ;
csyntax | if ( sdollar_apply ) statement else statement
csyntax | if ( sdollar_apply ) statement
executable | if sexpr goto NAME ;
executable | if sexpr return ;
executable | if sexpr call sexpr ;
executable | if sexpr do statement* selse_clause done ;
executable | if sexpr do statement* done ;
executable | "whilst" sexpr do statement* done ;
executable | "until" sexpr do statement* done ;
executable | "forall" NAME in sexpr do statement* done ;
executable | "forall" NAME in sexpr "upto" sexpr do statement* done ;
executable | "forall" NAME in sexpr "downto" sexpr do statement* done ;
selif_clause:=
executable | elif sexpr do statement*
executable | elif sexpr return ;
executable | elif sexpr goto NAME ;
selif_clauses:=
executable | selif_clauses selif_clause
executable | selif_clause
selse_clause:=
executable | selif_clauses else statement*
executable | else statement*
executable | selif_clauses