Bison - precedencia del operador
Tengo una pregunta sobre la precedencia del operador y la asociatividad en Bison.
En cada ejemplo veo las producciones son comoexpr 'op' expr
, por ejemplo: http: //dinosaur.compilertools.net/bison/bison_8.html
Pero si quisiera usar bisonte%left
y otras herramientas de asociatividad, y usaría gramática como:
expr| expr binop expr
| expr relop expr
| expr logical_op expr
y
binop: '+'
| '-'
| '*'
| '/'
;
relop: EE
| NE
| LE
| '<'
| GE
| '>'
;
logical_op: AND
| OR
;
¿Se usarían las reglas de asociatividad y precedencia?
O necesito escribir explícitoexpr 'op' expr
para cada operador?
Estoy preguntando, porque cuando trato de usar la gramática como la que publiqué, recibo advertencias sobre conflictos.
Pero cuando a mano escribo producciones comoexpr '+' expr
No estoy recibiendo ninguna advertencia.