【问题标题】:How can I require that a parser only returns full matches and not partial in boost spirit?我如何要求解析器只返回完整匹配而不是部分匹配?
【发布时间】:2014-10-06 17:20:33
【问题描述】:

在我的解析器中,有时语法只匹配输入字符串的第一部分。这似乎是短语解析()的正常行为,但不是我在我的应用程序中寻找的。​​p>

如何要求整个输入字符串与语法匹配才能成功解析,而不是在不消耗所有输入字符串的较短匹配项上返回成功?

【问题讨论】:

    标签: boost-spirit boost-spirit-qi


    【解决方案1】:

    最后只需要qi::eoi

    bool ok = qi::phrase_parse(f, l, grammar >> eoi, skipper);
    

    这也适用于丢弃与所有输入不匹配的分支:

    myrule = (legA >> eoi) | (legB >> eoi) | (legC >> eoi);
    

    另见

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      相关资源
      最近更新 更多