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
。如果以后要使用令牌字符串,则必须创建其副本。