Описание тега left-recursion
A special kind of recursion, defined through a particular grammar property: grammar is left-recursive if we can find some non-terminal A which will eventually derive a sentential form with itself as the left-symbol.
1
ответ
Устранение левой рекурсии из этой странной грамматики выражения
Я пытаюсь написать грамматику выражений, в которой есть 3 оператора "+", "-" и "/". Оператор умножения подразумевается сопоставлением, как в: (1 + 2) (3 + 4 5) Вот грамматика: S -> A ('+' A) * A -> B ('-' B) * B -> C ('/' C) * C -> D (D) * D -> ID |…
01 июл '17 в 01:17
1
ответ
Грако покинул рекурсию
Я пытаюсь использовать грако для описания простой леворекурсивной грамматики, но у меня проблемы с этим. Правая рекурсия работает без проблем: symbol = /[a-z]/ ; condition = symbol "AND" condition | symbol ; start = condition $ ; Согласно всем найде…
21 дек '16 в 11:15
1
ответ
Взаимная левая рекурсия ANTLR 4
Мне жаль задавать еще один вопрос о взаимной левой рекурсии, я чувствую, что мой характерен только для моей ситуации, или, по крайней мере, я не могу понять достаточно, чтобы связать его с грамматикой всех остальных. Я немного новичок в мире компьют…
19 фев '14 в 03:12
0
ответов
Удаление косвенной левой рекурсии
У меня есть интересная проблема непрямой рекурсии, которую, я думаю, я решил, но я не совсем уверен, что она правильная. Начальная грамматика: A-> Bxy | x B-> CD C-> A | c D-> d Мое решение состояло в том, чтобы сначала развиваться на A,…
08 сен '15 в 12:23
2
ответа
Левый рекурсивный разбор
Описание: Читая книгу " Дизайн компилятора в Си", я наткнулся на следующие правила для описания контекстно-свободной грамматики: грамматика, которая распознает список из одного или нескольких операторов, каждое из которых является арифметическим выр…
21 май '15 в 13:16
0
ответов
Левая рекурсия JavaCC
Я пытаюсь удалить левую рекурсию для этой грамматики JavaCC. Я получаю ошибку, обнаруженную рекурсией Left, в минуту для условия, приведенной ниже, и я не могу понять, как ее исправить. Любая помощь будет принята с благодарностью:) void condition():…
10 ноя '17 в 21:39
0
ответов
LPEG - ошибка "Правило может быть леворекурсивной", несмотря на то, что это грамматика, которую можно прекратить
Я пытаюсь использовать LPEG для создания препроцессора для GLSL. Мне удалось заставить работать операторы #define и #undef без проблем, но мои проблемы возникают, когда я пытаюсь работать с операторами #ifdef. Я думал, что смогу создать правило, кот…
21 апр '18 в 13:33
1
ответ
Intellij Antlr4 Plugin Левая прямая рекурсия не работает
Я пытаюсь сделать парсер, используя Antlr4 для оператора выбора SQL, в котором содержится следующая часть expr: '1' | expr('*'|'/'|'+'|'-'|'||') expr; // As the re-factored form of expression: compound expression; WS :[ \t\r\n]+ -> skip ; Я предп…
28 фев '14 в 07:44
2
ответа
Левое рекурсивное правило Antlr4 содержит левую рекурсивную альтернативу, за которой может следовать пустая строка
Поэтому я определил грамматику для синтаксического анализа языка синтаксиса в стиле C: grammar mygrammar; program : (declaration)* (statement)* EOF ; declaration : INT ID '=' expression ';' ; assignment : ID '=' expression ';' ; expression : express…
26 сен '16 в 23:55
1
ответ
Удаление взаимной левой рекурсии из леворекурсивных правил
С ANTLR 4.6, снимок от 23.11.2016. У меня есть два правила, каждое из которых является леворекурсивным. Я расширил несколько альтернатив, чтобы раскрыть левую рекурсию. ANTLR4 обрабатывает это, потому что левая рекурсия является явной. Тем не менее,…
25 ноя '16 в 04:22
0
ответов
Контекстно-бесплатная грамматика и удаление левой рекурсии
Следующая грамматика вышла из рекурсии E -> E + T|T T -> T * F|F F -> F*|a | b Как это убрать? Есть ли какая-то общая процедура для этого?
21 окт '16 в 09:32
0
ответов
Дерево унарных операторов
Я хочу разобрать выражения как ++ A ++ ++ A ++ ++ ++++ Оператор предварительного увеличения имеет приоритет над оператором последующего увеличения. У меня есть парсеры: public static readonly TokenListParser<LangToken, UnaryOperator> Increment…
21 дек '18 в 12:17
1
ответ
Я получаю ошибку левой рекурсии в моей грамматике анализатора antlr
Я получаю ошибку [fatal] rule statement has non-LL(*) decision due to recursive rule invocations reachable from alts 6,7. Resolve by left-factoring or using syntactic predicates or using backtrack=true option. Я не знаю точно, какая часть моей грамм…
06 ноя '15 в 00:11
2
ответа
Удалить левую рекурсию в грамматике
У меня есть эта грамматика: agent = nil | @ | id | act . agent | agent + agent | agent "|" agent | agent \ restriction | agent [relabeling] | agent where agent_frame end | automation | (agent) где приоритеты: "where" < "+" < "|" < "\" < …
10 июл '15 в 09:36
2
ответа
Практическое решение проблемы грамматики
У нас есть небольшие фрагменты кода vb6 (единственное использование подмножества функций), который запрограммирован не программистами. Это так называемые правила. Людям, пишущим их, их сложно отлаживать, поэтому кто-то написал своего рода анализатор…
08 июл '11 в 08:37
1
ответ
Удаление прямой левой рекурсии в JavaCC
У меня есть следующее в файле JavaCC: void condition() : {} { expression() comp_op() expression() | condition() (<AND> | <OR>) condition() } где <AND> это "&&" и <OR> это "||". Это вызывает проблемы из-за того, что это прямая…
26 окт '16 в 15:52
1
ответ
Эти грамматики оставлены рекурсивными и почему?
У меня есть эти грамматики для решения левой рекурсии. Но почему эти грамматики остаются рекурсивными? Они не следуют схеме A -> Aa | b: 1., S → 0S1 | 01 2., S → + SS | * SS
12 дек '16 в 17:56
1
ответ
ANTLR4 Взаимно леворекурсивная ошибка при разборе источника C++
Я пытаюсь проанализировать подмножество синтаксиса исходного кода cpp. Следующие правила синтаксического анализа ANTLR4 напрямую скопированы из спецификации языка C++ (за исключением того, что переносы заменяются подчеркиванием): abstract_declarator…
20 апр '13 в 10:12
0
ответов
ANTLR3 взаимно леворекурсивное правило
Каждое решение, которое я нашел на SO, было "переключение на ANTLR4", что на самом деле не вариант, потому что я использую antlr4ruby (что является ANTLR3, 4 означает "для"). Я хочу построить правило для доступа к свойству, оно должно соответствоват…
28 апр '15 в 00:17
1
ответ
Грамматические ограничения на токен смотреть в будущее
Я знаю, что есть два типа ограничений на грамматику, которые используются с парсерами рекурсивного спуска. грамматика не может иметь никаких левых рекурсивных произведений Грамматика не должна требовать больше, чем на токене. Я понимаю первое, но не…
24 мар '16 в 13:13