我怎样才能使野牛文档的 calc++ 示例工作

How can I make the calc++ example of bison-doc work?

本文关键字:文档 calc++ 工作      更新时间:2023-10-16

我安装了一些野牛的例子,通过

$ sudo apt  install bison-doc
$ ls  /usr/share/doc/bison-doc/examples/calc++/
calc++.cc  calc++-driver.cc  calc++-driver.hh  calc++-parser.yy  calc++-scanner.ll

然后我通过创建一个生成文件来构建它

$ cp -r /usr/share/doc/bison-doc/examples/calc++/ /tmp
$ cd /tmp/calc++/
$ cat Makefile
calc++: calc++-parser.yy calc++-scanner.ll calc++-driver.hh calc++-driver.cc calc++.cc
    bison calc++-parser.yy -o calc++-parser.cc
    flex calc++-scanner.ll
    g++ -o calc++ *.cc *.c -lm 
clean:
    rm calc++ *.o position.hh stack.hh location.hh calc++-parser.tab.hh calc++-parser.tab.cc calc++-parser.cc calc++-parser.hh lex.yy.c
$ make
bison calc++-parser.yy -o calc++-parser.cc
flex calc++-scanner.ll
g++ -o calc++ *.cc *.c -lm 

但是当我尝试运行可执行文件时,它会立即返回而不是等待 stdin 输入:

$ ./calc++
$

我做错了什么?我怎样才能让它工作?谢谢。

从读取calc++.cc,它对在命令行上传递的文件进行操作。您可以将/dev/stdin作为文件名传递以读取标准。

另请注意,在过去的几个版本中,野牛中C++支持的质量发生了重大变化,如果可能,请使用野牛 3.3。