Есть ли хороший рабочий учебник по 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 ответ

Решение

Этот урок работает для меня:

  1. Получить re2c (см. Страницу установки re2c для получения подробной информации http://re2c.org/install/install.html).

  2. Получить лимон: скачать тарбол wget http://prdownloads.sourceforge.net/souptonuts/lemon_examples.tar.gz, распаковать и собрать (пришлось добавить #include <stdlib.h> много примеров для malloc).

  3. Клон репозитория github https://github.com/tokuhirom/re2c-lemon-tutorial: git clone https://github.com/tokuhirom/re2c-lemon-tutorial.git

  4. Патч re2c-lemon-tutorial/Makefile, чтобы найти лимона и re2c (при необходимости).

  5. make, ./mycalc и наслаждайтесь Ctrl+D остановить и испустить результат).

Больше примеров re2c на сайте re2c: http://re2c.org/, больше примеров лимонов внутри лимона tarball.

Другие вопросы по тегам