Frage

habe ich einen Abschnitt ein Schema für ein Modell, dass ich analysieren müssen. Sagen wir es wie folgt aussieht.

{
  type = "Standard";
  hostname="x.y.z";
  port="123";
}

Die Eigenschaften sind:

  1. Die Elemente können ungeordnet erscheinen.
  2. Alle Elemente, die Teil des Schemas sind, müssen erscheinen, und keine andere.
  3. Alle der synthetisierten Attribute gehen Elemente in einer Struktur.
  4. (optional) Das Schema könnte in Zukunft hängt vom Typ Feld - das heißt, verschiedene Felder auf Typen basieren - allerdings bin ich darüber im Moment nicht betroffen.
War es hilfreich?

Lösung

Nach dem Geist Foren, die folgende ist die Antwort.

  

Sie können einen Blick auf die haben wollen   Permutation Parser:

a ^ b ^ c 
     

Welche a oder b oder c entspricht (oder eine   Kombination daraus) in beliebiger Reihenfolge.

Wenn das Ziel in eine Struktur zu analysieren ist, als der beste Weg, um Testverhalten alle wesentlichen Elemente initialisiert wurden, soll die Strukturkomponenten mit boost::optional<> gewickelt wird Das Attribut Präsenz kann dann leicht getestet post-Parsing während der Laufzeit .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top