如何将文字从flex返回到yacc?

时间:2009-11-17 12:17:12

标签: grammar yacc lexical-analysis

在我的yacc文件中,我有以下内容:

var_declaration : type_specifier ID ';'
                | type_specifier ID '[' NUM ']' ';' ;

type_specifier : INT | VOID ;

ID,NUM,INT和VOID是从flex返回的标记,因此yacc识别它们没有问题。问题是在上面有'['和';'之类的东西。当flex识别出这些内容时,应该将哪些内容返回给yacc?

1 个答案:

答案 0 :(得分:4)

您可以自己返回角色。保证令牌不与ASCII字符冲突:

http://www.gnu.org/software/bison/manual/html_node/Token-Decl.html

  

Bison将自动选择代码   不相互冲突或   用ASCII字符。

所以在你的flex文件中,

[\[\];]     { return yytext[0]; }

没关系。