与"匹配"如果"在flex词法分析器中

时间:2013-02-25 20:48:50

标签: parsing flex-lexer lexical-analysis

我正在尝试在flex中编写一段与“if”关键字匹配的代码。我写的时候:

if printf("Saw an if");

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

1 个答案:

答案 0 :(得分:3)

您需要添加与“单词”匹配的规则,无论您认为它们是什么。记得先把“if”的规则放在上面。例如:

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