在windows上运行bison时出错“冲突:1 shift/reduce,1 reduce/reduce C:\GnuWin32\bin\bison.exe:m4:无效参数”
第一次学习lex yacc。 但是bison中没有运行任何代码 错误:C:\GnuWin32\bin\bison.exe:m4:参数无效 我重新安装了bison,检查了路径,但仍然没有出错。 m4文件有问题吗 PS C:\Users\Vishwajeet\Desktop\lab\Compiler\D2>bison-dygm2.y 冲突:1个班次/减少,1个减少/减少 C:\GnuWin32\bin\bison.exe:m4:无效参数 路径:C:\GnuWin32\bin没有空格的路径在windows上运行bison时出错“冲突:1 shift/reduce,1 reduce/reduce C:\GnuWin32\bin\bison.exe:m4:无效参数”,bison,yacc,lex,Bison,Yacc,Lex,第一次学习lex yacc。 但是bison中没有运行任何代码 错误:C:\GnuWin32\bin\bison.exe:m4:参数无效 我重新安装了bison,检查了路径,但仍然没有出错。 m4文件有问题吗 PS C:\Users\Vishwajeet\Desktop\lab\Compiler\D2>bison-dygm2.y 冲突:1个班次/减少,1个减少/减少 C:\GnuWin32\bin\bison.exe:m4:无效参数 路径:C:\GnuWin32\bin没有空格的路径 %{
%{
#include<stdio.h>
#include<stdlib.h>
int yylex();
%}
%token A B C NL
%%
stmt: S NL { printf("valid string\n");
exit(0); }
;
S: X Y | W
;
X: A X B |
;
Y: C Y |
;
W: A W C | Z
;
Z: B Z |
;
%%
int yyerror(char *msg)
{strong text
printf("invalid string\n");
exit(0);
}
最有可能的是,您的路径中还有另一个m4 gnuwin32之前的环境变量 陪伴野牛。仔细检查这个。 您可以在环境路径变量列表的顶部设置路径C:\GnuWin32\bin。
运行bison时使用的完整命令行是什么?请把它编辑成你的问题。准确;从终端复制并粘贴。或者,如果您使用的是某种构建工具/IDE,请查看构建日志。顺便说一句,这个问题通常与文件路径中的空格有关。Bison安装在没有空格C:\GnuWin32\bin的路径上。还有一个问题:我不知道解决方案,但我遇到了同样的问题,并在make文件中运行了确切的命令,例如,calc.tab.c calc.tab.h:calc.y bison-t-v-d calc.y不会为我产生错误