Я действительно не думаю, что вы можете оставить свой выход из проблемы. Я подозреваю (но не доказал), что язык, сгенерированный из condition
, не имеет грамматики LL (1).
В любом случае, давайте попробуем левый факторинг. Давайте поработаем над более простой - но похожей - грамматикой, которая содержит основы вашей проблемы. Клеммы: number
, =
, [
и ]
.
C --> EXP = EXP | [ C ]
EXP --> number | [ EXP ]
Теперь я не собираюсь делать больше, потому что вы должны делать это самостоятельно. Я вполне уверен, что это домашнее задание, поэтому, если я сделаю это здесь, я лишу вас образовательной возможности делать это самостоятельно, не говоря уже о веселье.
Первым шагом является расширение первого вхождения EXP
в C
. Не останавливайтесь, пока ваша грамматика не станет LL (1) или вы не уверены, что это бесполезное задание.