2013-05-09 79 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」那麼...... 等等

任何人都可以給我一些示例代碼,做類似的會是什麼非常感激!當然,我對任何可以幫助我的建議/鏈接感到滿意。

在此先感謝!

回答