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