演算子優先順位宣言%left
と%right
によって、
演算子の優先順位と結合規則を指定できます。
どちらの宣言も、優先順位と結合規則を指定したい演算子である、
トークンの並びからなります。
%left
宣言はすべての演算子を左結合的に、
%right
宣言はすべての演算子を右結合的に宣言します。
第3の選択肢は%nonassoc
宣言で、これで宣言した演算子が
続けて2回以上現れると、構文解析器が文法エラーを指摘します。
異なる演算子の相対的な優先順位は、それらが宣言される順序で決まります。
文法ファイルの中の最初の%left
宣言または%right
宣言で
宣言された演算子が、もっとも低い優先順位を持ちます。
後から宣言される演算子ほど、高い優先順位を持ちます。