【发布时间】:2017-03-31 20:14:56
【问题描述】:
如果继承的属性用于语义动作,我们可以使用x3::with 指令。
如果我们想将属性用作解析器的一部分怎么办?例如,一个简单的解析器匹配 1 个或多个字母字符,但该字符来自参数字符集。
qi::rule<std::string::const_iterator, qi::unused_type(char const*)> rule =
+(qi::alpha - qi::char_(qi::_r1));
或者参数字符集可以用作惰性解析器。
qi::rule<std::string::const_iterator, qi::unused_type(char const*)> rule =
+(qi::alpha - qi::lazy(qi::_r1));
x3::with 指令将此本地值放在上下文中。我不确定我们是否可以在语义操作之外使用此上下文并最终生成解析器。
【问题讨论】:
标签: c++ boost boost-spirit boost-spirit-qi boost-spirit-x3