2013-05-09 78 views
2

我想用Boost :: Spirit解析文件,并且想将解析的数据传递给我的类。我以前从未使用过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 
     } 
    } 

首先,我在想,我读到块文件。一块是{和}字符之间的文本,我会为这样的块编写一个文法。比一段时间循环,我会穿过大块。但它感觉这不是一个好的解决方案。

有没有一种方法可以编写一个大的语法分析整个文件?

喜欢的东西:

如果“对象”那么......如果 “ATTRIBUTE1”那么...... 等等

任何人都可以给我一些示例代码,做类似的会是什么非常感激!当然,我对任何可以帮助我的建议/链接感到满意。

在此先感谢!

回答