Описание тега lr-grammar

Грамматики LR(k) - это грамматики, которые можно анализировать снизу вверх слева направо, создавая самый правый вывод, используя k токенов просмотра вперед. Парсеры LR(k) являются одними из самых мощных доступных детерминированных анализаторов, но часто слишком велики для использования на практике.
1 ответ

SLR (1) путаница

S → ( S ) S | . на основании определения 0, 2 и 4 имеют конфликт сдвиг / уменьшение. Следующий набор S - это ")". Для SLR(1) в состоянии 2 "(" не входит в следующий набор S, но почему это SLR (1)? Можете ли вы также объяснить правило конфликта сдви…
10 мар '16 в 20:13
1 ответ

Связь между LR(0), LL(0), LALR(1) и т. Д.?

Я действительно изо всех сил пытаюсь понять отношения между: LR (0) LL(0) LALR (1) SLR (1) LR (1) LL (1) Я почти уверен, что LALR (1) и SLR (1) являются подмножествами LR (1), но я заблудился о других. Они все эксклюзивные? Является ли LL(0) подмнож…
1 ответ

Существует ли общий способ преобразования однозначной контекстно-свободной грамматики в грамматику LALR(1)?

Я пытаюсь создать парсер LALR(1) для следующей грамматики и нахожу некоторые сдвиги / сокращения конфликтов. S := expr expr := lval | ID '[' expr ']' OF expr lval := ID | lval '[' expr ']' Поэтому синтаксический анализатор не может правильно проанал…
2 ответа

Решение уменьшить / уменьшить конфликты

У нас есть грамматика CFG, и мы строим таблицу разбора LR(1). Мы видим, что в одной ячейке таблицы синтаксического анализа есть конфликт "уменьшить - уменьшить". Можно ли решить этот конфликт, используя больше входных символов прогнозирования на каж…
1 ответ

Пример грамматики LR, который не может быть представлен LL?

Все грамматики LL являются грамматиками LR, но не наоборот, но я все еще борюсь с этим различием. Мне любопытно, если есть небольшие примеры грамматик LR, которые не имеют эквивалентного представления LL.
10 янв '12 в 19:44
1 ответ

Найти эквивалентную грамматику LR для одного и того же числа грамматик "a" и "b"?

Я не могу найти эквивалентную грамматику LR для: S → aSbS | bSaS | ε которые я думаю, распознают строки с тем же числом "а", что и "б". Что бы обойти это? Можно ли найти и грамматику LR для этого? Заранее спасибо! РЕДАКТИРОВАТЬ: Я нашел то, что я сч…
30 май '17 в 19:11
1 ответ

Что различные виды парсеров LR используют в качестве заглядывания?

Верно ли, что LR(0)-парсеры просто уменьшаются, если нет перехода для следующего входного символа (потому что у него нет заглядывания вперед)? Правильно ли, что SLR(1)-парсеры используют FOLLOW-Set производств в качестве предвидения? Верно ли, что L…
18 окт '17 в 07:57
2 ответа

Как Java, C++, C# и т. Д. Могут обойти эту особую синтаксическую неоднозначность с помощью <и>?

Раньше я думал, что C++ был "странным" со всеми неясностями с &lt; а также &gt;, но после попытки реализовать синтаксический анализатор, я думаю, я нашел пример, который ломает почти каждый язык, который использует &lt; а также &gt; для универсальны…
1 ответ

Как понять состояние сокращения без LR(0) в практическом методе построения эффективных анализаторов LALR(k) с автоматическим восстановлением после ошибок

Я не понимаю, откуда исходит состояние сокращения без LR (0). Означает ли это, что: Удалите состояние уменьшения LR (0) И получите состояния LR'(0) Используйте состояния LR'(0) для генерации состояний LR(K). и состояние восстановления без LR (0) пр…
1 ответ

Приоритет оператора с парсером LR(0)

Типичная БНФ, определяющая арифметические операции: E :- E + T | T T :- T * F | F F :- ( E ) | number Есть ли способ переписать эту грамматику, чтобы она могла быть реализована с помощью синтаксического анализатора LR(0), при этом сохраняя приоритет…
21 ноя '15 в 20:03
2 ответа

Решить, является ли грамматика LR(0) или нет

Я новичок в предмете компиляции и только что начал упражнение для анализа Bottom -up. Я застрял на следующей проблеме. построить таблицу анализа LR(0) для следующей грамматики: 1) E –&gt; E + T 2) E –&gt; T 3) T –&gt; (E) 4) T –&gt; id I0 : E' –&gt;…
1 ответ

LR(1) разбирает прямо на абстрактное синтаксическое дерево

Так что я недавно задал вопрос, близкий к этому, и получил очень хороший ответ. Однако описанные шаги больше походили на шаги по созданию конкретного синтаксического дерева. Каждое сокращение в процессе синтаксического анализа LR соответствует внутр…
1 ответ

Насколько легко найти строку, которая приводит к конфликту в парсере SLR(1) по сравнению с LR (1)

Известно, что парсеры SLR(1) обычно имеют меньше состояний, чем LR(1). Но легче или труднее из-за этого найти строку, которая приводит к конфликту в парсере SLR(1) по сравнению с LR (1) и почему? Заранее спасибо.
0 ответов

Учитывая грамматику, сгенерируйте элементы LR(1)

Я работаю над предметами LR(1), и у меня есть немного сомнений, и я надеюсь, что кто-то может прояснить для меня. Учитывая следующую грамматику, я должен сгенерировать элементы LR(1). Я создал первый элемент, но не уверен, что он правильный, поэтому…
2 ответа

Разбор особых случаев

Если я правильно понимаю, синтаксический анализ превращает последовательность символов в дерево. У меня вопрос: возможно ли использовать какую-то стандартную процедуру (LR, LL, PEG, ..?) Для разбора следующих двух примеров или необходимо написать сп…
2 ответа

Обсуждение предметов LR(1): значение?

Что такое канонический LR(1) предметов! Я прочитал Книгу Дракона, Меня это смущает, (дельта, гамма, тох,...) Может ли кто-нибудь помочь мне с этим вопросом? Что это значит на английском? [A - > alpha.Bbeta, a] Большое спасибо..
06 фев '12 в 22:17
1 ответ

Показать действительные LR(0) позиции

Мне нужно создать программу на C++, чтобы отображать действительные элементы LR(0) при разборе SLR в дизайне компилятора. До сих пор я могу принять грамматику как ввод от пользователя и найти ее закрытие. Но я не могу продолжить работу по внедрению …
13 мар '11 в 08:16
1 ответ

Реальные грамматики LR(k > 1)?

Создание искусственных LR(k) грамматик для k > 1 легко: Input: A1 B x Input: A2 B y (introduce reduce-reduce conflict for terminal a) A1 : a A2 : a B : b b b ... b (terminal b occurs k-1 times) Тем не менее, существуют ли какие - либо реальные не-LR…
2 ответа

Разбор: грамматика в LL(3), но не в LR(2)

Я пытаюсь доказать, что LL(3) не является подмножеством LR (2). Интуитивно это легко, но я не могу указать свою интуицию на поиск такой грамматики. Не могли бы вы дать мне руку? Спасибо за любую помощь
10 дек '12 в 21:36
1 ответ

Может ли грамматика SLR иметь пустое производство?

Я написал следующую грамматику: S-&gt;S ( S ) S S-&gt;e е означает "пустая строка" Таким образом, язык, который распознает эта грамматика, включает в себя все строки с соответствующими левыми и правыми круглыми скобками, как (), (()), (() ()) и т. Д…
07 апр '13 в 10:21