Описание тега lalr
Парсеры LALR (lookahead LR) - это семейство парсеров, которые часто используются в генераторах парсеров. Они обеспечивают баланс между выразительностью парсеров LR(1) и размером парсеров LR(0).
1
ответ
Неоднозначность в грамматике зубров
У меня есть проблема в моей грамматике бизонов. У меня есть пара сдвигов / уменьшений, которые в порядке, и шесть уменьшений / уменьшений. Проблема в том, что я не понимаю, как возникают конфликты "уменьшить / уменьшить", так как парсер должен знать…
12 авг '11 в 00:04
1
ответ
Существует ли общий способ преобразования однозначной контекстно-свободной грамматики в грамматику LALR(1)?
Я пытаюсь создать парсер LALR(1) для следующей грамматики и нахожу некоторые сдвиги / сокращения конфликтов. S := expr expr := lval | ID '[' expr ']' OF expr lval := ID | lval '[' expr ']' Поэтому синтаксический анализатор не может правильно проанал…
28 авг '13 в 21:41
1
ответ
Сдвиг / уменьшение конфликта в грамматике YACC
Я написал грамматику в следующем порядке: A : B '?' | B | A '+' A ; B : "a" | "c" A "t" A ; И это дает мне сдвиг / уменьшить конфликт на A : B . '?' (96) A : B . (98) Я пробовал несколько способов изменить грамматику, но я, кажется, создаю еще больш…
18 апр '18 в 19:58
3
ответа
Как решить сдвиг / уменьшить конфликт?
Я использую CUP для создания парсера, который мне нужен для моей диссертации. У меня есть конфликт сдвига / уменьшения в моей грамматике. У меня есть это правило производства: command ::= IDENTIFIER | IDENTIFIER LPAREN parlist RPAREN; и у меня есть …
02 июл '10 в 17:11
2
ответа
Как алгоритм yacc/bison LALR(1) обрабатывает "пустые" правила?
В синтаксическом анализаторе LALR(1) правила в грамматике преобразуются в таблицу синтаксического анализа, которая фактически говорит: "Если у вас есть этот ввод до сих пор, и токен предварительного просмотра равен X, то перейдите в состояние Y или …
23 ноя '11 в 12:53
1
ответ
Как понять состояние сокращения без LR(0) в практическом методе построения эффективных анализаторов LALR(k) с автоматическим восстановлением после ошибок
Я не понимаю, откуда исходит состояние сокращения без LR (0). Означает ли это, что: Удалите состояние уменьшения LR (0) И получите состояния LR'(0) Используйте состояния LR'(0) для генерации состояний LR(K). и состояние восстановления без LR (0) пр…
31 окт '15 в 13:03
2
ответа
Является ли грамматика Гроффа LALR(1)?
Как домашний проект, я пытаюсь создать синтаксический анализатор groff с Jison (клон Bison на JavaScript), но я изо всех сил пытаюсь понять, является ли грамматика groff LALR(1). У кого-нибудь есть понимание этого? Заранее спасибо. Обновление 1 В от…
06 ноя '15 в 19:54
1
ответ
Решите двусмысленность в моей грамматике с парсером LALR
Я использую whittle для разбора грамматики, но сталкиваюсь с классической проблемой неоднозначности LALR. Моя грамматика выглядит так (упрощенно): <comment> ::= '{' <string> '}' # string enclosed in braces <tag> ::= '[' <name>…
05 мар '14 в 17:15
1
ответ
Генератор синтаксического анализатора CUP LALR: предупреждение: производительность никогда не уменьшается
Это первый раз, когда я использую синтаксический анализатор CUP, и у меня постоянно появляется следующая ошибка: "warning: * production"... "никогда не используется. Не могу понять, что не так, пожалуйста, помогите. см. код и журнал ошибок прилагает…
24 дек '13 в 02:20
1
ответ
Реализация функций eval и load в скриптовом движке с помощью Flex и Bison
Привет, ребята, я занимаюсь разработкой скриптового движка с помощью flex и bison, а сейчас я реализую функции eval и load для этого языка. Просто чтобы дать вам пример, синтаксис выглядит так: import std.*; load( "some_script.hy" ); eval( "foo = 12…
19 май '10 в 02:12
1
ответ
Пост инкремент и пре инкремент и Rvals
int a; a = a+++a; // Why does this create no error but a = a+++++a; // Create a semantic error Я немного растерялся, почему вторая строка не создает никаких ошибок, но почему третья создает семантическую ошибку?
27 фев '14 в 03:44
1
ответ
PCYACC ожидает, что ключевое слово эквивалентно
Есть ли в PCYACC ключевое слово, которое эквивалентно объявлению ожидания BISON: %expect NUMBER
05 мар '13 в 13:59
1
ответ
Список разбора Bison/EBNF по крайней мере с двумя элементами
В настоящее время я пытаюсь проанализировать разделенный запятыми список, по крайней мере, с двумя элементами, используя бизона. Я знаю, как разобрать список с помощью этого: list : list "," element | element но как я могу убедиться, что в списке ес…
16 мар '17 в 18:13
2
ответа
Левая рекурсия в грамматике приводит к конфликтам
Во всей грамматике бизонов я использую правую рекурсию, и я прочитал, что левая рекурсия лучше, потому что не нужно сначала собирать весь стек. Однако, когда я пытаюсь переключиться на левую рекурсию на любом из них, я всегда сталкиваюсь с множество…
08 ноя '09 в 18:01
1
ответ
Может ли это быть проанализировано парсером LALR(1)?
Я пишу парсер в Bison для языка, который имеет следующие конструкции, среди прочего: Само отправка: [identifier arguments] рассылка: [expression, identifier arguments] нарезка строк: expression[expression,expression] - похоже на Python. arguments сп…
05 ноя '16 в 10:25
1
ответ
Разбор с круглыми скобками и различными типами выражений
Я сейчас пользуюсь happy для синтаксического анализа языка, но я не думаю, что синтаксический анализатор уместен, за исключением того, что я говорю, что это анализатор LALR. Вот небольшой отрывок из грамматики: ArithExpr -> ArithExpr + ArithExpr …
08 май '17 в 06:55
2
ответа
Установка уровней приоритета в грамматике BNFC
Фон: Я беру урок по семантике программного обеспечения, и мы должны создать небольшой компилятор и среду исполнения для игрушечного языка под названием while. Нам дали скелет кода для Java, но нам разрешено использовать любой язык, который мы хотим…
28 апр '13 в 11:35
1
ответ
Может ли восстановление ошибок парсера автоматически руководствоваться грамматикой?
Я пишу генератор парсера LALR в качестве любимого проекта. Я использую книгу пурпурного дракона, чтобы помочь мне с дизайном, и из этого я понял, что в парсере есть четыре метода восстановления после ошибок: Режим паники: начать сбрасывать символы в…
16 фев '14 в 03:34
1
ответ
Ржавчина lalrpop lexing двусмысленность: не жадное соответствие внутри скобок
Я пытаюсь разобрать формат SGF, который имеет этот BNF: Collection = GameTree { GameTree } GameTree = "(" Sequence { GameTree } ")" Sequence = Node { Node } Node = ";" { Property } Property = PropIdent PropValue { PropValue } PropIdent = UcLetter { …
20 фев '18 в 02:23
1
ответ
Зубр-сдвиг / уменьшение конфликтов
Я знаю, что в коде Bison можно ожидать некоторых конфликтов сдвига / уменьшения, и обычная грамматика C выдает ее для if/else, Тем не менее, у меня есть грамматика, которая производит 330 других конфликтов сдвига / уменьшения. Является ли это призна…
06 авг '11 в 16:37