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
        }
    }

最初は、ファイルをチャンクで読み取ると考えていました。1 つのチャンクは { と } 文字の間のテキストであり、そのようなチャンクの文法を記述します。while ループよりも、チャンクを調べます。しかし、これは良い解決策ではないように感じます。

ファイル全体を解析できるようにグラマーを大きく書く方法はありますか?

何かのようなもの:

if "Object" then ... if "Attribute1" then... etc...

誰でも似たようなことをするサンプルコードを教えていただければ幸いです! もちろん、私を助けることができるアドバイス/リンクに満足しています.

前もって感謝します!

4

1 に答える 1

2

ファイル全体を解析できるようにグラマーを大きく書く方法はありますか?

A - はい。

非常によく似た文法については、次を参照してください。

于 2013-05-09T11:05:20.807 に答える