Описание тега parser-generator

Генератор синтаксического анализатора - это инструмент, который принимает описание грамматики языка (обычно в виде расширенного формализма Бэкуса-Наура (EBNF)) и генерирует компьютерный код, который будет анализировать язык, описываемый этой грамматикой. Генераторы синтаксического анализатора могут создавать синтаксические анализаторы с рекурсивным спуском, синтаксические анализаторы Эрли, синтаксические анализаторы L(AL)R или другие более экзотические типы синтаксических анализаторов.
5 ответов

Что является самым быстрым генератором синтаксического анализатора для вывода C#?

Я ищу инструмент генератора синтаксического анализатора, который дает вывод C# и довольно быстро. Моя цель - проанализировать JSON-подобный текст и создать из него объект CLR. Я использовал движок GOLD Parser для этого, но он оказался медленным для …
11 мар '11 в 12:41
1 ответ

Как использовать директиву Bison %destructor

Я постараюсь быть кратко. В настоящее время мы используем GNU Bison для построения дерева интерпретаторов, которое в дальнейшем будет сохранено в собственном формате и загружено нашим сервером. Поэтому мы используем много динамического размещения вн…
07 июн '12 в 11:28
3 ответа

Генераторы парсеров и Ragel... Создание собственного D Parser

Я новичок в мире компиляторов, и недавно я услышал о том, что называется генератором парсера. Из того, что я (думаю) я понял, генераторы синтаксического анализатора берут файл синтаксиса и выводят файл исходного кода, который может анализировать фай…
18 янв '11 в 00:38
3 ответа

Как создать нисходящую "древовидную" конструкцию с использованием зубров?

Я нашел этот пример, но он создает дерево снизу вверх. Можно ли создать дерево сверху вниз, используя bison, flex? псевдокод: block(parent): { current = new Block(); parent.addBlock(this); } BLOCK_BEGIN_TOKEN block_content(current) BLOCK_END_TOKEN ;…
0 ответов

Преобразовать форму грамматики BNF в грамматику g4

Я пытаюсь скрыть эту грамматику BNF для проверки логического выражения, которое в настоящее время используется в Swift. Теперь хочу реализовать подобный парсер в Java. Я наткнулся на библиотеку Antlr4 и хочу использовать ее для генерации парсера для…
11 ноя '18 в 04:06
3 ответа

Портирование Mathematica в Октаву

Я должен перенести много файлов из Mathematica в Octave. Я нашел парсер Lisp Mathematica с 1991 года, но я не очень знаком с Lisp, поэтому мне было интересно, есть ли у кого-нибудь опыт работы с портированием в этом направлении. После исследования и…
5 ответов

Несколько парсеров flex/bison

Каков наилучший способ обработки нескольких парсеров Flex/Bison внутри проекта? Я написал парсер, и теперь мне нужен второй в том же проекте. Пока что в третьем разделе parser1.y Я вставил main(..) метод и называется yyparse оттуда. Я хочу получить …
28 окт '09 в 01:31
2 ответа

Машиночитаемая грамматика с открытым исходным кодом для HTTP/1.1?

Существует ли машиночитаемая грамматика с открытым исходным кодом для запросов и ответов HTTP/1.1? В частности, я ищу грамматику, которая принимается одним из популярных генераторов синтаксического анализатора (например, ANTLR, CUP, BNFC, ...).
22 фев '10 в 09:18
1 ответ

Как разобрать отступы и отступы с помощью разборки?

Вот подмножество грамматики Python: single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE stmt: simple_stmt | compound_stmt simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE small_stmt: pass_stmt pass_stmt: 'pass' compound_stmt: if_stmt …
10 окт '09 в 13:27
1 ответ

Как я могу использовать лексер JFlex с анализатором JavaCC?

Я пытаюсь научиться использовать JavaCC для написания парсера. Я уже сгенерировал лексер, используя JFlex, и он возвращает список токенов. Каждый токен - это его собственный класс. Я пишу правила производства, но, например, я не могу написать ";" по…
21 окт '15 в 19:57
1 ответ

Использование Parsekit для построения дерева разбора

Я использую Parsekit для XCode, но эта проблема вполне применима к большинству генераторов парсеров. Я разбираю сценарий с помощью gammer, и он работает нормально. Однако у меня возникают проблемы со следующим шагом. Рассмотрим грммера: @start = lin…
1 ответ

Удаление комментария C с JavaCC

Я знаю, как пропустить эти комментарии, используя объявления SKIP, но все, что мне нужно сделать, это взять источник C и вывести тот же источник без комментариев. Поэтому я объявил токен , который копируется в вывод, а комментарии не пропускаются. Я…
20 дек '12 в 09:59
1 ответ

Проблемы с лимонной грамматикой (приоритет?)

У меня проблемы с простой грамматикой, которую я создал для поддержки вызовов функций.Я использую основанный на лимоне PHP_ParserGenerator от Грега. Это соответствующая часть грамматики: program ::= expr(A). { $this->result = A; } value(A) ::= SI…
10 апр '12 в 12:36
1 ответ

Разрешить конфликт в грамматике бизонов с помощью разделенных пробелами списков выражений + if/then/else

У меня есть следующая грамматика yacc/bison/happy: %token if TokenIf then TokenThen else TokenElse true TokenTrue false TokenFalse %left APP %right IF %% Hungry : NoHungry | Hungry NoHungry %prec APP | if Hungry then Hungry else Hungry %prec IF NoHu…
6 ответов

Лучший генератор парсера для разбора множества маленьких текстов на C++?

Я, по соображениям производительности, портирую библиотеку C# на C++. Во время нормальной работы этой библиотеке, помимо прочего, необходимо проанализировать около 150 000 математических выражений (например, формул Excel) со средней длиной менее 150…
2 ответа

Что не так с этим ParseKit BNF?

Я использую ParseKit для target-C, который использует BNF-подобный синтаксис для задания грамматики: @start = command+; command = new; new = 'new' object ';'; object = 'house' | other; Включение последней строки вызывает ошибку. По сути, я хочу сказ…
2 ответа

Как создать парсер (lex/yacc)?

У меня есть следующий файл и который нужно проанализировать --TestFile Start ASDF123 Name "John" Address "#6,US" end ASDF123 Строки начинаются с -- будут рассматриваться как строки комментариев. и файл начинается с "Пуск" и заканчивается end, Строка…
12 мар '11 в 12:08
1 ответ

JavaCC: как обращаться с токенами, которые содержат общие слова

Я пытаюсь создать парсер для исходного кода следующим образом: [code table 1.0] code table code_table_name id = 500 desc = "my code table one" end code table ... и здесь ниже грамматика, которую я определил: PARSER_BEGIN(CodeTableParser) ... PARSER_…
21 сен '12 в 13:53
1 ответ

Как обработать структурированный языковой файл в python

У меня есть большой структурированный языковой файл, как это: TASK SchM_Task { TYPE = AUTO; SCHEDULE = NON; PRIORITY = 160; ACTIVATION = 1; TIMING_PROTECTION = FALSE; AUTOSTART = FALSE; EVENT = SchM_Event; RESOURCE = SystemS_Resource; StackSize = 10…
4 ответа

Любая BNF IDE с тестовыми функциями

Я работаю над новым языком и при написании грамматики я хотел бы иметь возможность проверить грамматику на предмет полноты, конфликтов и тому подобного. Я не особо беспокоюсь о лежащем в основе генераторе синтаксического анализатора (но один для.NET…
11 янв '10 в 22:22