在windows上运行bison时出错“冲突:1 shift/reduce,1 reduce/reduce C:\GnuWin32\bin\bison.exe:m4:无效参数”

在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没有空格的路径 %{

第一次学习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不会为我产生错误