【问题标题】:Matching with "if" in flex lexical analyzer在 flex 词法分析器中与“if”匹配
【发布时间】:2013-02-25 20:48:49
【问题描述】:

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

if printf("Saw an if");

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

【问题讨论】:

    标签: parsing flex-lexer lexical-analysis


    【解决方案1】:

    您需要添加一个匹配“单词”的规则,无论您认为它们是什么。请记住将“如果”的规则放在首位。例如:

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

    【讨论】:

      猜你喜欢
      • 2022-10-13
      • 1970-01-01
      • 2021-11-25
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      相关资源
      最近更新 更多