Ошибка, которую вы получаете:
Уменьшить-уменьшить конфликт
'?' может следовать более чем одному выполненному правилу. Ошибка Reduce-Reduce возникает, когда грамматика позволяет одновременно сокращать два или более правил для одного и того же токена. Грамматика неоднозначна. Пожалуйста, смотрите документацию для получения дополнительной информации.
Это говорит о том, что после оценки некоторых токенов он не может решить, будет ли он просто читать <bool-val>
или читать <rval>
.
Чтобы иметь больше смысла, ваша грамматика должна конкретно сказать, что такое <bool-val>
, а затем сказать, что <rval>
- это <bool-val>
или другие вещи.
Вот еще один пример ошибки уменьшения / уменьшения , а - это документация GOLD . Золото будет пытаться скрыть (т. Е. Выдать предупреждение вместо ошибки) о сдвиге / уменьшении, но оно рассматривает уменьшение / уменьшение как ошибку.
Я не совсем понимаю это; Я новичок в разборе. Может быть, вы правы насчет этого неожиданного поведения? Тем не менее, список рассылки GOLD, похоже, в настоящее время недоступен, возможно, потому, что он модерируется, а Девин не работает в течение нескольких месяцев.