Описание тега 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 ;…
24 янв '14 в 22:16
0
ответов
Преобразовать форму грамматики BNF в грамматику g4
Я пытаюсь скрыть эту грамматику BNF для проверки логического выражения, которое в настоящее время используется в Swift. Теперь хочу реализовать подобный парсер в Java. Я наткнулся на библиотеку Antlr4 и хочу использовать ее для генерации парсера для…
11 ноя '18 в 04:06
3
ответа
Портирование Mathematica в Октаву
Я должен перенести много файлов из Mathematica в Octave. Я нашел парсер Lisp Mathematica с 1991 года, но я не очень знаком с Lisp, поэтому мне было интересно, есть ли у кого-нибудь опыт работы с портированием в этом направлении. После исследования и…
14 дек '11 в 16:01
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…
03 авг '11 в 17:10
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…
29 май '18 в 15:40
6
ответов
Лучший генератор парсера для разбора множества маленьких текстов на C++?
Я, по соображениям производительности, портирую библиотеку C# на C++. Во время нормальной работы этой библиотеке, помимо прочего, необходимо проанализировать около 150 000 математических выражений (например, формул Excel) со средней длиной менее 150…
02 дек '11 в 12:16
2
ответа
Что не так с этим ParseKit BNF?
Я использую ParseKit для target-C, который использует BNF-подобный синтаксис для задания грамматики: @start = command+; command = new; new = 'new' object ';'; object = 'house' | other; Включение последней строки вызывает ошибку. По сути, я хочу сказ…
21 июл '11 в 13:55
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…
26 фев '15 в 15:35
4
ответа
Любая BNF IDE с тестовыми функциями
Я работаю над новым языком и при написании грамматики я хотел бы иметь возможность проверить грамматику на предмет полноты, конфликтов и тому подобного. Я не особо беспокоюсь о лежащем в основе генераторе синтаксического анализатора (но один для.NET…
11 янв '10 в 22:22