Я новичок в использовании бизонов и гибких. Я загрузил пакет, предоставленный официальным сайтом gnu bison. В папке примера содержатся исходные коды калькулятора в C++. Вот ссылка для скачивания: ftp://ftp.gnu.org/gnu/bison/Как использовать пример calC++, предоставленный зубром?
Я следующее действие:
bison -d calc++-parser.yy => OK, produce calc++-parser.tab.hh and calc++-parser.tab.cc
flex calc++-scanner.ll => OK, produce lex.yy.c
cc -o a.out lex.yy.c calc++-parser.tab.cc -lfl => failed
Я понятия не имею, почему я потерпел неудачу на третьем этапе, на самом деле, я не знаю, то ли я делаю правильно или не.
calc++-scanner.ll:2:20: error: cstdlib: No such file or directory
calc++-scanner.ll:5:19: error: string: No such file or directory
In file included from calc++-scanner.ll:6: ../../doc/bison.texinfo:8284:16: error: map: No such file or directory
In file included from ../../doc/bison.texinfo:8285, from calc++-scanner.ll:6: ../../doc/bison.texinfo:8440: error: expected '=', ',', ';', 'asm' or 'attribute' before 'calcxx_driver'
(... such error msg)
Компилятор Версия: GCC 4.2.1
Бизон: 2.5.1
Шлейф: 2.5.4
После того, как с помощью {г ++} вместо {} куб.см:
[email protected][9:45pm]~/Compiler/calc++>g++ -o a.out lex.yy.c calc++-parser.tab.cc -lfl
In file included from ../../doc/bison.texinfo:8285,from ../../doc/bison.texinfo:8504:
./calc++-parser.hh:126: error: redefinition of 'class yy::calcxx_parser' calc++-parser.tab.hh:96: error: previous definition of 'class yy::calcxx_parser'
Спасибо akim! Я обновил его. Наконец-то я нашел веб-сайт Makefile для этого примера. (Я ищу его так сильно, как только смогу). Я предоставлю Makefile, который решит мою проблему. –