Bison 如何使用calc++;野牛提供的例子?
我是使用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”的先前定义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=>失败 我不知
我无法重现你对野牛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。