我正在使用 Yacc/Flex 编写程序,并且正在使用以下代码(不完全相同,因为我正在混合来自其他文件的代码):
DataType datat;
%union {
int integer;
char *string;
DataType type;
}
Integer { yylval.type = INTEGER; return INT; }
%type <type> INT
data : INTNUM { yylval.type = INTEGER; }
然后,如果我写这样的东西:
foo : data { bar(yylval.type); }
bar正确获取数据类型INTEGER,但如果我有这个:
foo : data data { ??? }
如何分别获取第一个和第二个成员的yylval.type?
非常感谢!