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