-5

我正在尝试在 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 矩阵 m=4;并返回 tINTMATRIXTYPE,但实际上,我们有一个名为 matrixm 的整数类型,我希望它被识别为 this,即它应该返回 tINTTYPE。我该怎么办?

谢谢

4

1 回答 1

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];
于 2013-04-12T17:42:31.240 回答