大多數flex程序有二義性,相同的輸入可能被多種模式匹配flex
flex經過下面2個規則來解決blog
例子class
"+" { return ADD; } "=" { return ASSIGN; } "+=" { return ASSIGNADD; } "if" { return KEYWORDIF; } "else" { return KEYWORDELSE; } [a-zA-Z_][a-zA-Z0-9_]* { return IDENTIFIER; }
以上模式中,由於 "+="更長,因此優先匹配程序
後三個關鍵字來講, 先匹配關鍵字di