C语言 错误:未声明的变量 $



当我运行下面的bison程序(按bison file.y(时,我得到错误missing a declaration type for $2 in 'seq'

%union {
       char cval;
}
%token <cval> AMINO 
%token STARTCODON STOPCODON
%%
series: STARTCODON seq STOPCODON {printf("%s", $2);}
seq : AMINO
         | seq AMINO
         ;
%%

想知道为什么我会收到此错误,以及如何正确声明变量$2

你还没有告诉野牛seq是什么类型,所以它不知道如何处理$2

使用 %type 指令:

%type <cval> seq

请注意,用于$2的类型是单个char,它不是"%s"格式所期望的字符串。您需要想出一种方法来从序列中创建自己的字符串。

最新更新