В грамматике файла .y (yacc - bison) я определил следующие правила:
C : E | D | F | A
A : B | B '[' C ']' ;
(это что-то вроде B с необязательным [C]), когда я компилирую файл .y соответствующим образом, используя правильный файл лексера, я получаю следующий конфликт сдвига \ уменьшения:
Состояние 48
74 A: B.
75 | Б. '[' C ']'
'[' shift и перейти в состояние 91
'[' [уменьшить с помощью правила 74 (A)]
$ по умолчанию уменьшить с помощью правила 74 (A)
Моя проблема заключается в следующем, если у него есть предшественник '[' Я хочу, чтобы он сдвигался, а не уменьшался. Проблема в том, что я не могу найти решение этой ошибки при поиске часов в документации. Как я могу это исправить (просьба указать конкретный код).