【问题标题】:How to parse complex string file with Boost::Spirit如何使用 Boost::Spirit 解析复杂的字符串文件
【发布时间】: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


    【解决方案1】:

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

    A - 是的。

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

    【讨论】:

    • 非常感谢您提供这些链接!
    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多