2013-02-25 74 views
0

我正尝试在flex中编写一段与“if”关键字匹配的代码。当我写:在flex词法分析器中与“if”匹配

if printf("Saw an if"); 

它匹配,但它也匹配,例如,如果输入的是abcdifcd,输出变为abcdSaw的ifcd,但我想是无效的,即输出必须abcifcd,因为它无效。换句话说,我希望它仅在单独找到关键字“if”时有效,例如我想要如果abcdabcd如果有效但ifa,aif等无效。我怎样才能做到这一点?

回答

3

无论你认为他们是什么,你需要添加一个匹配“单词”的规则。记得先把“if”的规则。例如:

"if"   printf("Saw a if"); 
[a-zA-Z]+ ECHO