我想用 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”那么...等等...
任何人都可以给我一些执行类似操作的示例代码,将不胜感激!当然,我对任何可以帮助我的建议/链接感到满意。
提前致谢!