Generieren Sie C/C ++ Command Line Argument Parsing -Code aus XML (oder ähnlich)C++

Programme in C++. Entwicklerforum
Guest
 Generieren Sie C/C ++ Command Line Argument Parsing -Code aus XML (oder ähnlich)

Post by Guest »

Gibt es ein Tool, das C /C ++ - Quellcode aus XML (oder ähnlichem) generiert, um die Befehlszeilenargument -Parsen -Funktionalität zu erstellen? Frage: < /p>

Ich habe jetzt Gengetopt für das Analyse des Befehlszeilenarguments verwendet. Es ist ein schönes Tool, das C -Quellcode aus einem eigenen Konfigurationsformat (einer Textdatei) generiert. Zum Beispiel die GenGetopt -Konfigurationslinie < /p>

Code: Select all

option "max-threads" m "max number of threads" int default="1" optional
< /code>

Erzeugt unter anderem eine Variable < /p>

int max_threads_arg;
< /code>

, den ich später verwenden kann. >


[*]  Eine Möglichkeit, Unix -Man -Seiten aus dem GenGetopt -Konfigurationsformat zu generieren < /p> < /li>
  Eine Möglichkeit, Docbook- oder HTML -Dokumentation aus dem GenGetopt -Konfigurationsformat zu generieren 
  Eine Möglichkeit, C/C ++ - Quellcode wiederzuverwenden und GengetOpt -Konfigurationslinien wiederzuverwenden, wenn ich i Haben Sie mehrere Programme, die einige gemeinsame Befehlszeilenoptionen teilen. /p>

command --help< /code> < /p>

, aber ich suche nach einer markierten Dokumentation (z. B. HTML, Docbook, Unix Man Pages). < /p>

Wissen Sie, ob es ein C/C ++ -Stool/eine liberale Open -Source -Lizenz gibt, die meine Anforderungen erfüllen würde? Ein Tool würde mit XML die Befehlszeilenargumente angeben. Das würde es einfach machen, Dokumentation in verschiedenen Formaten (z. B. Menschenseiten) zu generieren. Die XML -Datei sollte nur zum Erstellenzeit benötigt werden, um den C /C ++ - Quellcode zu generieren. Eine Konfigurationsdatei in XML zur Laufzeit, aber ich suche nach einem Tool, das zum Zeitpunkt der Erstellung C /C ++ - Quellcode aus XML (oder ähnlichem) generiert. < /p>

[b] UPDATE 1 < /strong> < /p>

Ich möchte die Berechnungen zur Kompilierungszeit und so weniger wie möglich zur Laufzeit so viel wie möglich machen. Daher möchte ich Bibliotheken vermeiden, die Ihnen eine Karte der Befehlszeilenoptionen geben, wie zum Beispiel Boost :: Program_Options :: Varables_Map (Tutorial). 

I ANDERE Wörter, ich bevorzuge args_info.iterations_arg 
zu vm ["iterations"]. as ()

Benutzer Tsug303 < /strong> schlug die Bibliothek TClap < /code> vor. Es sieht ganz gut aus. Es würde zu meinen Bedürfnissen passt, die Optionen in Gruppen zu teilen, damit ich Code wiederverwenden kann, wenn mehrere Programme einige gemeinsame Optionen teilen. Obwohl der Quellcode nicht aus einem Konfigurationsdateiformat in XML generiert wird, habe ich diese Antwort fast als akzeptierte Antwort gekennzeichnet. Alle meine Anforderungen, also begann ich darüber nachzudenken, meine eigene Bibliothek zu schreiben. Eine Skizze: Ein neues Tool, das ein benutzerdefiniertes XML -Format als Eingabe annimmt und sowohl C ++ - Code als auch ein XML -Schema generiert würde. Ein anderer C ++ - Code wird aus dem XML -Schema mit der Toolcodesynthese XSD generiert. Die beiden Teile des C ++ - Code werden in eine Bibliothek kombiniert. Ein zusätzlicher Vorteil ist, dass wir ein XML -Schema für die Befehlszeilenoptionen erhalten und dass wir alle in ein binäres Format serialisieren können (im CDR -Format, das aus der Codesynthese XSD erzeugt wird). Ich werde sehen, ob ich die Zeit bekomme, eine solche Bibliothek zu schreiben. Besser ist es natürlich, ein Bibliothek zu finden, das bereits implementiert wurde. Es sieht vielversprechend aus und ich werde es gerne ausprobieren, wenn die geplante C ++ - Codegenerierung implementiert wurde. Der Vorschlag von nore [/b] scheint dem, wonach ich gesucht habe, am nächsten zu sein.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post