Есть ли хороший рабочий учебник по 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.int_value = B.int_value * C.int_value;
^
In file included from main.cpp:2:0:
parser.c:770:16: error: ‘YY_MAX_SHIFTREDUCE’ was not declared in this scope
if( yyact <= YY_MAX_SHIFTREDUCE ){
^
parser.c:771:15: error: ‘YY_MAX_SHIFT’ was not declared in this scope
if( yyact>YY_MAX_SHIFT ) yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
^
Где это заявлено?
PS: не публикуйте 10-летние статьи (даже без кода или если код не может быть скомпилирован сейчас). Если можете - напишите пример здесь. Если нет - не публикуйте ссылки из Google.
1 ответ
Этот урок работает для меня:
Получить re2c (см. Страницу установки re2c для получения подробной информации http://re2c.org/install/install.html).
Получить лимон: скачать тарбол
wget http://prdownloads.sourceforge.net/souptonuts/lemon_examples.tar.gz
, распаковать и собрать (пришлось добавить#include <stdlib.h>
много примеров дляmalloc
).Клон репозитория github https://github.com/tokuhirom/re2c-lemon-tutorial:
git clone https://github.com/tokuhirom/re2c-lemon-tutorial.git
Патч re2c-lemon-tutorial/Makefile, чтобы найти лимона и re2c (при необходимости).
make
,./mycalc
и наслаждайтесьCtrl+D
остановить и испустить результат).
Больше примеров re2c на сайте re2c: http://re2c.org/, больше примеров лимонов внутри лимона tarball.