statement -> assignment | cond | loop
assignment -> id := expr
cond -> if boolexpr then statement fi
| if boolexpr then statement else statement fi
loop -> while boolexpr do statement od
expr -> boolexpr | numexpr
boolexpr -> numexpr cop numexpr
numexpr -> numexpr + term | term
term -> term * factor | factor
factor -> id | cons | (numexpr)