Уменьшить-уменьшить ошибку: .. может следовать более чем одному выполненному правилу

Я использую Gold Parser v5.2.

Я попытался немного изменить движок Object Pascal (от Роба ван ден Бринка), чтобы он мог анализировать файлы.dpr и.dpk, а также файлы.pas.

Файл garmmar (названный D7Grammar.grm, в файле, загруженном по ссылке выше) проходит анализ Голда [Project | Анализировать грамматику] (с изменениями ниже), но не с "Project | Создание таблиц LALR Parse '.

Изменения в файле 'D7Grammar.grm':

  1. Найдите определение для FloatLiteral и перепишите его так:

    FloatLiteral = {Digit} + '.' + {Digit} +
    
  2. Найдите "" и перепишите его так:

    <UsesClause> ::= USES <UnitList> ';'
     | SynError
    
  3. Добавьте следующие правила

    <UnitRef> ::= <RefID> !see http://stackru.com/questions/35871440/
      | <RefID> IN 'StringLiteral'
      | <RefID> IN 'StringLiteral' Comment Start <RefID> Comment End
    
    <UnitList> ::= <UnitList> ',' <UnitRef>
      | <UnitRef>
    

Сделав это, когда я выпускаю Project | Создание таблиц LALR Parse 'в Gold Parser, я получаю следующую ошибку.

')' может следовать нескольким законченным правилам. Ошибка Reduce-Reduce возникает, когда грамматика допускает одновременное сокращение двух или более правил для одного и того же токена. Грамматика неоднозначна. Пожалуйста, смотрите документацию для получения дополнительной информации.

Дальнейшее нажатие приводит к отображению таблицы, показывающей / намекающей на то, что "FieldDesignator" и "EnumId" являются виновниками, а также некоторую дополнительную информацию. Я понятия не имею, что они имеют в виду.

Я предполагаю, что эта новая неоднозначность была просмотрена более старыми версиями Gold (поскольку у D7Grammar.grm тогда не было проблем), но была обнаружена новой версией.

Проблема в том, что кроме пробных ошибок (в основном копирование / вставка из случайных идей или предложений других людей) я бесполезен с правилами грамматики.

Следовательно, само собой разумеется, помощь очень нужна, чтобы обойти эту проблему.

0 ответов

Другие вопросы по тегам