在我的yacc文件中,我有以下内容:
var_declaration : type_specifier ID ';'
| type_specifier ID '[' NUM ']' ';' ;
type_specifier : INT | VOID ;
ID,NUM,INT和VOID是从flex返回的标记,因此yacc识别它们没有问题。问题是在上面有'['和';'之类的东西。当flex识别出这些内容时,应该将哪些内容返回给yacc?
答案 0 :(得分:4)
您可以自己返回角色。保证令牌不与ASCII字符冲突:
http://www.gnu.org/software/bison/manual/html_node/Token-Decl.html
Bison将自动选择代码 不相互冲突或 用ASCII字符。
所以在你的flex文件中,
[\[\];] { return yytext[0]; }
没关系。