Вопросы по теме 'left-recursion'

Практическое решение проблемы с грамматикой
У нас есть небольшие фрагменты кода vb6 (единственное использование подмножества функций), которые пишут непрограммисты. Это называется правила. Для людей, пишущих их, их трудно отлаживать, поэтому кто-то написал своего рода дополнительный...
308 просмотров

Превратите грамматику в грамматику LL1
Я готовлюсь к завтрашнему экзамену и пересматриваю прошлогодний. В тесте была грамматика. Expression -> Foo "+" Bar "end" Foo -> [a-z0-9]+ | Expression Bar -> Expression Foo | a*b*c+ Я пытался и часами изучал, как это сделать, но...
657 просмотров

Prolog dcg генерирует все слова из языка
Я пытаюсь написать грамматику dcg в прологе, которая будет описывать язык a^nb^n n>=0 "",ab,aabb,aaabbb itd Все, что я написал, s --> slowo. slowo --> [a],slowo,[b],!. slowo --> []. И это хорошо, пока все, что я хочу...
1069 просмотров
schedule 06.05.2022

Что именно делает правила грамматики леворекурсивными в antlr?
Итак, мне было интересно, что делает парсер таким: line : expression EOF; expression : m_expression (PLUS m_expression)?; m_expression: basic (TIMES basic)?; basic : NUMBER | VARIABLE | (OPENING expression CLOSING) |...
415 просмотров
schedule 28.01.2023

Преобразование ANTLR4 в ANTLR3 — удаление левой рекурсии
Я работал над грамматикой в ​​ANTLR4, но из-за изменения требований мне нужно переключиться на ANTLR3. Поэтому я хотел бы удалить левую рекурсию на следующем. exp : A | B | C | exp Operator exp...
201 просмотров
schedule 20.08.2022

Как избежать взаимной левой рекурсии в ANTLR 4
Я пишу грамматику для обработки скалярных и векторных выражений. Приведенная ниже грамматика упрощена, чтобы показать мою проблему, когда скалярное выражение может быть получено из вектора, а вектор может быть получен из скаляра. Например, вектор...
4692 просмотров
schedule 27.10.2023

Разбираем Cool Language с помощью antlr, не могу распечатать желаемый результат
Я пишу парсер / лексер для COOL (объектно-ориентированный язык в классе). Вы можете увидеть грамматику по следующей ссылке: (ПОСЛЕДНЯЯ СТРАНИЦА РУКОВОДСТВА) http://theory.stanford.edu/~aiken/software/cool/cool-manual.pdf Я использую ANTLR для...
638 просмотров

Перевод производства грамматики в Parsec
Я пытаюсь преобразовать следующую грамматическую продукцию callExpr: primaryExpr | callExpr primaryExpr к выражению Parsec в Haskell. Очевидно, проблема в том, что он леворекурсивный, поэтому я пытаюсь разобрать его в стиле...
171 просмотров

Scala PackratParsers (комбинаторы парсеров) и левая ассоциативность
Я использую Scala's PackratParsers (комбинаторы парсеров) с леворекурсивной грамматикой следующего вида lazy val expr: PackratParser[Expr] = ( ... | expr ~ (":" ~ expr).+ ^^ { case expr ~ rest => (expr /: rest)(combineBinary) }...
619 просмотров

Разбор + и * в логических выражениях рекурсивным спуском
Я пишу парсер рекурсивного спуска для логических выражений, например: (1 * 0) (0 + ~1) (0 * (1 + c) Где 1 — «Истина», 0 — «Ложь», + — «или», * — «и», ~ — «не», а «с» — просто имя переменной (это может быть любая буква алфавита). Я планирую...
347 просмотров

Левое рекурсивное правило Antlr4 содержит леворекурсивную альтернативу, за которой может следовать пустая строка
Поэтому я определил грамматику для анализа синтаксиса языка C: grammar mygrammar; program : (declaration)* (statement)* EOF ; declaration : INT ID '=' expression ';' ; assignment : ID '=' expression ';' ; expression : expression...
1063 просмотров
schedule 29.07.2022

Удаление прямой левой рекурсии в JavaCC
У меня есть следующее в файле JavaCC: void condition() : {} { expression() comp_op() expression() | condition() (<AND> | <OR>) condition() } где <AND> — это «&&», а <OR> — это «||». Это вызывает проблемы...
532 просмотров

дизайн компилятора - нужна помощь в устранении косвенной левой рекурсии из CFG
У меня есть следующая грамматика, которая обрабатывает математические и логические выражения: A ==> B A' A' ==> | B A' A' ==> epsilon B ==> C B' B' ==> ^ C B' B' ==> epsilon C ==> D C' C' ==> & D C' C' ==> epsilon...
63 просмотров

Как лучше всего анализировать отдельный список запятых в грамматике PEG
Я пытаюсь разобрать список, разделенный запятыми. Для упрощения я просто использую цифры. Эти выражения будут действительными: (1, 4, 3) () (4) Я могу придумать два способа сделать это, и мне интересно, почему неудачный пример не...
526 просмотров
schedule 02.10.2023

Antlr странный синтаксис круглых скобок
Не могу понять значение этой круглой скобки. Писать его не обязательно, но иногда может выдавать ошибку левой рекурсии. Где мы должны использовать его в правилах грамматики?
29 просмотров
schedule 16.08.2023