<expression> ::= <term> { ( '+' | '-' ) <term> } <term> ::= <factor> { ( '*' | '/' ) <factor> } <factor> ::= [ '-' ] ( <number> | '(' <expression> ')' }