Left recursion
 Grammar tests > Left recursion   Another possible error of a grammar is the left recursion. The following rule is the simplest example of a left recursion:   a = a | B   To test this rule leads to an infinite regress. To test a, requires to test a before b and so on. Left recursion is not permitted in TETRA; but there is no automatic test for left recursion.   Fortunately left recursion is avoidable. The left recursive rule : a = a C | B   can be rewritten. Clearly a has to begin with B. On B C can follow and on B C another C can follow. So the formal result is:   a = B C *   Applied to the first example, C is an empty symbol, with the result:   a = B     Remark: Productions of the well-known parser generator Yacc frequently are left recursive. For Yacc this is no problem, because it doesn't uses a top down analysis like TETRA, but a bottom up parser. (Because of this Yacc can't manage right recursion.) To translate a Yacc grammar into a TETRA grammar, the rule above helps.