Parse Trees and Operator Precedence I have the following basic BNF grammar:

&lt;A&gt;   --&gt;  &lt;id&gt;  = &lt;E&gt;
&lt;id&gt;  --&gt;  A | B | C | D | F
&lt;E&gt; --&gt; &lt;E&gt; + &lt;T&gt; | &lt;T&gt;
&lt;T&gt; --&gt; &lt;T&gt; * &lt;F&gt; | &lt;F&gt;
&lt;F&gt; --&gt; &lt;E&gt; | &lt;id&gt;


Operator (*) should have higher precedence over (+).
However, see this statement:

A = A + B + C + D * F


The leftmost derivation (and parse tree) indicate the opposite! i.e., (+) has higher precedence than (*) since it will show up lower in the parse tree!

What am I missing here?
Due to the path 

&lt;E&gt;  -&gt;  &lt;T&gt;  -&gt;  &lt;F&gt;  -&gt;  &lt;id&gt;,


you can completely circumvent the "check" for whether there are *.

Think about it in a bottom up manner: only if there's no * nearby can you parse a +.