Как я могу сказать Bison, что я также ожидаю, что конфликты уменьшатся и уменьшатся? - PullRequest
3 голосов
/ 18 января 2010

Моя грамматика игрушек на C # теперь имеет первые конфликты уменьшения-уменьшения!Я так горжусь мной.

Мне кажется, что все в порядке (я отключил парсер GLR по этому случаю).Проблема в том, что, хотя я знаю, что директива %expect может отключить Bison в отношении конфликтов сдвига / уменьшения, я не могу найти эквивалент для конфликтов уменьшения / уменьшения.Так что я должен использовать, чтобы заставить его замолчать о моих 3 сменах / сокращениях и моих 2 сменах / уменьшениях?

1 Ответ

4 голосов
/ 18 января 2010

Из документации GNU Bison, найдено здесь

Для обычных анализаторов LALR (1), уменьшить / уменьшить конфликты больше серьезный, и должен быть устранен полностью. Бизон всегда будет отчитываться уменьшить / уменьшить конфликты для этих парсеры. С парсерами GLR, однако, оба вида конфликтов являются рутиной; иначе не было бы необходимости использовать анализ GLR. Следовательно, это также можно указать ожидаемое количество уменьшить / уменьшить конфликты в ГЛР парсеры, использующие объявление:

 %expect-rr n
...