мне было дано задание, чтобы преобразовать эту грамматику LL (1)Почему это не грамматика LL (1)
E → E+E | E-E | E*E | E/E | E^E | -E | (E)| id | num
Так что для первого шага я устранен двусмысленность и получил это:
E → E+T | E-T | T
T → T*P | T/P | P
P → P^F | F
F → id | num | -E | (E)
и после этого я устранили левую рекурсию и получил это:
E → TE'
E' → +TE' | -TE' | ɛ
T → PT'
T' → *PT' | /PT' | ɛ
P → FP'
P' → ^FP' | ɛ
F → id | num | -E | (E)
Когда я это в JFLAP и нажмите кнопку «построить LL (1) синтаксический table 'Я получаю предупреждение, что грамматика выше не LL (1).
Почему эта грамматика не LL (1), и что мне нужно изменить, чтобы быть LL (1).
Или 'F → id | num | -F | (E) ', если вы не хотите вводить еще один нетерминал –
Спасибо за ответ. Я представляю новый терминальный символ, как вы, и он работает сейчас. – clzola