Допустим, у меня есть эта грамматикаКак сделать эту грамматику LL (1)?
E -> T+Ex | F
T -> T*Fy | w
F -> E | z | ε
Теперь мне нужно сделать это LL (1). Я слежу за этими шагами, но решение, которое я придумал, кажется не совсем правильным. Кулак позволяет устранить е-продукций
E -> T+Ex | F | T+x
T -> T*Fy | w | T*y
F -> E | z
Теперь мы устранить циклы
E -> T+Ex | T+x | z
T -> T*Fy | w | T*y
F -> T+Ex | T+x | z
Нет, мы не будем ликвидировать непосредственную левую рекурсию
E -> T+Ex | T+x | z
T -> wT'
T' -> *FyT' | *yT' | ε
F -> T+Ex | T+x | z
Наконец мы заменим некоторые постановки RHS где произошло T
E -> wT'+Ex | wT'+x | z
T -> wT'
T' -> *FyT' | *yT' | ε
F -> wT'+Ex | wT'+x | z
Теперь это не похоже на LL (1) для меня, так как таблица анализа, сгенерированная этим, будет иметь несколько записей для нескольких терминалов. Что мне кажется недостающим?