Previous: Precedence Examples, Up: Precedence


5.3.4 優先順位が働く仕組み

優先順位宣言の最初の働きは、宣言された終端記号への優先順位の割り当てです。 第2の働きは、規則に含まれる最後の終端記号が優先順位を示すように、 ある規則に優先順位を割り当てることです (規則に対して、明示的に優先順位を指定することも可能です。 See Context-Dependent Precedence)。

最後に、衝突の解決は、問題になっている規則の優先順位と、 先読みトークンの優先順位の比較によって行われます。 もし、先読みトークンの優先順位が高ければ、還元されます。 もし、規則の優先順位が高ければ、シフトされます。 もし、優先順位が同じならば、その優先順位での結合規則によって決定されます。 ‘-v’オプションを付けてBisonを実行し、冗長な出力ファイルを得ると、 どのように衝突が解決されているかがわかります (see Invoking Bison)。

すべての規則とトークンが優先順位を持っているとはかぎりません。 もし、規則と先読みトークンが優先順位を持っていなければ、 シフトが行われます。