我想写一个可以使用的解析器(作为qi扩展)通过my_parser(p1,p2,...)其中p1,p2,...是qi解析器表达式。实际上,我想实现一个best_match解析器,它的工作方式类似于qi替代方案,但不选择第一个匹配规则,而是选择“解释”大部分输入的规则。给定两个规则simple_id=+(qi::alpha)和complex_id=simple_id>>*(qi::string("::")>simple_id)它会在输入willy::anton上选择complex_id。并且这样做不会产生中间属性。因为需要先行解析,所以这些好处会在运行时得到返回。在我看来,这种解析器构造有