【发布时间】:2011-05-01 00:01:10
【问题描述】:
我正在使用 Spirit 2.4,我想解析这样的结构:
文本{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( "\\}" );
但甚至无法编译。有什么想法吗?
【问题讨论】:
-
编译器错误(以及它所在的行)会有所帮助。
标签: c++ boost boost-spirit boost-spirit-qi