未ソートスキーマの boost::Spirit Grammar
-
24-09-2019 - |
質問
解析する必要があるモデルのスキーマのセクションがあります。以下のような感じだとしましょう。
{
type = "Standard";
hostname="x.y.z";
port="123";
}
プロパティは次のとおりです。
- 要素は順序付けされていないように見える場合があります。
- スキーマの一部であるすべての要素が表示される必要があり、他の要素は表示されません。
- 要素の合成された属性はすべて構造体に入ります。
- (オプション) スキーマは将来、型フィールド、つまり型に基づいて異なるフィールドに依存する可能性がありますが、現時点ではこれについては心配していません。
解決
スピリットフォーラムによると、次のように答えている。
あなたが見ているしたい場合があります 順列パーサます:
またはbまたはc(または一致したa ^ b ^ c
任意の順序でそれらの組み合わせ)。
目標はすべての重要なメンバーが初期化されたテスト天候に最善の方法よりも、構造体の中に解析する場合には、構造体のメンバがboost::optional<>
属性の存在でラップする必要がありますが、簡単に実行時にポストの解析を試験することができますます。
所属していません StackOverflow