我正在使用以下命令
bison.exe -v -d -l -pTPZyy -bTpz -o %ParserDir%\parser.cpp %ParserDir%\parser.y
它输出'Parser.cpp'和'Parser.hpp'。在我们公司,我们没有cpp/hpp
cpp/h
个parser.h
文件的约定。如何告诉bison生成parser.cpp
和{{1}}文件?
它厌倦了它的文档,但没有找到任何关于此的内容。
答案 0 :(得分:4)
这适用于最新版本的野牛,虽然我从来没有在Windows上试过它:
bison -v --defines=parser.h --output=parser.cpp parser.y
顺便问一下,为什么要设置文件前缀(-b
)?据我所知,只有在未指定显式输出文件时才有效。对于-v
文件,您可以使用--report-file=PATH
答案 1 :(得分:0)
我认为没有直接的方法,我们将它放在我们的makefile中:
SomeLang.cpp: SomeLang.yy
$(BISON) $(YACCFLAGS) -osSomeLang.cpp $< && \
mv SomeLang.hpp SomeLang.h