IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

genparse - Online nel cloud

Esegui genparse nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando genparse che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


genparse - generatore di parser da riga di comando

SINOSSI


genparse [Opzioni] file...

DESCRIZIONE


genparse è un generatore di parser da riga di comando generico. Da semplice e conciso
file di specifica, è possibile definire i parametri della riga di comando e le opzioni che si desidera
piace poter passare al tuo programma. Genparse crea il codice C, C++ o Java del
analizzatore per te.

Genparse presuppone che GNU getopt_long(3) la funzione è incorporata nella tua libreria C. Per
Java potrebbe essere necessario specificare un file jar appropriato per il compilatore Java.

VERSIONI


genparse accetta queste opzioni:

-c, --cppext estensione
Estensione file C++. (predefinito = cc)

-d Attiva la registrazione.

-f, --file di log Nome
Nome del file di registro. (predefinito = genparse.log)

-h, --Aiuto
Visualizza le informazioni di aiuto.

-g, --gnulib
Usa la libreria di compatibilità GNU (Gnulib, vedi http://www.gnu.org/software/gnulib/).
Disponibile solo per l'uscita C. Consente alcuni altri tipi (unsigned long, intmax_t ecc.)
per cui Gnulib fornisce funzioni di conversione.

-i, --internazionalizzare
Metti la macro di internazionalizzazione _() intorno all'output di testo in modo che il programma generato
può essere internazionalizzato usando il comando GNU gettext. Attualmente implementato solo
per uscita C.

-l, --linguaggio lang
Lingua di uscita. Sono supportati solo C, C++ e Java. Uno dei seguenti
indicare C++: "c++", "cpp", "cc" e "cxx". Per Java utilizzare: "java" o "Java".
(predefinito = c)

-o, --file di uscita Nome
Nome del file di output. (predefinito = parse_cl)

-m, --membri lunghi
Usa opzioni long per i membri della classe parser (struct). L'impostazione predefinita è
usa la rappresentazione corta tranne se è definita solo una rappresentazione lunga
nel file genparse. Se questa opzione è impostata, il comportamento viene ripristinato. Il
viene utilizzata la rappresentazione lunga, a meno che non vi sia solo una rappresentazione breve
definito.

-o, --file di uscita Nome del file
Nome radice del file di output. L'estensione sarà determinata dalla lingua di output
ed eventualmente da altre opzioni. Ad esempio, quando la lingua di output è C, dando
questa opzione un argomento di "file" risulterà in nomi di file di output di "file.h",
"file.c" e "file_cb.c" rispettivamente per i file di intestazione, parser e callback.
Il valore predefinito è "parse_cl".

-p, --parsefunzione func
Nome della funzione/classe di analisi. Questa opzione consente all'utente di specificare il nome
della funzione (per C) o della classe (per C++ e Java) che esegue il comando effettivo
analisi della riga (predefinito = "Cmdline").

-P, --molte stampe
Emetti il ​​testo della guida per ogni parametro della riga di comando in un comando di stampa separato.

-q, --silenzioso
Modalità silenziosa: nessuna uscita sullo schermo.

-s, --intestazione-statica
Mantieni l'intestazione descrittiva sopra i file generati statici. Senza questo
opzione genparse stampa data e ora di creazione, versione del kernel Linux, build del kernel
ora, nome dell'architettura del computer, nome host e nome utente.

-v, --versione
Versione di uscita.

-D, --directory
Directory per la memorizzazione dei risultati.

INGRESSO RISORSE


Un file di specifica genparse (di solito chiamato semplicemente "file genparse") è costituito da un numero
di voci, una per parametro della riga di comando, della forma:

nomi_brevi[*|!] [/ nome_lungo[*|!][=nome_opz]] Digitare [ Opzioni ]

A nome corto è un singolo carattere (piccolo o maiuscolo) o una singola cifra. nome_lungo è un
nome dell'opzione più lungo (più descrittivo). Sulla riga di comando sarà preceduto un nome breve
da un solo trattino (es. '-a') e una versione lunga sarà preceduta da due trattini (es.
'--Tutti'). Se non è necessario un nome di parametro lungo, è possibile specificare solo quello corto
(e la barra non deve apparire). Per specificare un parametro che ha solo un lungo
set di nomi nomi_brevi a NONE. È possibile avere più opzioni brevi, quindi per
impostazione di esempio nome corto a 'aA' e nome_lungo to 'all' permetterebbe di specificare il
switch della riga di comando come '-a' o '-A' o '--all', facendo tutti la stessa cosa.

A * dopo nome corto or nome_lungo rende l'argomento facoltativo. Questo può essere specificato per
opzioni corte e lunghe separatamente.

A ! dopo nome corto or nome_lungo rende l'opzione booleana. Questo permette di combinare a
opzione booleana breve con un'opzione lunga con un argomento facoltativo o obbligatorio o a
combinare un'opzione booleana long con un'opzione short con un argomento facoltativo o obbligatorio.
A ! non ha senso se il tipo dell'opzione è bandiera.

Digitare deve essere uno di int galleggiante serbatoio stringa or bandiera. I primi quattro dovrebbero essere auto-
esplicativo. L'ultima è un'opzione "switch" che non accetta argomenti. Per l'uscita C e se
--gnulib è impostato sulla riga di comando inoltre sono consentiti i seguenti tipi: lungo
(per lungo int), lungo (per unsigned long int), intmax (per intmax_t, definito in Gnulib),
uintmax (per uintmax_t), doppio.

Le seguenti Opzioni sono supportati. Possono apparire in qualsiasi ordine e ad eccezione di
descrizioni solo uno di ogni campo può essere definito per opzione.

A difetto APPREZZIAMO per il parametro. Per una stringa questo è solo l'impostazione predefinita normale
valore, qualunque esso sia. Per le stringhe, è necessario specificare un valore predefinito tra parentesi graffe e
virgolette e può includere spazi bianchi, ad esempio {"il mio valore predefinito"}. Per un carattere
parametro deve essere racchiuso tra virgolette singole, ad esempio 'a' o '\n'.

A gamma di valori tra parentesi. I valori basso e alto sono specificati tra a
specificatore di intervallo (o '...' o '..'). Il valore alto o basso può essere
omesso per un intervallo limitato da un solo lato. Il parametro verrà controllato per
assicurarsi che rientri in questo intervallo.

A richiama function. Questa funzione viene chiamata dopo che è stato eseguito un controllo dell'intervallo
eseguita. Lo scopo della richiamata per eseguire il controllo di validità è più
complicato di quanto possa essere specificato nel file genparse. Ad esempio, potresti
scrivere un programma che richieda in input numeri primi, stringhe di un certo
lunghezza, ecc.

A descrizione tra virgolette. È stampato da utilizzo() funzione. Se uno
la riga non è sufficiente, quindi specificare più descrizioni, una per riga e ciascuna di
loro tra virgolette. Se la descrizione inizia nella prima colonna del Genparse
file allora verrà stampato anche nella prima colonna del utilizzo() funzione.

A #gp_include la direttiva indicherà a genparse di includere un altro file genparse,
per esempio #gp_include un altro.gp. Solo le definizioni dei parametri sono consentite nell'incluso
file, nessuna direttiva globale.

An __ERR_MSG__(err_txt) direttiva. Specifica il messaggio di errore che viene stampato
quando l'argomento non può essere convertito. Esempio: __ERR_MSG__("%s: invalido
discussione"). Questo messaggio verrà stampato quando la funzione di conversione
fallito o quando l'argomento era fuori portata. Presuppone di contenerne uno %s che sarà
essere sostituito con l'immobile non convertibile. Disponibile solo quando
Genparse viene invocato con --gnulib, altrimenti ignorato.

Facoltativamente, è possibile aggiungere una funzione di conversione come secondo argomento, ad es
__ERR_MSG__("%s: invalido discussione", quotazione). Questo porterebbe a un messaggio di errore
piace errore (EXIT_FAILURE, 0, "%S: invalido discussione", citazione (opzione)).

An __AGGIUNGI_BANDIERA__ direttiva. Ha senso solo se il parametro della riga di comando non lo è
già un flag, in questo caso viene aggiunto un ulteriore parametro flag che sarà
impostato se il parametro della riga di comando è stato specificato nella riga di comando. Questa opzione
viene impostato automaticamente se un parametro ha un argomento facoltativo.

A __CODE__(dichiarazioni) direttiva. Le istruzioni di codice specificate vengono copiate
letteralmente. Esempio: __CODICE__(printf ("Parametro x Prima set");). Il codice specificato
può estendersi su più di una riga. Per dare a Genparse la possibilità di
indentare correttamente il codice, non mischiare rientri di spazio e tabulazione in uno __CODICE__
.

A __STORE_LONGINDEX__ direttiva. Indica a Genparse di aggiungere un campo di tipo interer
alla classe del risultato che saràimpostata sulla variabile longindex (ultimo argomento in
la chiamata a @code{getopt_long()}). Questo nuovo campo avrà lo stesso nome del
campo del risultato a cui è correlato ma con an _li suffisso.

Le seguenti globale direttive sono supportati. Possono apparire in qualsiasi ordine.

An #includere la direttiva indicherà a genparse di copiare la suddetta istruzione include
nel codice C o C++ generato da genparse, ma non in alcun file di intestazione o callback
File.

A #obbligatorio può essere utilizzata per rendere più piacevoli le chiamate alla funzione use(). Permette
specificare i parametri obbligatori della riga di comando che potrebbero seguire le opzioni. Nota
che Genparse non controlla i parametri obbligatori, vengono stampati solo nel
uso () funzione con il __OBBLIGATORI__ Direttiva. Deprecato: aggiungere obbligatorio
parametri in , il #uso pagina anziché.

An #valore_uscita direttiva che specifica il valore di uscita in caso di errore.
Il valore predefinito è EXIT_FAILURE.

A #linee_di_interruzione direttiva che specifica la larghezza alla quale le linee devono essere spezzate
nella schermata di aiuto. se no #linee_di_interruzione è specificata la direttiva, quindi le linee saranno
stampato esattamente come indicato nel file genparse.

If #nessuna_struttura è specificato, non verrà definita alcuna struttura che verrà riempita con
i parametri della riga di comando nel parser generato. Questo può essere utile se tu
vuoi aggiungere il tuo codice con __CODICE__ dichiarazioni invece. Supportato solo per C
produzione.

A #export_long_opzioni direttiva. Se #export_long_opzioni è definita allora a
function #get_long_options() viene aggiunto che esporta l'array longoptions usato da
#getopt_lungo(). Questa direttiva è disponibile solo per l'output C, per altre lingue
è ignorato.

A globale richiama function. Questa funzione è utile per verificare le interdipendenze
tra i parametri. Le interdipendenze non possono essere verificate all'interno di ogni individuo
funzione di callback perché l'ordine in cui verranno chiamate queste funzioni varia,
a seconda dell'ordine dei parametri sulla riga di comando.

Genparse genera anche a utilizzo() funzione che stampa un testo di aiuto allo stdout sul
utilizzo del programma per il quale Genparse sta generando il parser. Può essere personalizzato da
specificando una sezione di utilizzo nella parte inferiore del file Genparse. Se tale sezione non è
specificato che il valore predefinito è

#utilizzo_inizio
utilizzo: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__GLOSSARIO__
#fine_utilizzo

La sezione sull'utilizzo inizia con #utilizzo_inizio e finisce con #fine_utilizzo. Qualsiasi testo tra è
stampato alla lettera ad eccezione delle seguenti parole chiave, che verranno sostituite come elencate
sotto:

__NOME DEL PROGRAMMA__: il nome del programma. In C e C++ il nome del programma è dato in
arg[0].

__OPZIONI_SHORT__: un elenco di opzioni disponibili in formato breve, ad es. [ -abc ].

__OBBLIGATORI__: Un elenco di tutti i parametri obbligatori definiti con #mandatory
comandi. Deprecato: Lista obbligatorio parametri qui direttamente.

__GLOSSARIO__: una descrizione di tutte le opzioni della riga di comando. Questa è l'informazione
dato per le definizioni dei parametri in forma leggibile dall'uomo. Include il
tipo di parametro, default, range ed eventuali commenti. Una linea che contiene
__GLOSSARIO__ è sostituito dal glossario dei parametri, qualsiasi altro testo nel
stessa riga viene ignorata.

__GLOSSARIO_GNU__: Uguale a __GLOSSARIO__ ma in stile GNU. Facoltativamente seguito da an
intero tra parentesi che specifica il rientro del testo descrittivo (es
__GLOSSARIO__(30)). Il rientro predefinito è 24.

__Stringhe): Una costante stringa, in C probabilmente una macro stringa definita con il
#define comando del preprocessore. Questa macro può essere importata da un altro file usando
la direttiva include nel file genparse. Ignorato durante la generazione dell'output Java.

