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