EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

genparse – Online in der Cloud

Führen Sie genparse im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl genparse, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


genparse – Befehlszeilen-Parser-Generator

ZUSAMMENFASSUNG


genparse [Optionen] Dateien...

BESCHREIBUNG


genparse ist ein generischer Befehlszeilen-Parser-Generator. Von einfach und prägnant
In der Spezifikationsdatei können Sie die gewünschten Befehlszeilenparameter und Schalter definieren
gerne an Ihr Programm weitergeben können. Genparse erstellt den C-, C++- oder Java-Code des
Parser für Sie.

Genparse geht davon aus, dass die GNU getopt_long(3) Die Funktion ist in Ihre C-Bibliothek integriert. Für
Java müssen Sie möglicherweise eine entsprechende JAR-Datei für Ihren Java-Compiler angeben.

OPTIONAL


genparse akzeptiert diese Optionen:

-c, --cppext Erweiterung
C++-Dateierweiterung. (Standard = cc)

-d Aktivieren Sie die Protokollierung.

-f, --Logdatei Name
Name der Protokolldatei. (Standard = genparse.log)

-h, --help
Hilfeinformationen anzeigen.

-g, --gnulib
Verwenden Sie die GNU-Kompatibilitätsbibliothek (Gnulib, siehe http://www.gnu.org/software/gnulib/).
Nur für C-Ausgabe verfügbar. Ermöglicht einige weitere Typen (unsigned long, intmax_t usw.)
für die Gnulib Konvertierungsfunktionen bereitstellt.

-i, --internationalisieren
Setzen Sie das Internationalisierungsmakro _() um die Textausgabe, damit das Programm generiert wird
kann mit dem GNU-Befehl gettext internationalisiert werden. Derzeit nur implementiert
für C-Ausgabe.

-l, --Sprache lang
Ausgabesprache. Es werden nur C, C++ und Java unterstützt. Eines der folgenden
Geben Sie C++ an: „c++“, „cpp“, „cc“ und „cxx“. Für Java verwenden Sie: „java“ oder „Java“.
(Standard = c)

-o, --outfile Name
Name der Ausgabedatei. (Standard = parse_cl)

-m, --longmembers
Verwenden Sie lange Optionen für die Mitglieder der Parser-Klasse (Struktur). Die Standardeinstellung ist „to“.
Verwenden Sie die kurze Darstellung, es sei denn, es ist nur eine lange Darstellung definiert
in der Genparse-Datei. Wenn diese Option gesetzt ist, wird das Verhalten zurückgesetzt. Der
Dann wird die lange Darstellung verwendet, es sei denn, es gibt nur eine kurze Darstellung
definiert.

-o, --outfile Dateinamen
Stammname der Ausgabedatei. Die Erweiterung wird durch die Ausgabesprache bestimmt
und möglicherweise durch andere Optionen. Wenn die Ausgabesprache beispielsweise C ist, ergibt sich Folgendes
Bei dieser Option führt ein Argument von „file“ zu den Ausgabedateinamen „file.h“,
„file.c“ und „file_cb.c“ für die Header-, Parser- und Callback-Dateien.
Der Standardwert ist „parse_cl“.

-p, --parsefunc Funkt
Name der Parsing-Funktion/-Klasse. Mit dieser Option kann der Benutzer den Namen angeben
der Funktion (für C) oder Klasse (für C++ und Java), die den eigentlichen Befehl ausführt
Zeilenparsing (Standard = „Cmdline“).

-P, --manyprints
Hilfetext für jeden Befehlszeilenparameter in einem separaten Druckbefehl ausgeben.

-q, --ruhig
Leiser Modus – keine Bildschirmausgabe.

-s, --static-header
Lassen Sie den beschreibenden Header statisch über den generierten Dateien. Ohne das
Option genparse gibt Erstellungsdatum und -uhrzeit, Linux-Kernelversion und Kernel-Build aus
Uhrzeit, Name der Computerarchitektur, Hostname und Benutzername.

-v, --Version
Ausgabeversion.

-D, --Verzeichnis
Verzeichnis zum Speichern von Ergebnissen.

SPEISUNG FILE


Eine Genparse-Spezifikationsdatei (normalerweise einfach „Genparse-Datei“ genannt) besteht aus einer Zahl
von Einträgen, einer pro Befehlszeilenparameter, in der Form:

Kurznamen[*|!] [/ langer Name[*|!][=opt_name]] tippe [ Optionen ]

A kurzer Name ist ein einzelnes Zeichen (Klein- oder Großbuchstaben) oder eine einzelne Ziffer. langer Name ist eine
längerer (aussagekräftigerer) Optionsname. Auf der Kommandozeile wird ein Kurzname vorangestellt
durch einen einzelnen Bindestrich (z. B. '-a') und einer langen Version werden zwei Bindestriche vorangestellt (z. B
'--alle'). Wenn kein langer Parametername erforderlich ist, können Sie nur den kurzen angeben
(und der Schrägstrich muss nicht erscheinen). Um einen Parameter anzugeben, der nur einen langen Wert hat
Namen festgelegt Kurznamen zu NONE. Es ist möglich, mehrere kurze Optionen zu haben, z
Beispieleinstellung kurzer Name zu 'aA' und langer Name zu 'all' würde es ermöglichen, das anzugeben
Befehlszeilenschalter als „-a“ oder „-A“ oder „--all“, alle tun dasselbe.

A * nachdem kurzer Name or langer Name macht das Argument optional. Dies kann für angegeben werden
kurze und lange Optionen getrennt.

A ! nachdem kurzer Name or langer Name macht die Option boolesch. Dies ermöglicht die Kombination von a
boolesche kurze Option mit einer langen Option mit einem optionalen oder obligatorischen Argument oder to
Kombinieren Sie eine boolesche lange Option mit einer kurzen Option mit einem optionalen oder obligatorischen Argument.
A ! macht keinen Sinn, wenn der Typ der Option ist Flagge.

tippe muss einer von sein int schweben verkohlen Schnur or Flagge. Die ersten vier sollten selbständig sein.
erläuternd. Die letzte ist eine „Switch“-Option, die keine Argumente akzeptiert. Für C-Ausgabe und if
--gnulib wird in der Befehlszeile festgelegt. Zusätzlich sind die folgenden Typen zulässig: lange
(für long int), lang (für unsigned long int), intmax (für intmax_t, definiert in Gnulib),
uintmax (für uintmax_t), doppelt.

Folgende Optionen sind unterstützt. Sie können in beliebiger Reihenfolge und mit Ausnahme von erscheinen
Beschreibungen Pro Option darf nur eines von jedem Feld definiert werden.

A Standard Wert für den Parameter. Für eine Zeichenfolge ist dies nur die einfache Standardeinstellung
Wert, was auch immer es ist. Für Zeichenfolgen muss in geschweiften Klammern und ein Standardwert angegeben werden
Anführungszeichen und kann Leerzeichen enthalten, z. B. {"mein Standardwert"}. Für einen Char
Parameter muss in einfache Anführungszeichen gesetzt werden, z. B. 'a' oder '\n'.

A Angebot der Werte in Klammern. Der untere und obere Wert werden zwischen a angegeben
Bereichsbezeichner (entweder '...' oder '..'). Es kann entweder der hohe oder der niedrige Wert sein
entfällt für einen Bereich, der nur auf einer Seite begrenzt ist. Der Parameter wird überprüft
Stellen Sie sicher, dass es innerhalb dieses Bereichs liegt.

A callback Funktion. Diese Funktion wird nach einer Bereichsüberprüfung aufgerufen
durchgeführt. Der Zweck des Rückrufs besteht darin, eine Gültigkeitsprüfung durchzuführen
komplizierter als in der Genparse-Datei angegeben werden kann. Zum Beispiel könnten Sie
Schreiben Sie ein Programm, das als Eingabe Primzahlen oder Zeichenfolgen einer bestimmten Größe erfordert
Länge usw.

A Beschreibung in doppelten Anführungszeichen. Es wird von der gedruckt Verwendungszweck() Funktion. Wenn man
Zeile nicht ausreicht, geben Sie dann mehrere Beschreibungen an, eine pro Zeile und jeweils eine
sie in doppelte Anführungszeichen setzen. Wenn die Beschreibung in der 1. Spalte im Genparse beginnt
Datei dann wird es auch in der 1. Spalte in der ausgedruckt Verwendungszweck() Funktion.

A #gp_include Die Direktive weist Genparse an, eine weitere Genparse-Datei einzubinden.
z.B #gp_include ein anderes.gp. Im Lieferumfang sind nur Parameterdefinitionen zulässig
Datei, keine globalen Anweisungen.

An __ERR_MSG__(err_txt) Richtlinie. Gibt die Fehlermeldung an, die gedruckt wird
wenn das Argument nicht konvertiert werden konnte. Beispiel: __ERR_MSG__("%s: ungültig
Streit"). Diese Meldung wird gedruckt, wenn eine der Konvertierungsfunktionen ausgeführt wird
fehlgeschlagen ist oder wenn das Argument außerhalb des Bereichs lag. Geht davon aus, dass es eines enthält %s welches wird
durch das nicht umwandelbare Agrument ersetzt werden. Nur verfügbar, wenn
Genparse wird mit aufgerufen --gnulib, ansonsten ignoriert.

Optional kann eine Konvertierungsfunktion als zweites Argument hinzugefügt werden, z
__ERR_MSG__("%s: ungültig Streit", quotearg). Dies würde zu einer Fehlermeldung führen
Gefällt mir Fehler (EXIT_FAILURE, 0, "%S: ungültig Streit", Zitatarg (optind)).

An __ADD_FLAG__ Richtlinie. Macht nur Sinn, wenn der Befehlszeilenparameter nicht vorhanden ist
bereits ein Flag, in diesem Fall wird ein zusätzlicher Flag-Parameter hinzugefügt
Wird gesetzt, wenn der Befehlszeilenparameter in der Befehlszeile angegeben wurde. Diese Option
wird automatisch gesetzt, wenn ein Parameter ein optionales Argument hat.

A __CODE__(Anweisungen) Richtlinie. Die angegebenen Codeanweisungen werden kopiert
buchstäblich. Beispiel: __CODE__(printf ("Parameter x wurde Satz");). Der angegebene Code
kann sich über mehr als eine Zeile erstrecken. Um Genparse die Chance zu geben
Den Code richtig einrücken, Leerzeichen- und Tabulatoreinrückungen nicht in einem mischen __CODE__
Aussage.

A __STORE_LONGINDEX__ Richtlinie. Weist Genparse an, ein Feld vom Typ Interer hinzuzufügen
zur Ergebnisklasse, die auf die Longindex-Variable (letztes Argument in) gesetzt wird
der Aufruf von @code{getopt_long()}). Dieses neue Feld erhält denselben Namen wie das
Ergebnisfeld, mit dem es in Zusammenhang steht, aber mit einem _li Postfix.

Folgende globale Richtlinien sind unterstützt. Sie können in beliebiger Reihenfolge erscheinen.

An #einschließen Die Direktive weist Genparse an, die besagte Include-Anweisung zu kopieren
in den von genparse generierten C- oder C++-Code, jedoch keine Header-Dateien oder Rückrufe
Dateien.

A #verpflichtend Die Direktive kann verwendet werden, um die Funktionsaufrufe von use() schöner zu machen. Es erlaubt
Sie können obligatorische Befehlszeilenparameter angeben, die möglicherweise auf Schalter folgen. Notiz
dass Genparse nicht nach obligatorischen Parametern sucht, diese werden nur in gedruckt
Verwendung () funktion mit dem __VERPFLICHTUNGEN__ Richtlinie. Veraltet: hinzufügen Alle Tauchgäste müssen eine Tauchversicherung vorweisen,
Parameter in #Verwendung Abschnitt stattdessen.

An #exit_value Direktive, die den Exit-Wert im Fehlerfall angibt.
Der Standardwert ist EXIT_FAILURE.

A #break_lines Direktive, die die Breite angibt, auf die Zeilen umgebrochen werden sollen
auf dem Hilfebildschirm. Wenn nein #break_lines Wenn die Direktive angegeben ist, werden die Zeilen angegeben
wird genau wie in der Genparse-Datei angegeben gedruckt.

If #no_struct angegeben ist, wird keine Struktur definiert, mit der gefüllt wird
die Befehlszeilenparameter im generierten Parser. Dies kann nützlich sein, wenn Sie
Sie möchten Ihren eigenen Code hinzufügen __CODE__ Aussagen statt. Wird nur für C unterstützt
Ausgabe.

A #export_long_options Richtlinie. Wenn #export_long_options ist dann definiert a
Funktion #get_long_options() wird hinzugefügt, wodurch das von verwendete longoptions-Array exportiert wird
#getopt_long(). Diese Direktive ist nur für die C-Ausgabe für andere Sprachen verfügbar
es wird ignoriert.

A globale callback Funktion. Diese Funktion ist nützlich, um Abhängigkeiten zu überprüfen
zwischen Parametern. Interdependenzen können nicht bei jedem Einzelnen überprüft werden
Rückruffunktion, da die Reihenfolge, in der diese Funktionen aufgerufen werden, unterschiedlich ist.
abhängig von der Reihenfolge der Parameter in der Befehlszeile.

Genparse generiert auch eine Verwendungszweck() Funktion, die einen Hilfetext über stdout ausgibt
Verwendung des Programms, für das Genparse den Parser generiert. Es kann individuell angepasst werden
Angabe eines Verwendungsabschnitts am Ende der Genparse-Datei. Wenn kein solcher Abschnitt vorhanden ist
angegeben, dass es standardmäßig ist

#usage_begin
Verwendung: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__GLOSSAR__
#usage_end

Der Verwendungsabschnitt beginnt mit #usage_begin und endet mit #usage_end. Jeder Text dazwischen ist
wörtlich gedruckt, mit Ausnahme der folgenden Schlüsselwörter, die wie aufgeführt ersetzt werden
unten:

__PROGRAMMNAME__: Der Programmname. In C und C++ wird der Programmname in angegeben
argv[0].

__OPTIONS_SHORT__: Eine Liste der verfügbaren Kurzformoptionen, z. B. [ -abc ].

__VERPFLICHTUNGEN__: Eine Liste aller obligatorischen Parameter, die mit #mandatory definiert sind
Befehle. Veraltet: Liste Alle Tauchgäste müssen eine Tauchversicherung vorweisen, Parameter hier direkt.

__GLOSSAR__: Eine Beschreibung aller Befehlszeilenoptionen. Das sind die Informationen
werden für die Parameterdefinitionen in für Menschen lesbarer Form angegeben. Es beinhaltet die
Parametertyp, Standard, Bereich und etwaige Kommentare. Eine Zeile, die enthält
__GLOSSAR__ wird durch das Glossar der Parameter ersetzt, jeder andere Text im
Dieselbe Zeile wird ignoriert.

__GLOSSAR_GNU__: Gleich wie __GLOSSAR__ aber im GNU-Stil. Optional gefolgt von einem
Ganzzahl in Klammern, die die Einrückung des beschreibenden Textes angibt (z. B
__GLOSSAR__(30)). Der Standardeinzug ist 24.

__STRING__(s): Eine String-Konstante, in C wahrscheinlich ein String-Makro, das mit definiert wird
#define-Präprozessorbefehl. Dieses Makro kann mit aus einer anderen Datei importiert werden
die Include-Direktive in der Genparse-Datei. Wird beim Generieren der Java-Ausgabe ignoriert.

__INT__(x): Eine Ganzzahlkonstante, in C wahrscheinlich ein Ganzzahlmakro, das mit definiert ist
#define-Präprozessorbefehl. Dieses Makro kann mit aus einer anderen Datei importiert werden
die Include-Direktive in der Genparse-Datei. Wird beim Generieren der Java-Ausgabe ignoriert.

__CODE__(Anweisungen): Gleich wie für die Parameteroptionen, siehe oben.

__DO_NOT_DOCUMENT__: Jede Zeile, die dieses Makro enthält, wird nicht gedruckt
Verwendungszweck() Funktion. Kann zum Implementieren von Befehlszeilenparametern ohne verwendet werden
indem Sie sie auf dem Hilfebildschirm auflisten.

__NL__: Neue Zeile. Nützlich für den manuellen Zeilenumbruch bei gleichzeitigem automatischen Zeilenumbruch
ist eingeschaltet (siehe #break_lines). Wird beim Generieren der Java-Ausgabe ignoriert.

__NEW_PRINT__: Den aktiven Druckbefehl schließen und einen neuen starten.

__COMMENT__(Text): Kommentar im Code zum Drucken des Verwendungstextes.

Auf lange Optionen kann ein =-Zeichen und eine optionale Bezeichnung folgen opt_name Welche CAN
wird in der folgenden Beschreibung Bezug genommen. Es wird in der verwendet Verwendungszweck() Funktion
nur. Zum Beispiel die folgende Genparse-Zeile

s / block-size=SIZE int „SIZE-Byte-Blöcke verwenden“

führt zur folgenden Zeile im Hilfebildschirm

[ -s ] [ --block-size=SIZE ] (Typ=INTEGER)
Verwenden Sie SIZE-Byte-Blöcke

im Genparse-Stil (__GLOSSAR__oder

-s, --block-size=SIZE verwendet SIZE-Byte-Blöcke

im GNU-Stil (__GLOSSAR_GNU__).

Es ist auch möglich, den optionalen Namen zur Kennzeichnung in eckige Klammern zu setzen
dass das Argument optional ist. Für den generierten Parser hat dies jedoch keine Bedeutung. Verwenden
* Postfixes, um ein Argument optional zu machen.

s* / block*[=SIZE] int „Blöcke verwenden.“
„Wenn SIZE nicht angegeben ist, erhalten sie eine Größe von 1 KB.“

führt zur folgenden Zeile im Hilfebildschirm

-s, --block[=SIZE] verwendet Blöcke.
Wenn SIZE nicht angegeben ist, erhalten sie eine Größe von 1 KB.

BEISPIEL


Hier ist eine Beispiel-Genparse-Datei:

#enthalten

/* Kommentar */
my_callback()

i / iterations int 100 [10...1000] iter_callback()
„Anzahl der auszuführenden Iterationen.“

/*
* Kommentar
*/

n / name string {"mike"} name_cb() "Benutzername"
s / str string „Teststring“
f flag „eine blöde Flagge!“

#usage_begin
Verwendung: __PROGRAM_NAME__ __OPTIONS_SHORT__ Dateiname
Das ist nur ein dummes Testprogramm.
__GLOSSAR__
#usage_end

Nutzen Sie Genparse online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad