Yacc / Bison, minimalizuj ilość, grupując ops matematyki
Patrzę tutaj na źródło calchttp://epaperpress.com/lexandyacc/
Widzę te linie w 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); }
Czy istnieje sposób, aby je pogrupować? więc zamiast tego mogę napisać coś takiego jak poniżej?
| expr mathOp expr { $ = opr(mathOp, 2, $1, $3); }
| expr cmpOp expr { $ = opr(cmpOp, 2, $1, $3); }
UWAGA: Używam żubra.