Bison 返回相同的值
我的语法是这样的:Bison 返回相同的值,bison,yacc,Bison,Yacc,我的语法是这样的: S : value1 ':' value2 ';' {printf("%s %s",$1,$3);}; 输入:你好:世界; 输出:您好您好 value1和value2都是字符串。 问题是$3返回的值与$1相同,我找不到原因 我找到了解决方案,我只是忘了在value2中更新yylval。我找到了解决方案,我只是忘了在value2中更新yylval。几乎可以肯定,因为您在flex操作中编写了yylval=yytext。如果以后要使用令牌字符串,必须复制它。这几乎可以肯定,因为
S : value1 ':' value2 ';' {printf("%s %s",$1,$3);};
输入:你好:世界;
输出:您好您好
value1和value2都是字符串。
问题是$3返回的值与$1相同,我找不到原因 我找到了解决方案,我只是忘了在value2中更新yylval。我找到了解决方案,我只是忘了在value2中更新yylval。几乎可以肯定,因为您在flex操作中编写了
yylval=yytext
。如果以后要使用令牌字符串,必须复制它。这几乎可以肯定,因为您在flex操作中编写了yylval=yytext
。如果以后要使用令牌字符串,则必须创建其副本。