single = "(" expr ")" | int fac1 = applier "(" int ")" | single applier = expr term = fac | fac (MUL | DIV) fac expr = term (ADD | SUB) term