Я пока не смог найти на это ответ. Существуют ли контекстно-независимые и недвусмысленные грамматики, которые нельзя преобразовать в LL(1)?
Я нашел одну продукцию, которую я не мог понять, как преобразовать в LL(1): продукцию parameter-type-list
в C99:
parameter-type-list:
parameter-list
parameter-list , ...
Является ли это примером грамматики LR(k), у которой нет эквивалента LL(1), или я делаю что-то не так?
редактировать: я скопировал неправильное имя, я хотел скопировать объявление параметра:
parameter-declaration:
declaration-specifiers declarator
declaration-specifiers abstract-declarator(opt)
проблема заключается в том, что декларатор и абстрактный декларатор имеют ( в своем первом наборе, но также остаются рекурсивными.
canonical-lr
принимает его без конфликтов. - person   schedule 18.07.2015S ::= a S b | a S | \epsilon
- person   schedule 18.07.2015