1234567root ::= (expr "=" ws term "\n")+expr ::= term ([-+*/] term)*term ::= ident | num | "(" ws expr ")" wsident ::= [a-z] [a-z0-9_]* wsnum ::= [0-9]+ wsws ::= [ \t\n]*
1234567root ::= (expr "=" ws term "\n")+expr ::= term ([-+*/] term)*term ::= ident | num | "(" ws expr ")" wsident ::= [a-z] [a-z0-9_]* wsnum ::= [0-9]+ wsws ::= [ \t\n]*