使用make命令编译时,byacc%定义语法错误

时间:2015-08-30 18:50:44

标签: cygwin bison yacc

我正在尝试在Windows 10平台上运行Ymer工具。我已经通过cygwin安装了g ++,gcc,yacc。在configure命令之后,当我运行make命令编译应用程序时,它会生成以下错误。

PS C:\ymer> make
/bin/sh ./ylwrap src/grammar.yy y.tab.c src/grammar.cc y.tab.h echo src/grammar.cc | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/ y.output src/grammar.output -- byacc -d
    byacc: e - line 514 of "/cygdrive/c/ymer/src/grammar.yy", syntax error
    %defines
    ^
    Makefile:2467: recipe for target 'src/grammar.cc' failed
    make: *** [src/grammar.cc] Error 1

似乎grammar.yy文件导致了问题。任何人都知道如何解决这个问题。 BTW我既不熟悉yacc也不熟悉文件。我对cygwin也很新。

谢谢,

1 个答案:

答案 0 :(得分:2)

%defines声明是特定于野牛的(不属于standard yacc的一部分)。文件grammar.yy包含byacc实现的一些野牛功能,但这不是其中之一。 (从手册页中的description开始,这似乎等同于标准命令行选项-d,使其不太有用。)