I am writing a scanner in flex, and I have the following two definitions:
%%
"int" printf("JUST_INT");
"int"[
]+"matrix" printf("MATRIX_INT");
[A-Za-z][A-Za-z0-9]* printf("IDENTIFIER");
%%
When the input to the scanner is int matrixM = 3;
the output is MATRIX_INT IDENTIFIER
. It sees the input as int matrix M=3
. But actually, this is not a matrix
, the name of identifier is matrixM
. Output should be JUST_INT IDENTIFIER
. Why is this happening? Is that because of my definitions?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…