【发布时间】:2015-04-27 23:14:50
【问题描述】:
我正在尝试解析属性顺序无关紧要的对象。
例如解析员工
员工 { surname = "doe", firstname = "john", age = 30 }
应该和
一样员工 { 年龄 = 30,名字 = “约翰”,姓氏 = “能源部”}
所以理想情况下,我的规则应该是(不要介意缺少正式定义)
unordered_rule %= lit("employee") >> "{"
>> kwd("surname")["=" > quoted_string]
/ kwd("age")["=" > int_]
/ kwd("firstname")["=" > quoted_string]
/ kwd("age")["=" > int] >> "}";
但首先,如何将分隔逗号合并到解析规则中?对于我的 C++ 结构struct employee { std::string firstname; ... int age; },属性的顺序是否重要,或者即使在结构已转换为融合向量之后,boost 如何知道哪个关键字对应于哪个属性?
即使在阅读了有关关键字列表运算符的文档后,这对我来说也并没有真正加起来。
【问题讨论】:
标签: c++ boost boost-spirit-qi