EngelsFransSpaans

Ad


OnWorks-favicon

genparse - Online in de cloud

Voer genparse uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht genparse die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


genparse - opdrachtregel-parsergenerator

KORTE INHOUD


genparseer [opties] bestanden...

PRODUCTBESCHRIJVING


genparseer is een generieke opdrachtregelparsergenerator. Van eenvoudig en beknopt
specificatiebestand, kunt u de opdrachtregelparameters en schakelaars definiëren die u wilt
graag naar uw programma willen gaan. Genparse maakt de C-, C++- of Java-code van het
parser voor u.

Genparse gaat ervan uit dat het GNU getopt_lang(3) functie is ingebouwd in uw C-bibliotheek. Voor
Java Mogelijk moet u een geschikt jar-bestand opgeven voor uw Java-compiler.

OPTIES


genparseer accepteert deze opties:

-c, --cppext uitbreiding
C++ bestandsextensie. (standaard = cc)

-d Schakel loggen in.

-f, --logbestand naam
Naam van logbestand. (standaard = genparse.log)

-h, --help
Help-informatie weergeven.

-g, --gnulib
Gebruik de GNU-compatibiliteitsbibliotheek (Gnulib, zie http://www.gnu.org/software/gnulib/).
Alleen beschikbaar voor C-uitvoer. Staat nog wat meer typen toe (unsigned long, intmax_t etc.)
waarvoor Gnulib conversiefuncties biedt.

-i, --internationaliseren
Plaats de internationaliseringsmacro _() rond de tekstuitvoer, zodat het gegenereerde programma
kan worden geïnternationaliseerd met behulp van het GNU gettext-commando. Momenteel alleen geïmplementeerd
voor C-uitgang.

-l, --taal LANG
Uitvoertaal. Alleen C, C++ en Java worden ondersteund. Een van de volgende
geef C++ aan: "c++", "cpp", "cc" en "cxx". Gebruik voor Java: "java" of "Java".
(standaard = c)

-o, --uitbestand naam
Naam van uitvoerbestand. (standaard = parse_cl)

-m, --lange leden
Gebruik lange opties voor de leden van de parserklasse (struct). De standaardinstelling is
gebruik de korte weergave, behalve als er alleen een lange weergave is gedefinieerd
in het genparse-bestand. Als deze optie is ingesteld, wordt het gedrag teruggedraaid. De
Er wordt dan gebruik gemaakt van een lange representatie, behalve als er slechts een korte representatie is
gedefinieerd.

-o, --uitbestand bestandsnaam
Hoofdnaam van het uitvoerbestand. De extensie wordt bepaald door de uitvoertaal
en mogelijk door andere opties. Als de uitvoertaal bijvoorbeeld C is, geeft give
bij deze optie zal een argument van "file" resulteren in uitvoerbestandsnamen van "file.h",
"file.c" en "file_cb.c" voor respectievelijk de header-, parser- en callback-bestanden.
De standaardwaarde is "parse_cl".

-p, --parsefunc func
Naam van de parseerfunctie/klasse. Met deze optie kan de gebruiker de naam opgeven
van de functie (voor C) of klasse (voor C++ en Java) die de eigenlijke opdracht uitvoert
lijnparsering (standaard = "Cmdline").

-P, --veelafdrukken
Voer helptekst uit voor elke opdrachtregelparameter in een afzonderlijk afdrukcommando.

-q, --stil
Stille modus - geen uitvoer op het scherm.

-s, --statische headers
Houd de beschrijvende koptekst bovenop de gegenereerde bestanden statisch. Zonder dit
optie genparse drukt de aanmaakdatum en -tijd af, Linux-kernelversie, kernelbuild
tijd, computerarchitectuurnaam, hostnaam en gebruikersnaam.

-v, --versie
Uitgangsversie.

-D, --map
Directory voor het opslaan van resultaten.

INVOER FILE


Een genparse-specificatiebestand (meestal gewoon een 'genparse-bestand' genoemd) bestaat uit een nummer
aantal vermeldingen, één per opdrachtregelparameter, van de vorm:

korte_namen[*|!] [/ lange naam[*|!][=opt_naam]] type dan: [ opties ]

A korte naam is één teken (klein of hoofdletter) of één cijfer. lange naam is een
langere (meer beschrijvende) optienaam. Op de opdrachtregel wordt een korte naam voorafgegaan
door een enkel streepje (bijvoorbeeld '-a') en een lange versie wordt voorafgegaan door twee streepjes (bijvoorbeeld
'--alle'). Als een lange parameternaam niet nodig is, kunt u alleen de korte opgeven
(en de schuine streep hoeft niet te verschijnen). Om een ​​parameter op te geven die alleen een long
naam ingesteld korte_namen naar GEEN. Het is mogelijk om meerdere korte opties te hebben, dus voor
voorbeeld instelling korte naam naar 'aA' en lange naam naar 'all' zou het mogelijk maken om de
opdrachtregel wijzigen als '-a' of '-A' of '--all', ze doen allemaal hetzelfde.

A * na korte naam or lange naam maakt het argument optioneel. Hiervoor kan worden opgegeven
korte en lange opties afzonderlijk.

A ! na korte naam or lange naam maakt de optie boolean. Dit maakt het mogelijk om a
booleaanse korte optie met een lange optie met een optioneel of verplicht argument of to
combineer een booleaanse lange optie met een korte optie met een optioneel of verplicht argument.
A ! heeft geen zin als het type van de optie dat is vlag.

type dan: moet een van zijn int drijven verkolen snaar or vlag. De eerste vier moeten zelf-
verklarend. De laatste is een "switch" -optie waarvoor geen argumenten nodig zijn. Voor C-uitvoer en if
--gnulib wordt ingesteld op de opdrachtregel, daarnaast zijn de volgende typen toegestaan: lang
(voor lange int), lang (voor niet-ondertekende lange int), int max (voor intmax_t, gedefinieerd in Gnulib),
uintmax (voor uintmax_t), verdubbelen.

De volgende opties worden ondersteund. Ze kunnen in elke volgorde verschijnen, met uitzondering van
omschrijvingen Per optie kan slechts één van elk veld worden gedefinieerd.

A verzuim waarde voor de parameter. Voor een string is dit gewoon de standaardwaarde
waarde, wat het ook is. Voor tekenreeksen moet een standaardwaarde worden opgegeven tussen accolades en
aanhalingstekens en kan witruimte bevatten, bijvoorbeeld {"mijn standaardwaarde"}. Voor een char
parameter moet tussen enkele aanhalingstekens staan, bijvoorbeeld 'a' of '\n'.

A reeks van waarden tussen haakjes. De lage en hoge waarden worden gespecificeerd tussen a
bereikspecificatie ('...' of '..'). Het kan zowel de hoge als de lage waarde zijn
weggelaten voor een bereik dat slechts aan één zijde wordt begrensd. Er wordt gecontroleerd op de parameter
Zorg ervoor dat deze binnen dit bereik ligt.

A Bel terug functie. Deze functie wordt aangeroepen nadat er een bereikcontrole heeft plaatsgevonden
uitgevoerd. Het doel van de callback om de geldigheidscontrole uit te voeren is meer
ingewikkelder dan kan worden opgegeven in het genparse-bestand. Dat zou je bijvoorbeeld kunnen doen
schrijf een programma dat invoer vereist van priemgetallen, reeksen van een bepaald getal
lengte, enz.

A beschrijving tussen dubbele aanhalingstekens. Het wordt gedrukt door de gebruik() functie. Als een
regel niet genoeg is, geef dan meerdere beschrijvingen op, één per regel en elk van deze
ze tussen dubbele aanhalingstekens. Als de beschrijving begint in de 1e kolom in het Genparse
bestand, dan wordt het ook afgedrukt in de 1e kolom van het gebruik() functie.

A #gp_include richtlijn zal genparse instrueren om een ​​ander genparse-bestand op te nemen,
bv #gp_include een andere.gp. Alleen parameterdefinities zijn toegestaan ​​in het opgenomen bestand
dossier, geen globale richtlijnen.

An __ERR_MSG__(err_txt) richtlijn. Specificeert de foutmelding die wordt afgedrukt
wanneer het argument niet kon worden omgezet. Voorbeeld: __ERR_MSG__("%s: ongeldig
argument"). Dit bericht wordt afgedrukt wanneer de conversiefunctie wordt gebruikt
mislukt of wanneer het argument buiten bereik was. Er wordt aangenomen dat deze er één bevat %s welke zal
worden vervangen door het agrument dat niet kon worden omgezet. Alleen beschikbaar wanneer
Genparse wordt aangeroepen met --gnulib, anders genegeerd.

Optioneel kan een conversiefunctie als tweede argument worden toegevoegd, bijv
__ERR_MSG__("%s: ongeldig argument", citaatarg). Dit zou tot een foutmelding leiden
als fout (EXIT_FAILURE, 0, "%s: ongeldig argument", citaatarg (kiezen)).

An __ADD_FLAG__ richtlijn. Dit heeft alleen zin als de opdrachtregelparameter dat niet is
al een vlag is, in dit geval wordt een extra vlagparameter toegevoegd, die zal zijn
ingesteld als de opdrachtregelparameter op de opdrachtregel is opgegeven. Deze optie
wordt automatisch ingesteld als een parameter een optioneel argument heeft.

A __CODE__(verklaringen) richtlijn. De opgegeven code-instructies worden gekopieerd
letterlijk. Voorbeeld: __CODE__(afdrukf ("Parameter x was set");). De opgegeven code
kan zich over meer dan één lijn uitstrekken. Om Genparse de kans te geven
laat de code correct inspringen, gebruik geen spaties en tabs door elkaar __CODE__
verklaring.

A __STORE_LONGINDEX__ richtlijn. Geeft Genparse opdracht om een ​​veld voor het type interer toe te voegen
naar de resultaatklasse die wordt ingesteld op de longindex-variabele (laatste argument in
de aanroep naar @code{getopt_long()}). Dit nieuwe veld krijgt dezelfde naam als het
resultaatveld waaraan het gerelateerd is, maar met een _li achtervoegsel.

De volgende globaal richtlijnen worden ondersteund. Ze kunnen in willekeurige volgorde verschijnen.

An #include richtlijn zal genparse instrueren om de genoemde include-instructie te kopiëren
in de C- of C++-code die is gegenereerd door genparse, maar niet in headerbestanden of callback
bestanden.

A #verplicht richtlijn kan worden gebruikt om gebruik() functieaanroepen leuker te maken. Het staat toe
u om verplichte opdrachtregelparameters op te geven die mogelijk volgen op schakelaars. Opmerking
dat Genparse niet controleert op verplichte parameters, deze worden alleen afgedrukt in het
gebruik () functie met de __VERPLICHTINGEN__ Richtlijn. Verouderd: toevoegen verplicht
parameters in de #gebruik sectie gebruiken.

An #uitstapwaarde richtlijn die de uitgangswaarde specificeert in geval van een fout.
Standaard is EXIT_FAILURE.

A #break_lines richtlijn die de breedte specificeert waarop lijnen moeten worden onderbroken
op het helpscherm. Als Nee #break_lines richtlijn is opgegeven, dan zullen er regels zijn
precies afgedrukt zoals aangegeven in het genparse-bestand.

If #geen_structuur is opgegeven, wordt er geen structuur gedefinieerd waarmee wordt gevuld
de opdrachtregelparameters in de gegenereerde parser. Dit kan handig zijn als u
je eigen code wilt toevoegen __CODE__ uitspraken in plaats daarvan. Alleen ondersteund voor C
uitgang.

A #export_long_options richtlijn. Als #export_long_options wordt gedefinieerd, dan a
functie #get_long_options() is toegevoegd die de longoptions-array exporteert die wordt gebruikt door
#getopt_long(). Deze richtlijn is alleen beschikbaar voor C-uitvoer, voor andere talen
het wordt genegeerd.

A globaal Bel terug functie. Deze functie is handig voor het controleren van onderlinge afhankelijkheden
tussen parameters. De onderlinge afhankelijkheden kunnen niet binnen elk individu worden gecontroleerd
callback-functie omdat de volgorde waarin deze functies worden aangeroepen varieert,
afhankelijk van de volgorde van de parameters op de opdrachtregel.

Genparse genereert ook een gebruik() functie die een helptekst afdrukt om meer te weten te komen over de
gebruik van het programma waarvoor Genparse de parser genereert. Het kan worden aangepast door
het specificeren van een gebruikssectie onderaan het Genparse-bestand. Als er geen dergelijke sectie is
opgegeven waar dit standaard op staat

#gebruik_begin
gebruik: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__WOORDENLIJST__
#gebruik_einde

Het gebruiksgedeelte begint met #gebruik_begin en eindigt met #gebruik_einde. Elke tekst ertussen is
woordelijk afgedrukt, behalve de volgende trefwoorden, die zullen worden vervangen zoals vermeld
hieronder

__PROGRAMMA NAAM__: De programmanaam. In C en C++ wordt de programmanaam opgegeven
argv[0].

__OPTIONS_KORT__: een lijst met beschikbare korte formulieropties, bijvoorbeeld [ -abc ].

__VERPLICHTINGEN__: Een lijst met alle verplichte parameters zoals gedefinieerd met #mandatory
commando's. Verouderd: Lijst verplicht parameters hier direct.

__WOORDENLIJST__: een beschrijving van alle opdrachtregelopties. Dit is de informatie
gegeven voor de parameterdefinities in voor mensen leesbare vorm. Het omvat de
parametertype, standaard, bereik en eventuele opmerkingen. Een regel die bevat
__WOORDENLIJST__ wordt vervangen door de verklarende woordenlijst van de parameters, elke andere tekst in de
dezelfde regel wordt genegeerd.

__WOORDENLIJST_GNU__: Hetzelfde als __WOORDENLIJST__ maar dan in GNU-stijl. Eventueel gevolgd door een
geheel getal tussen haakjes dat de inspringing van de beschrijvende tekst specificeert (bijv
__WOORDENLIJST__(30)). De standaardinspringing is 24.

__STRING__(en): Een stringconstante, in C waarschijnlijk een stringmacro gedefinieerd met de
#define preprocessor-opdracht. Deze macro kan vanuit een ander bestand worden geïmporteerd met behulp van
de include-richtlijn in het genparse-bestand. Genegeerd bij het genereren van Java-uitvoer.

__INT__(x): Een geheel getalconstante, in C waarschijnlijk een geheeltallige macro gedefinieerd met de
#define preprocessor-opdracht. Deze macro kan vanuit een ander bestand worden geïmporteerd met behulp van
de include-richtlijn in het genparse-bestand. Genegeerd bij het genereren van Java-uitvoer.

__CODE__(verklaringen): Hetzelfde als voor de parameteropties, zie hierboven.

__DO_NOT_DOCUMENT__: Elke regel die deze macro bevat, wordt niet afgedrukt in de
gebruik() functie. Kan worden gebruikt voor het implementeren van opdrachtregelparameters zonder
door ze op het helpscherm te vermelden.

__NL__: Nieuwe lijn. Handig voor het handmatig breken van lijnen tijdens het automatisch breken van lijnen
staat aan (zie #break_lines). Genegeerd bij het genereren van Java-uitvoer.

__NIEUW_PRINT__: Sluit de actieve printopdracht en start een nieuwe.

__COMMENTAAR__(tekst): Commentaar in de code voor het afdrukken van de gebruikstekst.

lange opties kunnen worden gevolgd door een =-teken en een optionele aanduiding opt_naam welke kan
wordt verwezen naar de volgende beschrijving. Het zal gebruikt worden in de gebruik() functie
alleen. Bijvoorbeeld de volgende genparse-regel

s / block-size=SIZE int "gebruik SIZE-byte blokken"

leidt naar de volgende regel in het helpscherm

[ -s ] [ --block-size=SIZE ] (type=INTEGR)
gebruik SIZE-byteblokken

in genparse-stijl (__WOORDENLIJST__) Of

-s, --block-size=SIZE gebruik SIZE-byte blokken

in GNU-stijl (__WOORDENLIJST_GNU__).

Het is ook mogelijk om vierkante accolades rond de optionele naam te plaatsen om dit aan te geven
dat het argument optioneel is. Voor de gegenereerde parser heeft dit echter geen betekenis. Gebruik
* achtervoegsels om een ​​argument optioneel te maken.

s* / block*[=SIZE] int "gebruik blokken."
"Als SIZE niet wordt opgegeven, krijgen ze een grootte van 1 kB."

leidt naar de volgende regel in het helpscherm

-s, --block[=SIZE] gebruiken blokken.
Als SIZE niet wordt opgegeven, krijgen ze een grootte van 1 kB.

VOORBEELD


Hier is een voorbeeld van een genparse-bestand:

#erbij betrekken

/* opmerking */
mijn_callback()

i / iteraties int 100 [10...1000] iter_callback()
"Aantal iteraties waarvoor moet worden uitgevoerd."

/*
* Commentaar
*/

n / name string {"mike"} name_cb() "Gebruikersnaam"
s / str-reeks "testreeks"
f flag "een stomme vlag!"

#gebruik_begin
gebruik: __PROGRAM_NAME__ __OPTIONS_SHORT__ bestandsnaam
Dit is slechts een stom testprogramma.
__WOORDENLIJST__
#gebruik_einde

Gebruik genparse online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad