Допустим, я бы использовал приведенную ниже грамматику для компилятора.
S -> a | aB
если я выполню на нем левый факторинг, это будет похоже на (e - эпсилон)
S -> aC
C -> B | e
затем я хочу удалить эпсилон, который в конечном итоге выглядит как
S -> a | aC
C -> B
обратите внимание, что похоже, что мне снова нужно выполнить левое разложение, и при этом бесконечное левое разложение и удаление эпсилон туда и обратно. Я делаю что-то неправильно ??
Требуется ли удалить как левый факторинг, так и эпсилон в грамматике для компилятора?