使用Spirit Parser Framework处理Escapes

时间:2009-05-30 18:56:21

标签: c++ boost-spirit

我正在尝试使用精神解析器解析类似于以下内容的字符串:

<junk> -somearg#this is a string with a literal ## in it# <junk>

我正在寻找的是一种语法,它可以提取#标记内的部分,但是很容易跳过中间的双##,这是一个转义,意思是文字#。

这就是我的想法:
confix_p(L'#', *anychar_p, L'#' >> ~ch_p(L'#'))
但是这会返回:
#this is a string with a literal ##
我希望它跳过##个字符......这可能吗?

Billy3

1 个答案:

答案 0 :(得分:2)

我通过在confix解析器中添加kleene星来解决这个问题。不管怎样,谢谢!

*confix_p(L'#', *anychar_p, L'#' >> ~ch_p(L'#'))按预期工作。