statement -> assignemnt | const | loop assignement -> id := expr const -> if booexpr then statemnt fi | if boolexpr then statement else statement fi loop -> while boolexpr do statement od expr -> boolexpr | numexpr boolexpr -> numexpr cop numexpr numexpr -> numexpr + ter | term term -> term * factor | factor factor -> id | const | (numexpr)