Здравствуйте, netch80, Вы писали:
N>А хорошую подсказку здесь дал Xeor: пример ac#b разбирается двумя возможными путями. Это в общем-то значит, что исходная грамматика некорректна, и пытаться выкрутить это задавливанием конфликтов бессмысленно — в лучшем случае получите reduce/reduce conflict и он откажет собираться. Исправь на корректную.
Поскольку контекста из одного символа недостаточно для спуска туда или сюда — это не LL(1)-грамматика (да?)
Если мы сделаем фокус, и склеим токены #b и #e на стадии лексера, то всё будет хорошо.
Может быть, ещё какие-то фокусы возможны — как, например, разруливается if-then/if-then-else.
Может быть, нужно ввести приоритеты...