Yacc / Bison, minimizar quantidade agrupando operações de matemática
Eu estou olhando a fonte do calc aquihttp://epaperpress.com/lexandyacc/
Eu vejo essas linhas em calc.y
| expr '+' expr { $ = opr('+', 2, $1, $3); }
| expr '-' expr { $ = opr('-', 2, $1, $3); }
| expr '*' expr { $ = opr('*', 2, $1, $3); }
| expr '/' expr { $ = opr('/', 2, $1, $3); }
| expr '<' expr { $ = opr('<', 2, $1, $3); }
| expr '>' expr { $ = opr('>', 2, $1, $3); }
Existe uma maneira de agrupá-los? então eu posso escrever algo como o abaixo?
| expr mathOp expr { $ = opr(mathOp, 2, $1, $3); }
| expr cmpOp expr { $ = opr(cmpOp, 2, $1, $3); }
NOTA: Estou usando o bison.