Parsing M4“;没有这样的文件或目录;。野牛
这是我在skener.y文件中的代码Parsing M4“;没有这样的文件或目录;。野牛,parsing,bison,yacc,Parsing,Bison,Yacc,这是我在skener.y文件中的代码 %{ #include <stdio.h> %} %token T_Int %% exp: T_Int { $$ = $1; } | exp exp '+' { $$ = $1 + $2; } | exp exp '-' { $$ = $1 - $2; } | exp exp '*' { $$ = $1 * $2; } | exp exp '/'
%{
#include <stdio.h>
%}
%token T_Int
%%
exp: T_Int { $$ = $1; }
| exp exp '+' { $$ = $1 + $2; }
| exp exp '-' { $$ = $1 - $2; }
| exp exp '*' { $$ = $1 * $2; }
| exp exp '/' { $$ = $1 / $2; }
;
%%
%{
#包括
%}
%令牌T_Int
%%
exp:T_Int{$$=$1;}
|exp exp'+'{$$=$1+$2;}
|exp exp'-'{$$=$1-$2;}
|exp exp'*'{$$=$1*$2;}
|exp exp'/'{$$=$1/$2;}
;
%%
当我用comand“bison-dskener.y”编译它时,我得到错误“m4:没有这样的文件或目录”。当然,在提示符中键入命令时,我位于工作文件夹中。我不知道它是关于什么的?这意味着你没有正确安装bison——你有一个可执行文件,但它缺少支持文件
返回并重新安装bison。在Windows 7 PC上通过Setup.exe安装时,我遇到了相同的错误。解决方法是将
..\GnuWin32\bin
目录添加到我的路径中。(有趣的是,这是许多工具中第一个在不在我的路径中时出现问题的工具)bison.exe文件中似乎有一些错误。
我用这个zip文件中的文件替换了它。
来源:在我的例子中,我按照jfritz42的答案解决了它,但不得不将…\MinGW\bin路径也添加到我的系统环境变量中 ...\MinGW\bin 下面是我案例的截图,希望能有所帮助:)
路径中任何文件夹的名称中都不应有空格。在我的例子中,我将它保存在C:/Program Files/GnuWin32/bin中,这导致了错误。然后我从程序文件中移动了文件夹,并将其放置为C:/GnuWin32/bin,它开始工作正常。这是我遇到的部分问题。塔伦的解决方案是另一部分。我刚刚修改了批处理文件中调用BISON的路径。谢谢你的提示。