title: Difference to remove left recursion for + and - or * or /?
body: <p>To remove the left recursion</p>
  
  <pre><code>E-&gt;E+T|E-T|T
  T-&gt;T*F|T/F|F
  </code></pre>
  
  <p>for + and *, I am sure it should be</p>
  
  <pre><code>E-&gt;TE'
  E'-&gt;+TE'|(e) (e) is empty string
  T-&gt;FT'
  T'-&gt;*FT'|(e)
  </code></pre>
  
  <p>but for - or /, I am not sure how to remove left recursion, and I came up with the following one, is it right for - and /? Take an example, for plus, a+b = b+a, but for minus, a - b != b -a. So if we use the following right recursive, do we got the problem like a-b?  </p>
  
  <pre><code>E-&gt;TE'
  E'-&gt;+TE'|-TE'|(e) 
  T-&gt;FT'
  T'-&gt;*FT'|/FT'|(e)
  </code></pre>
  
  <p>Anyone know compiler explains to me?Thanks in advance.</p>