错误:未声明的变量$

问题描述 投票:1回答:1

当我运行下面的bisonprogram(由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

c bison yacc
1个回答
2
投票

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

使用%type指令:

%type <cval> seq

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

© www.soinside.com 2019 - 2024. All rights reserved.