Parse Trees and Operator Precedence
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 +.