-5
我想在flex中定義兩個令牌。第一個返回「tINTTYPE」,它在輸入中看到字符串「int」時返回,另一個返回「TINTTYPE」,當它在輸入中看到「int matrix」時返回。在flex中定義令牌「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的整數類型,我希望它被識別爲this,即它返回tINTTYPE。我能做些什麼呢?
謝謝
如果'INT matrix'後跟非空白的,非標識符字符(如')這將表現不好')。最好使用'int [\ t \ n] matrix/[^ A-Za-z0-9_]'這個模式,它會匹配任何'int matrix',只要它沒有後面跟着的東西以'matrix'開始的更長的標識符 –
正確。但是因爲我們對他的語法一無所知,所以我保持原文的風格。 – Josh