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