2015-05-04 3 views
1

Я хочу решить эту грамматику.
S-> SS +
S-> SS *
S-> аКак решить эту грамматику через SLR?

Я хочу построить зеркальные наборы элементов и синтаксического анализа таблицы с действием и Гото. Может ли этот грамматический синтаксический анализ без исключения левой рекурсии. Является ли это Грамматика SLR.

+0

Нет, вам нужно устранить левую рекурсию! –

ответ

2
  1. Нет, эта грамматика не является зеркальной. Это неоднозначно.

  2. Левая рекурсия не является проблемой для парсеров LR. Исключение левой рекурсии необходимо только для парсеров LL.

+0

Как можно сказать, что эта грамматика SLR? Есть ли способ узнать? –

+0

@himanshusaini: постройте таблицы slr и обратите внимание, что конфликтов нет. – rici

+0

Да, в таблице разбора есть конфликт. Так что это не SLR Grammar? Есть ли способ найти грамматику SLR или нет, не делая синтаксический анализ дерева. –

0

Я не совсем уверен в этом, но я думаю, что эта грамматика на самом деле является зеркальной (1). Я построил вручную таблицу SLR (1), и я получил один без конфликтов (добавив 0-переход от S '(новый стартовый символ) -> S).

Может ли кто-нибудь дать предложение, которое может быть получено двумя разными способами из этой грамматики? Я был в состоянии получить парсер для этого в Bison без предупреждения. Вы уверены, что это неоднозначно?

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