トークンの宣言とトークンの優先順位および結合規則の指定をまとめて行いたいならば、
%left
、%right
、%nonassoc
のどれかを使います。
これらは、優先順位宣言(precedence declarations)と呼ばれます。
演算子の優先順位の詳細については、
See Operator Precedence。
優先順位宣言の構文は、%token
を使う宣言の構文と同じです。
%left symbols...
次のようにも書けます。
%left <type> symbols...
これらの宣言は、%token
を使う宣言が目的とする
すべての機能を持っています。
それに加えて、次のように結合性と、すべてのsymbolsについての優先順位を指定します。
%left
は、左結合性、つまりxとyが先に結合されることを
指定します。%right
は、右結合性、つまり、
yとzが先に結合されることを指定します。
%nonassoc
は、無結合性を指定し、その場合、
‘x op y op z’は
構文エラーとみなされます。