我正在使用Spirit 2.4,我想解析这样的结构:解析带有助推精神的逃脱字符串
Text {text_field};
问题是,text_field是一个带符号'{','}'和'\'的转义字符串。 我想创建一个使用qi的解析器。我一直在试试这个:
using boost::spirit::standard::char_;
using boost::spirit::standard::string;
using qi::lexeme;
using qi::lit;
qi::rule< IteratorT, std::string(), ascii::space_type > text;
qi::rule< IteratorT, std::string(), ascii::space_type > content;
qi::rule< IteratorT, std::string(), ascii::space_type > escChar;
text %=
lit("Text") >> '{' >>
content >>
"};"
;
content %= lexeme[ +(+(char_ - (lit('\\') | '}')) >> escChar) ];
escChar %= string("\\\\")
| string("\\{")
| string("\\}");
但是甚至没有编译。任何想法?
编译器错误(和它所在的行)将有所帮助。 – 2010-10-26 21:31:08