我正在使用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