boost:spirit :: qi和tab作为分隔符

时间:2011-11-15 12:06:38

标签: c++ parsing boost

我是新手。我用tab('\ t')分隔了字符串。 我如何用boost :: spirit解析它?

parser code from boost's samples

1 个答案:

答案 0 :(得分:0)

boost示例代码与实际的boost示例不同,后者以逗号分隔,所以可能有你的修改?

ascii :: space解析器将作为分隔符为您处理选项卡,如下所示:

start %=
    lit("employee")
    >> '{'
    >>  int_ >>
    >>  quoted_string >>
    >>  quoted_string >>
    >>  double_
    >>  '}'
    ;

应该有效(减去'lit('\t')')。但是,这也会解析其他间距字符(例如空格,制表符)。

如果您确实需要明确地只在术语之间使用单个选项卡,请留在lit('\t')并将其包装在lexeme[]中以禁用跳过解析器跳过。