Prev: Precedence Examples Up: Precedence
How Precedence Works
The first effect of the precedence declarations is to assign
precedence levels to the terminal symbols declared. The second effect
is to assign precedence levels to certain rules: each rule gets its
precedence from the last terminal symbol mentioned in the components.
(You can also specify explicitly the precedence of a rule. *Note
Context-Dependent Precedence: Contextual Precedence.)
Finally, the resolution of conflicts works by comparing the
precedence of the rule being considered with that of the look-ahead
token. If the token's precedence is higher, the choice is to shift.
If the rule's precedence is higher, the choice is to reduce. If they
have equal precedence, the choice is made based on the associativity of
that precedence level. The verbose output file made by `-v' (*note
Invoking Bison: Invocation.) says how each conflict was resolved.
Not all rules and not all tokens have precedence. If either the
rule or the look-ahead token has no precedence, then the default is to
automatically generated by info2www