我试图在flex中定义两个标记。第一个返回“tINTTYPE”,当它在输入中看到字符串“int”时返回,而另一个是“TINTTYPE”,当它在输入中看到“int matrix”时返回。
以下是我的flx文件的相关部分:
int {yylval.type_id.Type=1;return tINTTYPE;}
int[ \t\n]+matrix {yylval.type_id.Type=2;return tINTMATRIXTYPE;}
. return yytext[0];
问题是,当输入 int matrixm = 4; 时,扫描仪将其识别为 int matrix m = 4; 并返回tINTMATRIXTYPE,但实际上,我们有一个名为matrixm的整数类型,我希望它被识别为这个,即它shuld返回tINTTYPE。我该怎么办?
谢谢
答案 0 :(得分:1)
int {yylval.type_id.Type=1;return tINTTYPE;}
int[ \t\n]+matrix[ \t\n]+ {yylval.type_id.Type=2;return tINTMATRIXTYPE;}
. return yytext[0];