我寫在彎曲掃描儀,我有以下兩個定義匹配一個奇怪的情況:關於柔性
%%
"int" printf("JUST_INT");
"int"[ \t\n]+"matrix" printf("MATRIX_INT");
[A-Za-z][A-Za-z0-9]* printf("IDENTIFIER");
%%
當輸入到掃描儀是int matrixM = 3;
輸出爲MATRIX_INT IDENTIFIER
。它將輸入視爲int matrix M=3
。但實際上,這不是matrix
,標識符的名稱是matrixM
。輸出應該是JUST_INT IDENTIFIER
。這是爲什麼發生?那是因爲我的定義嗎?