// <expr> ::= <term> (('+' | '-') <term>)* // <term> ::= <factor> (('*' | '/') <factor>)* // <factor> ::= ('+' | '-')? <primary> // <primary> ::= <number> | <var> | '(' <expr> ')'