Да, есть общая процедура, см., Например, википедия .
E = TE'
E'= (e) | +TE'
T = FT'
T'= (e) | *FT'
F = a | b | c
Следует отметить, что это изменяет ассоциативность +
и *
слева направо. То есть, если раньше a + b + c
был проанализирован как (a + b) + c
, теперь он проанализирован как a + (b + c)
.
Это не проблема сложения и умножения, но, например, проблема вычитания и деления.
Статья в Википедии содержит более подробную информацию о процедуре удаления левой рекурсии и ее тонкостях.