Вопросы по теме 'lr'
LR (0) Конфликты парсера
Сомневаюсь насчет парсеров lr (0). Например, у меня есть следующая грамматика:
S -> S N
|
N -> terminalsymbol
Если я попытаюсь построить первое состояние автомата lr0, я получу следующее первое состояние:
S ' -> . S $
S...
2789 просмотров
schedule
07.09.2021
Перевод if then else в грамматике компилятора
...
IF LP assignment-expression RP marker statement {
backpatch($3.tlist,$5.instr);
$$.nextList = mergeList($3.flist,$6.nextList);
}
|IF LP assignment-expression RP marker statement ELSE Next statement {
backpatch($3.tlist,$5.instr);...
595 просмотров
schedule
15.09.2021
Как лексер может извлечь токен на неоднозначных языках?
Я хочу понять, как работает парсер. Я узнал о частях LL, LR (0), LR (1), о том, как создавать, NFA, DFA, таблицах синтаксического анализа и т. Д.
Теперь проблема в том, что я знаю, что лексер должен извлекать токены только по запросу парсера в...
1022 просмотров
schedule
04.03.2022
Построение деревьев синтаксического анализа с синтаксическим анализом shift-reduce
Я экспериментирую с синтаксическим анализом в свободное время, и я хотел реализовать синтаксический анализатор сдвиг-сокращение для очень простой грамматики. Я прочитал много онлайн-статей, но все еще не понимаю, как создавать деревья синтаксического...
1790 просмотров
schedule
28.03.2022
Есть ли общий способ преобразовать однозначную контекстно-свободную грамматику в грамматику LALR (1)?
Я пытаюсь создать парсер LALR (1) для следующей грамматики и обнаруживаю некоторые конфликты сдвига / уменьшения.
S := expr
expr := lval | ID '[' expr ']' OF expr
lval := ID | lval '[' expr ']'
Таким образом, парсер не может правильно...
937 просмотров
schedule
24.06.2022
Является ли грамматика QML LALR (1)?
Вот грамматика QML (извлечена из https://github.com/kropp/intellij-qml/blob/master/grammars/qml.bnf ):
/* identifier, value, integer and float are terminals */
qml ::= object /* Simplified */
object ::= type body
body ::= '{'...
151 просмотров
schedule
24.06.2022
Как использовать алгоритм Уоршелла для транзитивного закрытия, чтобы определить канонические замыкания синтаксического анализатора LR (1)?
Я пытаюсь реализовать алгоритм Уоршалла для быстрого вычисления замыканий LR(1).
Думаю , я понимаю, как это работает для LR(0):
Узлы графа — это элементы LR , например A → B • C
Ребра являются «переходами», начиная с A → B • C до C →...
458 просмотров
schedule
03.07.2022
Как выбрать, какое правило использовать при выводе CFG?
У меня проблемы с этим учебником, и мой профессор считает, что отвечать на вопросы несправедливо по отношению к ученикам, которые уже знают материал, поступающий в класс (получение отзывов от этого парня само по себе является процессом...
490 просмотров
schedule
19.08.2022
Какие преимущества у парсеров LL перед парсерами LR?
Какие преимущества имеют парсеры LL перед парсерами LR, чтобы гарантировать их относительную популярность в современных инструментах генерации парсеров ?
Согласно Wikipedia , синтаксический анализ LR имеет преимущества перед LL:...
13847 просмотров
schedule
21.01.2023
Каждая ли грамматика LL(1) также является грамматикой LR(0)?
Я знаю, что каждый LL(1) также является LR(1). Но как насчет отношения между LL(1) и LR(0), может ли LL(1) также быть LR(0)?
2061 просмотров
schedule
02.05.2023
Почему ANTLR не уменьшает это выражение?
У меня есть следующая грамматика:
expr : factor op ;
op
: '+' factor op
| // Blank rule for left-recursion elimination
;
factor
: NUM
| '(' expr ')'
;
NUM : ('0'..'9')+ ;
Я задаю 2 + 3 , используя expr в качестве...
160 просмотров
schedule
27.07.2023
Является ли эта грамматика (для небольшого подмножества Lua) неоднозначной?
У меня есть следующая грамматика, которая является небольшим подмножеством "Полный синтаксис Lua" :
chunk -> | chunk stat.
stat -> var `=´ exp.
var -> Name | exp `[´ exp `]´.
exp -> var | exp `(´ exp `)´ | `(´ exp `)´....
304 просмотров
schedule
20.03.2023
Как предварительно сформировать «просмотр» в лексере OCaml/как откатить лексему?
Ну, я пишу свой первый парсер на OCaml, и мне сразу как-то удалось сделать с бесконечным циклом.
Особо следует отметить, что я пытаюсь лексировать идентификаторы в соответствии с правилами спецификации Scheme (очевидно, я понятия не имею, что я...
416 просмотров
schedule
19.07.2023
Разбор LR(0)/SLR/LR(1) - как выбирается продукция?
Я пытаюсь разобраться в теории парсеров и постоянно нахожу один и тот же пример в разных источниках. Грамматика выглядит примерно так (упрощенно):
E = T
E = E + T
T = 0..9
Так что предположительно строка 2 + 2 будет проанализирована как...
69 просмотров
schedule
18.12.2022
Разница между анализом LL и LR
В настоящее время изучает контекстно-свободные грамматики и методы их разбора. Насколько я понимаю, контекстно-свободные грамматики можно анализировать по принципу сверху вниз/LL или снизу вверх/LR. Правильно ли понимается, что синтаксические...
118 просмотров
schedule
10.04.2023
Почему эта грамматика имеет конфликт уменьшения/уменьшения в LR(0)?
У меня есть следующая грамматика:
S -> a b D E
S -> A B E F
D -> M x
E -> N y
F -> z
M -> epsilon
N -> epsilon
В моем учебнике говорится, что в LR(0) существует конфликт уменьшения/уменьшения. Я построил диаграмму и...
32 просмотров
schedule
30.07.2023
Каковы разумные верхние границы для количества состояний, символов и правил грамматик LR(1)?
Я делаю анализатор LR(1) и столкнулся с узкими местами производительности в разных местах.
Я хотел бы попробовать оптимизировать структуры данных для синтаксического анализатора, но для этого мне нужно приблизительное представление о том, сколько...
774 просмотров
schedule
27.05.2024
Что не так с моей грамматикой LR(0)?
Я пытаюсь создать свой собственный синтаксический анализатор LR(0), и у меня возникают проблемы с некоторыми грамматиками.
В основном, для грамматики
exp: mexp
mexp: '1'
mexp: mexp '*' '1'
мой парсер выводит
State 0: • 1
| •...
222 просмотров
schedule
09.06.2024