2

我想用 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”那么...等等...

任何人都可以给我一些执行类似操作的示例代码,将不胜感激!当然,我对任何可以帮助我的建议/链接感到满意。

提前致谢!

4

1 回答 1

2

有没有办法编写一个可以解析整个文件的大语法?

A - 是的。

查看以下非常相似的语法:

于 2013-05-09T11:05:20.807 回答