Хм. А вот это уже на редкость неоднозначная грамматика.

даёт бесконечное число деревьев вывода пустой строки (да и любой другой).
Вообще, я, кажется, несколько подзабыл, либо полностью избавиться таки не удастся, либо не полное избавление от правил достигается. Если приведённые правила — это вся грамматика, то уж хоть одно

останется, поскольку иначе пустой строки не получить. Напомните название алгоритма либо дайте ссылку, пожалуйста. Гляну поконкретнее.