Описание тега recursive-descent
Рекурсивный анализатор спуска - это разновидность нисходящего синтаксического анализатора, построенная как набор рекурсивных процедур, каждая из которых реализует производственное правило грамматики.
1
ответ
Почему мой анализатор рекурсивного спуска является ассоциативно-правым
Я пишу свой собственный язык программирования, и у меня есть токенайзер (лексер). Но из-за разбора у меня возникли проблемы с написанием парсера рекурсивного спуска. Кажется, это право ассоциативно, когда его нужно оставить, и я не знаю почему. Напр…
13 июн '18 в 21:42
1
ответ
Какие грамматики могут быть проанализированы с использованием рекурсивного спуска без возврата назад?
Согласно "Парсеру рекурсивного спуска" в Википедии, рекурсивный спуск без обратного отслеживания (так называемый предиктивный анализ) возможен только для грамматик LL(k). В другом месте я читал, что реализация Lua использует такой парсер. Тем не мен…
21 авг '17 в 12:02
2
ответа
Как работать с неявным оператором 'cat' при построении синтаксического дерева для RE(используйте оценку стека)
Я пытаюсь построить синтаксическое дерево для регулярного выражения. Я использую стратегию, аналогичную оценке арифметических выражений (я знаю, что существуют способы, подобные рекурсивному спуску), то есть использую два стека, стек OPND и стек OPT…
08 ноя '18 в 16:24
1
ответ
LL1 Сначала и следуйте установленным правилам
Я смотрю на создание таблицы разбора для грамматики LL(1), и все это имеет смысл, кроме одного аспекта!? Правила для последующего набора швов конфликтуют. • Для каждого производства X → αAβ, поместите ПЕРВЫЙ (β) - {€} в СЛЕДУЮЩЕМ (A)• Если € - ПЕРВЫ…
21 авг '12 в 15:05
0
ответов
Преобразование массива в рекурсивный многомерный массив
Как конвертировать array('51' => '53', '52' => '53', '53' => '', '54' => '', '56' => '54', '57' => '54', '58' => '54', '59' => '51', '60' => '', '61' => '', '62' => '', '63' => '', '64' => '', '65' => '', '6…
15 авг '18 в 15:21
1
ответ
Парсер рекурсивного спуска, инициализация переменной с самим собой, дилемма
Я хочу знать, требуется ли соответствующий компилятор C++ для поддержки следующего кода: int a(a); // no other a is visible, we mean initialization of a with itself Visual Studio 2013 не поддерживает его (необъявленный идентификатор), однако некотор…
27 апр '16 в 08:54
2
ответа
Рекурсивный спуск против сгенерированных парсеров - эффективность
Как соотносятся рукописные парсеры рекурсивного спуска (которые неизбежно являются LL(k)) с генерируемыми парсерами LALR с точки зрения производительности? Я знаю, что парсеры LALR способны обрабатывать гораздо больше грамматик, чем LL(k); однако я …
28 янв '09 в 14:33
2
ответа
Парсер рекурсивного спуска LL(4) с примером
Я хочу определить грамматику, что для языка, сгенерированного из грамматики, требуется LL(4) парсер рекурсивного спуска. Грамматика не должна быть сложной, если она удовлетворяет требованию? оператор if для грамматики может быть следующим if lookahe…
12 мар '15 в 17:36
3
ответа
Рекурсивный спуск с тем же префиксом
Я изучаю рекурсивный приличный синтаксический анализ и придумываю некоторые сценарии, в которых, я думаю, алгоритм не работает. Один из них, учитывая эту простую грамматику: S → E;E → id | id + id Тогда строка id + id; действует на языке этой грамма…
17 дек '14 в 14:46
2
ответа
Левый рекурсивный разбор
Описание: Читая книгу " Дизайн компилятора в Си", я наткнулся на следующие правила для описания контекстно-свободной грамматики: грамматика, которая распознает список из одного или нескольких операторов, каждое из которых является арифметическим выр…
21 май '15 в 13:16
1
ответ
Как кодировать наборы FIRST & FOLLOW внутри компилятора
Я пишу компилятор для курса по компиляции, который я прохожу, и в настоящее время я нахожусь на Синтаксическом анализе, где мне нужно написать парсер. Мне нужно иметь наборы FIRST и FOLLOW для обработки любых ошибок, которые могут появиться в исходн…
17 мар '12 в 20:05
2
ответа
Существуют ли основанные на PEG генераторы парсеров, которые поддерживают левую рекурсию?
Левая рекурсия, кажется, является большой проблемой для многих генераторов синтаксического анализатора, которые построены на основе анализа рекурсивного спуска. Я ищу генератор синтаксических анализаторов на основе PEG- на любом языке.
28 апр '11 в 12:59
1
ответ
Нужна помощь в написании метода Java для выполнения анализа рекурсивного спуска
Официальная проблема: Напишите метод Java для выполнения анализа рекурсивного спуска следующего производства: <repeat_statement> -> REPEAT <statement> UNTIL <expression> ; Вот что я придумал: void repeatStatement() { if(token ==…
29 янв '12 в 20:45
1
ответ
Почему грамматика может генерировать строку, но не может быть распознана тем же парсером рекурсивного спуска?
Например, у нас есть грамматика S-> aSa | аа, ясно, что эта грамматика может генерировать все строки четной длины. Если мы разработаем синтаксический анализатор с рекурсивным спуском для этой грамматики, почему входы типа "aa", "aaaa", "aaaaaaaa" мо…
25 сен '15 в 05:39
1
ответ
Разбор рекурсивного спуска: унарные операторы с высоким приоритетом
Я выяснил, как реализовать бинарные операторы с приоритетом, как это (псевдокод): method plus times() while(consume(plus_t)) do times() end end method times number() while(consume(times_t)) number() end end // plus() is the root operation // omitted…
09 ноя '13 в 23:34
1
ответ
Помогите... LL грамматика и парсер рекурсивного спуска
Я использую ANTRL, и это моя грамматика, которая дает мне ошибку. statement : (name)( | BECOMES expression | LPAREN (expression (COMMA expression)*)? RPAREN | SHIFTLEFT name LPAREN (expression ( COMMA expression )*)? RPAREN ) | OUTPUT LPAREN express…
29 июл '10 в 18:31
6
ответов
Как сделать рекурсивный спуск JSON с помощью json.net?
Я пытаюсь проанализировать файл JSON с помощью json.net. Файл выглядит так {X: { Title:"foo", xxxx:xxxx } } {Y: {ZZ: {Title: "bar",...} } } Я пытаюсь восстановить эту структуру, обрабатывая все объекты с атрибутом Title. Но я смущен JToken, JPropert…
24 апр '13 в 00:17
1
ответ
Написание рекурсивного потомка парсера для моей грамматики
Я должен построить выражение, используя Recursive Descendent Parser Builder. Вот моя грамматика: ----RULES---- <cond> → <termb> [OR <termb>]* <termb>→<factb>[AND <factb>]* <factb>→<expr> RELOP <expr…
22 авг '12 в 13:58
2
ответа
Генерировать вывод вместе с парсером рекурсивного спуска
Написание простых парсеров тривиально, и я реализовал несколько за эти годы. В колледже нам тоже пришлось написать один. Но нам никогда не приходилось генерировать значимые результаты, используя этот метод; мы никогда не учились создавать бэкэнд. Ес…
20 окт '11 в 04:58
0
ответов
Многопоточный компилятор, возвращающий разные выходные данные при быстром повторении выполнения
У меня есть многопоточный компилятор, разработанный на Java. Он получает n файловых путей и запускает один поток для каждого полученного файлового пути. Все работает нормально, если я выполняю несколько операций с одним файлом. Однако, когда я вводю…
14 ноя '17 в 03:18