Yacc / Bison, minimiza la cantidad al agrupar operaciones matemáticas
Estoy mirando la fuente de calc aquíhttp://epaperpress.com/lexandyacc/
Veo estas lineas en 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); }
¿Hay alguna forma de agruparlos? así que puedo escribir algo como el siguiente en su lugar?
| expr mathOp expr { $ = opr(mathOp, 2, $1, $3); }
| expr cmpOp expr { $ = opr(cmpOp, 2, $1, $3); }
NOTA: Estoy usando bisonte.