Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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生成parser.cpp和parser.h文件,而不是parser.cpp和parser.hpp?_Bison - Fatal编程技术网

如何告诉bison生成parser.cpp和parser.h文件,而不是parser.cpp和parser.hpp?

如何告诉bison生成parser.cpp和parser.h文件,而不是parser.cpp和parser.hpp?,bison,Bison,我使用以下命令 bison.exe-v-d-l-pTPZyy-bTpz-o%ParserDir%\parser.cpp%ParserDir%\parser.y 它输出'Parser.cpp'和'Parser.hpp'。我们公司没有关于cpp/hppitscpp/h文件的约定。如何让bison生成parser.h和parser.cpp文件 它厌倦了它的文档,但没有找到任何关于这方面的东西 我认为没有直接的方法,我们把它放在makefile中: SomeLang.cpp: SomeLang.

我使用以下命令

bison.exe-v-d-l-pTPZyy-bTpz-o%ParserDir%\parser.cpp%ParserDir%\parser.y

它输出'Parser.cpp'和'Parser.hpp'。我们公司没有关于
cpp/hpp
its
cpp/h
文件的约定。如何让bison生成
parser.h
parser.cpp
文件


它厌倦了它的文档,但没有找到任何关于这方面的东西

我认为没有直接的方法,我们把它放在makefile中:

    SomeLang.cpp: SomeLang.yy
        $(BISON) $(YACCFLAGS) -osSomeLang.cpp $< && \
        mv SomeLang.hpp SomeLang.h
SomeLang.cpp:SomeLang.yy
$(野牛)$(YACCFLAGS)-osSomeLang.cpp$<&&\
mv SomeLang.hpp SomeLang.h

我认为没有直接的方法,我们把它放在makefile中:

    SomeLang.cpp: SomeLang.yy
        $(BISON) $(YACCFLAGS) -osSomeLang.cpp $< && \
        mv SomeLang.hpp SomeLang.h
SomeLang.cpp:SomeLang.yy
$(野牛)$(YACCFLAGS)-osSomeLang.cpp$<&&\
mv SomeLang.hpp SomeLang.h

这适用于bison的最新版本,尽管我从未在Windows上尝试过:

bison -v --defines=parser.h --output=parser.cpp parser.y

顺便问一下,为什么要设置文件前缀(
-b
)?据我所知,这只有在不指定显式输出文件的情况下才有效。对于
-v
文件,您可以使用
--report file=PATH

指定一个显式文件名,这适用于bison的最新版本,尽管我从未在Windows上尝试过:

bison -v --defines=parser.h --output=parser.cpp parser.y
顺便问一下,为什么要设置文件前缀(
-b
)?据我所知,这只有在不指定显式输出文件的情况下才有效。对于
-v
文件,可以使用
--report file=PATH