single = "(" expr ")" | int args = single , args | single callees = "(" args ")" | "(" ")" facAux = callees facAux | callees single facAux | single fac = single facAux | single term = fac | fac (MUL | DIV) fac expr = term (ADD | SUB) term