由于从用户sehe“我现在在哪里我可以编译我的AST点帮助。
(请在这里看到: https://stackoverflow.com/a/29301655/1835623 )
现在从JEDEC文件我需要解析看起来像这样提取的数据字段中的一个:
“12345 0000100101010111010110101011010”
我已经建立了一个解析器来消费这些类型的字段:
std::string input("12345 010101010101010101010");
std::string::iterator st = input.begin();
qi::parse(st, input.end(), qi::ulong_ >> ' ' >> *qi::char_("01"));
显然没那么复杂。 现在我的问题是,我想要分配的ulong_和使用语义动作二进制串到一些局部变量。 这是我做的:
using boost::phoenix::ref;
std::string input("12345 010101010101010101010");
std::string::iterator st = input.begin();
uint32_t idx;
std::string sequence;
qi::parse(st, input.end(),
qi::ulong_[ref(idx) = qi::_1] >>
' ' >>
*qi::char_("01")[ref(sequence) += qi::_2]);
但不幸的是,这并不甚至编译和错误消息我得到的是没有帮助的(至少我)? 我想这是简单的东西......但我现在绝望地卡住。 :-(
是否有人有一个想法,我做错了什么?