【发布时间】:2013-05-09 10:26:42
【问题描述】:
我想用 Boost::Spirit 解析一个文件,并且我想将解析后的数据传递给我的班级。我以前从未使用过 Boost::Spirit,因此我无法确定哪种方法是解决此问题的最佳方法。
我的文件结构如下所示:
Object {
Attribute1(2) {
1,2,3
4,5,6
}
Attribute2(3) {
1,2,3
3,4,5
6,7,8
}
Attribute3(1) {
1,2
}
ComplexAttribute1 {
Inner_Attribute1: 1
Inner_Attribute2: 2
Inner_Atribute3(2) {
1,2,3, 4,5,6, 7,8,9
9,8,7, 6,5,4, 3,2,1
}
}
ComplexAttribute2 {
Inner_Attribute1: 1
Inner_Attribute2: 2
Inner_Atribute3(2) {
1,2,3, 4,5,6, 7,8,9
9,8,7, 6,5,4, 3,2,1
}
}
首先我想我是按块读取文件的。一个块是 { 和 } 字符之间的文本,我会为这样的块写一个语法。与使用 while 循环相比,我会遍历这些块。但是感觉这不是一个好的解决方案。
有没有办法写一个可以解析整个文件的大语法?
类似:
如果“对象”那么... 如果“属性1”那么... 等等……
任何人都可以给我一些执行类似操作的示例代码,将不胜感激!当然,我很高兴有任何可以帮助我的建议/链接。
提前致谢!
【问题讨论】:
标签: c++ parsing boost-spirit