__INT__(x): Una costante intera, in C probabilmente una macro intera definita con il
#define comando del preprocessore. Questa macro può essere importata da un altro file usando
la direttiva include nel file genparse. Ignorato durante la generazione dell'output Java.

__CODE__(dichiarazioni): Come per le opzioni dei parametri, vedere sopra.

__NO_NON_DOCUMENT__: Qualsiasi riga che contiene questa macro non verrà stampata nel
utilizzo() funzione. Può essere utilizzato per implementare i parametri della riga di comando senza
elencandoli nella schermata di aiuto.

__NL__: Nuova linea. Utile per interrompere manualmente le linee durante l'interruzione automatica della linea
è acceso (vedi #linee_di_interruzione). Ignorato durante la generazione dell'output Java.

__NUOVA_STAMPA__: Chiude il comando di stampa attivo e ne avvia uno nuovo.

__COMMENTO__(testo): Commento nel codice per la stampa del testo di utilizzo.

le opzioni lunghe possono essere seguite da un segno = e da una designazione facoltativa nome_opz quale puo
fare riferimento nella descrizione che segue. Verrà utilizzato nel utilizzo() function
soltanto. Ad esempio la seguente riga genparse

s / block-size=SIZE int "usa blocchi SIZE-byte"

porterà alla seguente riga nella schermata di aiuto

[ -s ] [ --block-size=SIZE ] (tipo=INTERO)
usa blocchi SIZE-byte

in stile genparse (__GLOSSARIO__) o puoi

-s, --block-size=SIZE usa blocchi SIZE-byte

in stile GNU (__GLOSSARIO_GNU__).

È anche possibile mettere parentesi quadre attorno al nome opzionale per indicare
che l'argomento è facoltativo. Tuttavia, questo non ha alcun significato per il parser generato. Utilizzo
* suffissi per rendere un argomento facoltativo.

s* / block*[=SIZE] int "usa blocchi."
"Se SIZE non viene fornito, otterranno una dimensione di 1kB."

porterà alla seguente riga nella schermata di aiuto

-s, --block[=SIZE] usa i blocchi.
Se SIZE non viene fornito, otterranno una dimensione di 1kB.

ESEMPIO


Ecco un esempio di file genparse:

#includere

/* commento */
mia_richiamata()

i / iterazioni int 100 [10...1000] iter_callback()
"Numero di iterazioni per cui eseguire."

/*
* Commento
*/

n / nome stringa {"mike"} name_cb() "Nome utente"
s / str stringa "stringa di prova"
f flag "una stupida bandiera!"

#utilizzo_inizio
utilizzo: __PROGRAM_NAME__ __OPTIONS_SHORT__ nome file
Questo è solo uno stupido programma di test.
__GLOSSARIO__
#fine_utilizzo

Usa genparse online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad