Lemon is a parser generator, maintained as part of the SQLite project, that generates an LALR(1) parser in the C programming language from an input context-free grammar.
1 ответ

Анализ JSON с использованием Lemon (и Core Foundation)

Я пытаюсь написать простой парсер JSON, используя Lemon и Apple Core Foundation. Вот код на данный момент: %include { #import <CoreFoundation/CoreFoundation.h> #import "state.h" // struct ParserState { CFTypeRef result; }; #import "tuple.h" //…
28 окт '14 в 18:24
0 ответов

Почему я получаю разные результаты от лимонного парсера для одного и того же ввода?

Я использую лимон от cmake и затем делаю. Лимон будет генерировать разные shellparser.c от shellparser.y в зависимости от того, как я его вызываю. Я не уверен в деталях, но, по крайней мере, я могу построить проект сейчас. Проблема в том, что lemon …
15 май '16 в 04:27
1 ответ

Lemon берет lempar.c и выводит мусор в конце файла

Я использую LEMON Parser Generator и по какой-то причине он выводит кучу мусора в конце выведенного файла, а не заменяет %%s из lempar.c с сгенерированным кодом. Я скопировал lemon.c и lempar.c прямо из исходного кода sqlite. Вот мой файл грамматики…
19 июн '17 в 21:46
1 ответ

Выражение парсера для параметров вызова функций через запятую

Я пишу парсер, чем могу разобрать выражения, как myfunc1(), myfunc2(param1) а также myfunc3(param1, param2) (с неизвестным количеством параметров). Теперь я пытаюсь получить правильные выражения синтаксического анализа. Я использую Lemon Parser Gene…
03 июл '10 в 08:07
1 ответ

Грамматика или спецификация файлов Bison/Lemon

Мне нужно написать парсер для файлов грамматики Bison и Lemon. Я ищу спецификацию или грамматику этих файлов формата. Любые ссылки будут полезны.
1 ответ

Используйте лимонный парсер (LALR) для генерации калькулятора, как получить параметр из выражений

Я хочу получить параметр из входных данных. Например: Input:12+10, После запуска моего калькулятора. Я хочу получить 12 и 10. Я знаю, я должен использовать четвертый параметр в Parse(pParser, hTokenID, sTokenData, pArg);, но как? parser.y: %syntax_e…
21 янв '16 в 08:23
1 ответ

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

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

Ошибка сборки с использованием flex-lexer и cmake

Я изучаю cmake и flex-lexer, но у меня возникает проблема сборки с кодом ошибки 2 в соответствии с сообщением об ошибке от make: $ make /usr/bin/cmake -H/home/dac/ClionProjects/openshell -B/home/dac/ClionProjects/openshell --check-build-system CMake…
18 апр '16 в 04:23
1 ответ

Лимонный парсер как правило сборки Xcode

При использовании анализатора Lemon в XCode, интегрированном как "исходный файл Yacc с помощью Script", предупреждения, генерируемые Lemon, не отображаются в разделе предупреждений XCode.
21 фев '19 в 09:12
2 ответа

Восстановление токенов ошибок при разборе (Lemon)

Я использую Lemon в качестве генератора парсера, его обработка ошибок такая же, как у yacc и bison, если вы не знаете Lemon. У Lemon есть возможность определить токен ошибки в наборе правил, чтобы перехватывать ошибки синтаксического анализа. Поведе…
19 июл '10 в 21:29
1 ответ

Есть ли хороший рабочий учебник по re2c + lemon?

Я попробовал пару. И в Google есть только пара обучающих программ для re2c+lemon.В настоящее время для всех примеров я получаю похожие ошибки: In file included from main.cpp:2:0: parser.y:44:5: error: ‘yygotominor’ was not declared in this scope A.i…
25 мар '16 в 23:12
1 ответ

Разбор условного с лимоном

Я хочу разобрать следующий скрипт str="HELLO" if [ $str = "HELLO" ]; then echo FOO fi Первая строка str="HELLO" Я могу разобрать, и переменная будет сохранена для использования. Возможно запустить скрипт str="HELLO" echo $str и получить вывод HELLO,…
26 май '16 в 07:23
1 ответ

Решение разбор конфликтов в крошечной грамматике Лимона

Я пытаюсь изучить основы генератора парсеров Lemon, но я застрял быстро. Вот крошечная грамматика: %right PLUS_PLUS. %left DOT. program ::= expr. member_expr ::= expr DOT IDENTIFIER. lhs_expr ::= member_expr. expr ::= lhs_expr. expr ::= PLUS_PLUS lh…
3 ответа

Отладка сгенерированного парсером кода

Я сгенерировал код анализатора с помощью Lemon Parser. Я не могу отладить сгенерированный код. Элемент управления показывает некоторый другой исходный код, нежели текущий выполняемый оператор. Точки останова смещены. Я пробовал на GDB и Visual C++. …
30 июн '11 в 12:02
1 ответ

Лимонный парсер уменьшить ошибку

Я пытаюсь написать грамматику для разбора чисел в английских предложениях, и я могу успешно разобрать до 999. Как только я добавляю логику для поддержки тысяч, я получаю reduce Разбор конфликта, и мне трудно понять, что его вызывает. Я приложил част…
07 ноя '16 в 03:38
1 ответ

Почему лимон не запускает терминалы сразу?

Я перевожу небольшой интерпретатор с использованием flex и yacc для re2c и lemon. Все работает, но буквально. Почему действие, связанное с литералами, не запускается так же, как с yacc? Я ожидаю "1,0 конец", но получаю "0,0 конец" dspgrammar.y %incl…
01 сен '15 в 20:56
1 ответ

Бизон передает обратно в результате АСТ

В лимон я смог использовать третий параметр функции синтаксического анализа, чтобы передать результат вызывающей стороне, когда начальный символ был уменьшен. Как бы я сделал то же самое в зубров? Достаточно ли присвоить это значение $$ в коде дейст…
13 апр '11 в 17:07
2 ответа

Как убрать неоднозначность вызова функции из грамматики Лимона?

У меня есть следующая лимонная грамматика (упрощенная от настоящей грамматики): %right ASSIGN . %nonassoc FN_CALL . program ::= expression . expression ::= expression ASSIGN expression . expression ::= function_call . [FN_CALL] expression ::= IDENTI…
28 окт '10 в 00:38
1 ответ

Как использовать лимон для обработки выражения с переменными

Я хочу реализовать такую ​​программу: она читает некоторые выражения, которые включают в себя некоторые переменные. Эти переменные будут установлены позже, и программа должна рассчитать конечный результат (например, подготовленный оператор SQL). Нап…
22 сен '15 в 10:45
2 ответа

Анализатор лимонов 0 токен

У меня проблема с использованием (реентерабельного) Flex + Lemon для разбора. Я использую простую грамматику и лексер здесь. Когда я запускаю его, я добавляю число, за которым следует токен EOF (Ctrl-D). Распечатка будет читать: 89 found int of . AS…
20 дек '13 в 22:09