Yacc / Bison, минимизируйте количество, группируя математические операции

Я смотрю на источник Calc здесьhttp://epaperpress.com/lexandyacc/

Я вижу тезисы в 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 '', 2, $1, $3); }

Есть ли способ сгруппировать их? так что я могу написать что-то вроде ниже?

| expr mathOp expr         { $ = opr(mathOp, 2, $1, $3); }
| expr cmpOp  expr         { $ = opr(cmpOp, 2, $1, $3); }

ПРИМЕЧАНИЕ: я использую бизона.

Ответы на вопрос(2)

Ваш ответ на вопрос