Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bison 如何使用calc++;野牛提供的例子?_Bison_Calculator_Flex Lexer - Fatal编程技术网

Bison 如何使用calc++;野牛提供的例子?

Bison 如何使用calc++;野牛提供的例子?,bison,calculator,flex-lexer,Bison,Calculator,Flex Lexer,我是使用bison和flex的新生。 我下载了gnu bison官方网站提供的软件包。 有一个例子文件夹包含C++中的计算器的源代码。 以下是下载链接: 我采取了以下行动: bison-d calc++-parser.yy=>OK,生成calc++-parser.tab.hh和calc++-parser.tab.cc flex-calc++-scanner.ll=>OK,生成lex.yy.c cc-o a.out lex.yy.c calc++-parser.tab.cc-lfl=>失败 我不知

我是使用bison和flex的新生。 我下载了gnu bison官方网站提供的软件包。 有一个例子文件夹包含C++中的计算器的源代码。 以下是下载链接:

我采取了以下行动:

bison-d calc++-parser.yy=>OK,生成calc++-parser.tab.hh和calc++-parser.tab.cc

flex-calc++-scanner.ll=>OK,生成lex.yy.c

cc-o a.out lex.yy.c calc++-parser.tab.cc-lfl=>失败

我不知道为什么我在第三步失败了,事实上,我真的不知道我是否做对了

calc++-scanner.ll:2:20:error:cstdlib:没有这样的文件或目录

calc++-scanner.ll:5:19:错误:字符串:没有这样的文件或目录

在calc++-scanner.ll:6:../../doc/bison.texinfo:8284:16包含的文件中:错误:映射:没有这样的文件或目录

在从../../doc/bison.texinfo:8285,从calc++-scanner.ll:6:../../doc/bison.texinfo:8440包含的文件中:错误:应为“=”,“,”,“;”,”“calcxx\u驱动程序”之前的“asm”或“属性”

(…此类错误消息)

编译器版本:gcc 4.2.1

野牛:2.5.1

弹性:2.5.4

在使用{g++}而不是{cc}之后:

u97530048@csie0[9:45pm]~/Compiler/calc++>g++-o a.out lex.yy.c calc++-parser.tab.cc-lfl

在文件中包括从.././doc/bison.texinfo:8285,从.././doc/bison.texinfo:8504:

./calc++-parser.hh:126:错误:重新定义'classyy::calcxx_parser' calc++-parser.tab.hh:96:错误:“类yy::calcxx_parser”的先前定义


我无法重现你对野牛2.7.2的问题。Bison 2.5已经过时了,您应该升级并报告您可能遇到的问题。

我无法用Bison 2.7.2重现您的问题。野牛2.5是古老的,你应该升级并报告你可能遇到的问题

全部:calc++.out

calc++.out:calc++-driver.o calc++-parser.o calc++-scanner.o calc++.o calc++.o

g++-o calc++.out calc++-driver.o calc++-parser.o calc++-scanner.o calc++.o calc++.o

calc++-driver.o:calc++-driver.cc calc++-driver.hh calc++-parser.hh

g++-c calc++-driver.cc

calc++-parser.o:calc++-parser.cc calc++-parser.hh calc++-driver.hh

g++-c calc++-parser.cc

calc++-parser.cc calc++-parser.hh:calc++-parser.yy

bison--defines=calc++-parser.hh-ocalc++-parser.cc calc++-parser.yy

calc++-scanner.o:calc++-scanner.cc calc++-parser.hh calc++-driver.hh

g++-c calc++-scanner.cc

calc++-scanner.cc:calc++-scanner.ll

flex-ocalc++-scanner.cc calc++-scanner.ll

calc++.o:calc++.cc

g++-c计算+++.cc

.假冒:干净

清洁:

-rm*.o calc++-parser.hh calc++-parser.cc calc++-scanner.cc location.hh position.hh stack.hh calc++.out

全部:calc++.out

calc++.out:calc++-driver.o calc++-parser.o calc++-scanner.o calc++.o calc++.o

g++-o calc++.out calc++-driver.o calc++-parser.o calc++-scanner.o calc++.o calc++.o

calc++-driver.o:calc++-driver.cc calc++-driver.hh calc++-parser.hh

g++-c calc++-driver.cc

calc++-parser.o:calc++-parser.cc calc++-parser.hh calc++-driver.hh

g++-c calc++-parser.cc

calc++-parser.cc calc++-parser.hh:calc++-parser.yy

bison--defines=calc++-parser.hh-ocalc++-parser.cc calc++-parser.yy

calc++-scanner.o:calc++-scanner.cc calc++-parser.hh calc++-driver.hh

g++-c calc++-scanner.cc

calc++-scanner.cc:calc++-scanner.ll

flex-ocalc++-scanner.cc calc++-scanner.ll

calc++.o:calc++.cc

g++-c计算+++.cc

.假冒:干净

清洁:

-rm*.o calc++-parser.hh calc++-parser.cc calc++-scanner.cc location.hh position.hh stack.hh calc++.out


谢谢你,阿金!我必须升级它。我终于找到了一个为这个例子提供Makefile的网站。(我尽我所能地寻找它)。我会提供解决我问题的Makefile。谢谢akim!我必须升级它。我终于找到了一个为这个例子提供Makefile的网站。(我尽我所能地寻找它)。我将提供解决我的问题的Makefile。