1root  ::= (expr "=" ws term "\n")+
2expr  ::= term ([-+*/] term)*
3term  ::= ident | num | "(" ws expr ")" ws
4ident ::= [a-z] [a-z0-9_]* ws
5num   ::= [0-9]+ ws
6ws    ::= [ \t\n]*