让Boost.Spirit处理可选元素

时间:2017-04-16 09:34:18

标签: c++ boost boost-spirit boost-spirit-qi

我的AST元素大致定义为

struct Something
{
  boost::optional<string> foo;
  string bar;
}

在我的解析代码中,我将其解析为

-(identifier >> ':')
>> type

现在,问题在于:如果我向解析器提供字符串hello:world,一切正常,即

foo = hello
bar = world

但是,如果我向解析器提供字符串hello,我会得到

foo = hello
bar = hello

而我想要的是

foo = boost::optional<string>()
bar = hello

如何在Boost.Spirit中实现这一目标?

0 个答案:

没有答案