Bison - Operator Vorrang
Ich habe eine Frage zur Priorität und Assoziativität von Operatoren in Bison.
In jedem Beispiel sehe ich die Produktionen wieexpr 'op' expr
Beispiel: http: //dinosaur.compilertools.net/bison/bison_8.html
Aber wenn ich Bison benutzen würde%left
und andere Assoziativitätswerkzeuge, und ich würde Grammatik verwenden wie:
expr| expr binop expr
| expr relop expr
| expr logical_op expr
und
binop: '+'
| '-'
| '*'
| '/'
;
relop: EE
| NE
| LE
| '<'
| GE
| '>'
;
logical_op: AND
| OR
;
Würden Assoziativitäts- und Vorrangregeln angewendet?
Oder muss ich explizit schreiben?expr 'op' expr
für jeden Betreiber?
Ich frage, denn wenn ich versuche, die Grammatik wie die, die ich gepostet habe, zu verwenden, erhalte ich Warnungen vor Konflikten.
Aber wenn von Hand schreibe ich gerne Produktionenexpr '+' expr
Ich bekomme keine Warnungen.