AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

genparse - En ligne dans le Cloud

Exécutez genparse dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande genparse qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


genparse - générateur d'analyseur en ligne de commande

SYNOPSIS


analyse de génération [Options] fichiers

DESCRIPTION


analyse de génération est un générateur d'analyseur syntaxique de ligne de commande générique. De simple et concis
fichier de spécification, vous pouvez définir les paramètres de ligne de commande et les commutateurs que vous
aimer pouvoir passer à votre programme. Genparse crée le code C, C++ ou Java du
analyseur pour vous.

Genparse suppose que le GNU getopt_long(3) la fonction est intégrée à votre bibliothèque C. Pour
Java, vous devrez peut-être spécifier un fichier jar approprié à votre compilateur Java.

OPTIONS


analyse de génération accepte ces options :

-c, --cptext extension
Extension de fichier C++. (par défaut = cc)

-d Activez la journalisation.

-f, --fichier journal prénom
Nom du fichier journal. (par défaut = genparse.log)

-h, --Aidez-moi
Afficher les informations d'aide.

-g, --gnulib
Utilisez la bibliothèque de compatibilité GNU (Gnulib, voir http://www.gnu.org/software/gnulib/).
Uniquement disponible pour la sortie C. Permet d'autres types (unsigned long, intmax_t etc.)
pour laquelle Gnulib fournit des fonctions de conversion.

-i, --internationaliser
Mettez la macro d'internationalisation _() autour de la sortie de texte afin que le programme généré
peut être internationalisé à l'aide de la commande GNU gettext. Actuellement mis en œuvre uniquement
pour la sortie C.

-l, --Langue long
Langue de sortie. Seuls C, C++ et Java sont pris en charge. L'un des suivants
indiquer C++ : "c++", "cpp", "cc" et "cxx". Pour Java utiliser : "java" ou "Java".
(par défaut = c)

-o, --fichier de sortie prénom
Nom du fichier de sortie. (par défaut = parse_cl)

-m, --longmembers
Utilisez des options longues pour les membres de la classe d'analyseur (struct). La valeur par défaut est de
utiliser la représentation courte sauf s'il n'y a qu'une représentation longue définie
dans le fichier genparse. Si cette option est définie, le comportement est inversé. Les
la représentation longue est alors utilisée sauf s'il n'y a qu'une représentation courte
Défini.

-o, --fichier de sortie nom de fichier
Nom racine du fichier de sortie. L'extension sera déterminée par la langue de sortie
et éventuellement par d'autres options. Par exemple, lorsque le langage de sortie est C, en donnant
cette option un argument de "fichier" se traduira par des noms de fichiers de sortie de "fichier.h",
"file.c" et "file_cb.c" pour les fichiers d'en-tête, d'analyseur et de rappel, respectivement.
La valeur par défaut est "parse_cl".

-p, --parsefunc fonction
Nom de la fonction/classe d'analyse. Cette option permet à l'utilisateur de spécifier le nom
de la fonction (pour C) ou de la classe (pour C++ et Java) qui effectue la commande réelle
analyse de ligne (par défaut = "Cmdline").

-P, --beaucoup d'impressions
Texte d'aide de sortie pour chaque paramètre de ligne de commande dans une commande d'impression distincte.

-q, --silencieux
Mode silencieux - pas de sortie à l'écran.

-s, --en-têtes-statiques
Gardez l'en-tête descriptif au-dessus des fichiers générés statiques. Sans cela
option genparse imprime la date et l'heure de création, la version du noyau Linux, la construction du noyau
l'heure, le nom de l'architecture de l'ordinateur, le nom d'hôte et le nom d'utilisateur.

-v, --version
Version de sortie.

-D, --annuaire
Répertoire de stockage des résultats.

CONTRIBUTION DOSSIER


Un fichier de spécification genparse (généralement simplement appelé « fichier genparse ») se compose d'un nombre
d'entrées, une par paramètre de ligne de commande, de la forme :

noms_courts[*|!] [/ nom long[*|!][=nom_opt]] type [ Options ]

A nom court est un caractère unique (petit ou majuscule) ou un seul chiffre. nom long est une
nom d'option plus long (plus descriptif). Sur la ligne de commande, un nom court sera précédé
par un seul tiret (par exemple '-a') et une version longue sera précédée de deux tirets (par exemple
'--tous'). Si un nom de paramètre long n'est pas nécessaire, vous pouvez spécifier uniquement le nom court
(et la barre oblique n'a pas besoin d'apparaître). Afin de spécifier un paramètre qui n'a qu'un long
ensemble de noms noms_courts à NONE. Il est possible d'avoir plusieurs options courtes, donc pour
exemple de réglage nom court à 'aA' et nom long à 'tous' permettrait de préciser le
commutateur de ligne de commande comme '-a' ou '-A' ou '--all', tous faisant la même chose.

A * après nom court or nom long rend l'argument facultatif. Ceci peut être spécifié pour
options courtes et longues séparément.

A ! après nom court or nom long rend l'option booléenne. Cela permet de combiner un
option courte booléenne avec une option longue avec un argument facultatif ou obligatoire ou pour
combiner une option longue booléenne avec une option courte avec un argument facultatif ou obligatoire.
A ! n'a pas de sens si le type de l'option est drapeau.

type doit être l'un des int flotter carboniser un magnifique or drapeau. Les quatre premiers devraient être auto-
explicatif. La dernière est une option "switch" qui ne prend aucun argument. Pour la sortie C et si
--gnulib est défini sur la ligne de commande et les types suivants sont autorisés : Long
(pour int long), longtemps (pour les entiers longs non signés), intmax (pour intmax_t, défini dans Gnulib),
uintmax (pour uintmax_t), double.

Options sont pris en charge. Ils peuvent apparaître dans n'importe quel ordre et à l'exception des
descriptions un seul de chaque champ peut être défini par option.

A défaut Plus-value pour le paramètre. Pour une chaîne, c'est juste la valeur par défaut
valeur, quelle qu'elle soit. Pour les chaînes, une valeur par défaut doit être spécifiée entre accolades et
guillemets, et peut inclure des espaces, par exemple {"ma valeur par défaut"}. Pour un char
paramètre, il doit être entouré de guillemets simples, par exemple 'a' ou '\n'.

A gamme des valeurs entre parenthèses. Les valeurs basses et hautes sont spécifiées entre un
spécificateur de plage (soit '...' ou '..'). La valeur haute ou basse peut être
omis pour une plage délimitée d'un seul côté. Le paramètre sera vérifié pour
assurez-vous qu'il se situe dans cette plage.

A rappeler fonction. Cette fonction est appelée après toute vérification de plage
effectué. Le but du rappel de faire une vérification de validité qui est plus
compliqué que ce qui peut être spécifié dans le fichier genparse. Par exemple, vous pourriez
écrire un programme qui requiert que les entrées soient des nombres premiers, des chaînes d'un certain
longueur, etc...

A la description entre guillemets doubles. Il est imprimé par le usage() fonction. Si un
n'est pas suffisant, alors spécifiez plusieurs descriptions, une par ligne et chacune des
les entre guillemets. Si la description commence dans la 1ère colonne du Genparse
fichier, il sera également imprimé dans la 1ère colonne du usage() la fonction.

A #gp_include La directive demandera à genparse d'inclure un autre fichier genparse,
par exemple #gp_include autre.gp. Seules les définitions de paramètres sont autorisées dans le fichier inclus
fichier, pas de directives globales.

An __ERR_MSG__(err_txt) directif. Spécifie le message d'erreur qui est imprimé
lorsque l'argument n'a pas pu être converti. Exemple: __ERR_MSG__("%s : invalide
argument"). Ce message sera imprimé lorsque la fonction de conversion
a échoué ou lorsque l'argument était hors de portée. Suppose qu'il en contient un %s Qui va
être remplacé par l'agrument qui n'a pas pu être converti. Disponible uniquement lorsque
Genparse est invoqué avec --gnulib, ignoré sinon.

En option, une fonction de conversion peut être ajoutée comme deuxième argument, par exemple
__ERR_MSG__("%s : invalide argument", guillemet). Cela conduirait à un message d'erreur
comme erreur (EXIT_FAILURE, 0, "%s : invalide argument", devisg (option)).

An __AJOUTER_DRAPEAU__ directif. N'a de sens que si le paramètre de ligne de commande n'est pas
déjà un indicateur, dans ce cas un paramètre d'indicateur supplémentaire est ajouté qui sera
défini si le paramètre de ligne de commande a été spécifié sur la ligne de commande. Cette option
est automatiquement défini si un paramètre a un argument facultatif.

A __CODE__(déclarations) directif. Les instructions de code spécifiées sont copiées
au sens propre. Exemple: __CODE__(printf ("Paramètre x était ensemble");). Le code spécifié
peut s'étendre sur plusieurs lignes. Afin de donner à Genparse la chance de
indentez le code correctement, ne mélangez pas les indentations d'espace et de tabulation en une seule __CODE__
déclaration.

A __STORE_LONGINDEX__ directif. Demande à Genparse d'ajouter un champ de type interer
à la classe de résultat qui sera définie sur la variable longindex (dernier argument dans
l'appel à @code{getopt_long()}). Ce nouveau champ portera le même nom que le
champ de résultat auquel il est lié mais avec un _li suffixe.

de défis directives sont pris en charge. Ils peuvent apparaître dans n'importe quel ordre.

An #comprendre La directive demandera à genparse de copier ladite instruction include
dans le code C ou C++ généré par genparse, mais pas dans les fichiers d'en-tête ou de rappel
fichiers.

A #obligatoire La directive peut être utilisée pour rendre les appels de fonction usage() plus agréables. Il permet
vous de spécifier les paramètres de ligne de commande obligatoires qui peuvent suivre les commutateurs. Noter
que Genparse ne vérifie pas les paramètres obligatoires, ils sont uniquement imprimés dans le
usage () fonction avec le __OBLIGATIONS__ Directive. Obsolète: ajouter obligatoire
paramètres in le #usage à la place.

An #exit_value directive qui spécifie la valeur de sortie en cas d'erreur.
La valeur par défaut est EXIT_FAILURE.

A #break_lines directive qui spécifie la largeur à laquelle les lignes doivent être interrompues
sur l'écran d'aide. Sinon #break_lines directive est spécifiée, les lignes seront
imprimé exactement comme indiqué dans le fichier genparse.

If #no_struct est spécifié alors aucune structure ne sera définie qui sera remplie avec
les paramètres de ligne de commande dans l'analyseur généré. Cela peut être utile si vous
voulez ajouter votre propre code avec __CODE__ déclarations à la place. Uniquement pris en charge pour C
sortie.

A #export_long_options directif. Si #export_long_options est défini alors un
fonction #get_long_options() est ajouté qui exporte le tableau longoptions utilisé par
#getopt_long(). Cette directive n'est disponible que pour la sortie C, pour les autres langages
il est ignoré.

A de défis rappeler fonction. Cette fonction est utile pour vérifier les interdépendances
entre les paramètres. Les interdépendances ne peuvent pas être vérifiées au sein de chaque individu
fonction de rappel car l'ordre dans lequel ces fonctions seront appelées varie,
selon l'ordre des paramètres sur la ligne de commande.

Genparse génère également un usage() fonction qui imprime un texte d'aide à stdout sur le
l'utilisation du programme pour lequel Genparse génère l'analyseur. Il peut être personnalisé par
en spécifiant une section d'utilisation au bas du fichier Genparse. Si aucune section de ce type n'est
spécifié qu'il est par défaut

#usage_begin
utilisation : __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__GLOSSAIRE__
#usage_end

La section d'utilisation commence par #usage_begin et se termine avec #usage_end. Tout texte entre est
imprimé textuellement à l'exception des mots-clés suivants, qui seront remplacés comme indiqués
ci-dessous :

__NOM DU PROGRAMME__: Le nom du programme. En C et C++, le nom du programme est donné dans
argv[0].

__OPTIONS_SHORT__: une liste des options de format court disponibles, par exemple [ -abc ].

__OBLIGATIONS__: Une liste de tous les paramètres obligatoires tels que définis avec #mandatory
les commandes. Obsolète: Liste obligatoire paramètres ici directement.

__GLOSSAIRE__: une description de toutes les options de ligne de commande. C'est l'information
donné pour les définitions des paramètres sous une forme lisible par l'homme. Il comprend le
type de paramètre, valeur par défaut, plage et tout commentaire. Une ligne qui contient
__GLOSSAIRE__ est remplacé par le glossaire des paramètres, tout autre texte dans le
la même ligne est ignorée.

__GLOSSAIRE_GNU__: Pareil que __GLOSSAIRE__ mais dans le style GNU. éventuellement suivi d'un
entier entre parenthèses qui spécifie l'indentation du texte descriptif (par exemple
__GLOSSAIRE__(30)). L'indentation par défaut est 24.

__STRING__(s): Une constante de chaîne, en C probablement une macro de chaîne définie avec le
#define commande de préprocesseur. Cette macro peut être importée d'un autre fichier en utilisant
la directive include dans le fichier genparse. Ignoré lors de la génération de la sortie Java.

__INT__(x): Une constante entière, en C probablement une macro entière définie avec le
#define commande de préprocesseur. Cette macro peut être importée d'un autre fichier en utilisant
la directive include dans le fichier genparse. Ignoré lors de la génération de la sortie Java.

__CODE__(déclarations): Idem que pour les options de paramètres, voir ci-dessus.

__NE_PAS_DOCUMENT__: Toute ligne contenant cette macro ne sera pas imprimée dans le
usage() fonction. Peut être utilisé pour implémenter des paramètres de ligne de commande sans
les énumérer sur l'écran d'aide.

__NL__: Nouvelle ligne. Utile pour rompre les lignes manuellement lors de la rupture de ligne automatique
est allumé (voir #break_lines). Ignoré lors de la génération de la sortie Java.

__NOUVEAU_PRINT__: Fermez la commande d'impression active et lancez-en une nouvelle.

__COMMENTAIRE__(texte): Commentaire dans le code pour imprimer le texte d'utilisation.

les options longues peuvent être suivies d'un signe = et d'une désignation facultative nom_opt qui peut
être mentionnés dans la description suivante. Il sera utilisé dans le usage() fonction
seul. Par exemple, la ligne genparse suivante

s / block-size=SIZE int "utiliser des blocs SIZE-byte"

mènera à la ligne suivante dans l'écran d'aide

[ -s ] [ --block-size=TAILLE ] (type=ENTIER)
utiliser des blocs SIZE-byte

dans le style genparse (__GLOSSAIRE__) ou

-s, --block-size=SIZE utilise des blocs d'octets SIZE

dans le style GNU (__GLOSSAIRE_GNU__).

Il est également possible de mettre des accolades autour du nom facultatif afin d'indiquer
que l'argument est facultatif. Cela n'a cependant aucune signification pour l'analyseur généré. Utilisation
* suffixes afin de rendre un argument facultatif.

s* / block*[=SIZE] int "utiliser des blocs."
"Si SIZE n'est pas indiqué, ils obtiendront une taille de 1 Ko."

mènera à la ligne suivante dans l'écran d'aide

-s, --block[=SIZE] utilisent des blocs.
Si SIZE n'est pas indiqué, ils obtiendront une taille de 1 Ko.

EXEMPLE


Voici un exemple de fichier genparse :

#comprendre

/* commenter */
mon_rappel()

i / itérations int 100 [10...1000] iter_callback()
"Nombre d'itérations à exécuter."

/*
* Commentaire
*/

n / name string {"mike"} name_cb() "Nom d'utilisateur"
s / str chaîne "chaîne de test"
f flag "un drapeau stupide !"

#usage_begin
utilisation : __PROGRAM_NAME__ __OPTIONS_SHORT__ nom de fichier
Ce n'est qu'un programme de test stupide.
__GLOSSAIRE__
#usage_end

Utiliser genparse en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad