2009-12-05 1 views
1

У меня есть ситуация, когда есть правило со смещением/уменьшением конфликта, которое я понимаю. Я хочу, чтобы правило никогда не уменьшалось до последнего момента (конец строки). Поэтому я хотел бы сказать, что всегда меняются. Как мне это сделать?Передача Bison/Yacc для переключения и не уменьшать для разрешения конфликта

ответ

2

Как отмечает Крэйг, когда есть конфликт с уменьшением смены, бизон делает сдвиг. Если предупреждение об этом вас беспокоит, вы можете использовать директиву bi ожидать от bison, чтобы указать ожидаемое количество конфликтов смены сдвига. Таким образом, это будет тихо, если это единственный конфликт, но если есть дополнительные конфликты, предупреждение вернется.

+0

Я предпочитаю альтернативу, но этот ответ избавляется от сообщений. Я бы хотел переписать раздел, чтобы он знал, что нужно сдвигать, а не уменьшать, но я не могу обернуть голову тем, как я могу это сделать. (может быть, это не стоит того банкомата. Посмотрю, когда я доберусь до конца). btw упоминание% expect-rr для скрытия конфликтов сокращения/сокращения – 2009-12-08 08:28:18

0

По умолчанию Зубр будет смещаться при конфликте сдвига/уменьшения. Вы можете использовать объявления приоритета для изменения поведения.

+0

Я слышал это раньше, но мне все еще не нравится видеть предупреждение или ошибку о сдвиге/уменьшении или уменьшении/уменьшении. ATM отключен, потому что его синтаксический сахар. – 2009-12-05 08:50:55

Смежные вопросы