InglésFrancésEspañol

Ad


icono de página de OnWorks

genparse - Online en la nube

Ejecute genparse en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando genparse que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


genparse - generador de analizador de línea de comandos

SINOPSIS


analizar [opciones] archivos...

DESCRIPCIÓN


analizar es un generador de analizador sintáctico de línea de comandos genérico. De simple y conciso
archivo de especificación, puede definir los parámetros e interruptores de la línea de comando que
le gustaría poder pasar a su programa. Genparse crea el código C, C ++ o Java del
analizador para usted.

Genparse asume que GNU getopt_long(3) la función está integrada en su biblioteca C. Para
Java, es posible que deba especificar un archivo jar apropiado para su compilador de Java.

CAMPUS


analizar acepta estas opciones:

-c, --cppext extensión
Extensión de archivo C ++. (predeterminado = cc)

-d Encienda el registro.

-f, --archivo de registro nombre
Nombre del archivo de registro. (predeterminado = genparse.log)

-h, --ayuda
Muestra información de ayuda.

-g, --gnulib
Utilice la biblioteca de compatibilidad GNU (Gnulib, consulte http://www.gnu.org/software/gnulib/).
Solo disponible para salida C. Permite algunos tipos más (unsigned long, intmax_t, etc.)
para lo cual Gnulib proporciona funciones de conversión.

-i, --internacionalizar
Coloque la macro de internacionalización _ () alrededor de la salida de texto para que el programa generado
se puede internacionalizar usando el comando GNU gettext. Actualmente solo implementado
para salida C.

-l, --idioma lang
Idioma de salida. Solo se admiten C, C ++ y Java. Cualquiera de los siguientes
indique C ++: "c ++", "cpp", "cc" y "cxx". Para uso de Java: "java" o "Java".
(predeterminado = c)

-o, --archivo de salida nombre
Nombre del archivo de salida. (predeterminado = parse_cl)

-m, --miembros largos
Utilice opciones largas para los miembros de la clase del analizador (estructura). El valor predeterminado es
use la representación corta excepto si solo hay una representación larga definida
en el archivo genparse. Si se establece esta opción, se revierte el comportamiento. los
Entonces se usa una representación larga, excepto si solo hay una representación corta
definido.

-o, --archivo de salida nombre de archivo
Nombre raíz del archivo de salida. La extensión estará determinada por el idioma de salida
y posiblemente por otras opciones. Por ejemplo, cuando el idioma de salida es C, dando
esta opción un argumento de "archivo" dará como resultado nombres de archivo de salida de "archivo.h",
"file.c" y "file_cb.c" para los archivos de encabezado, analizador y devolución de llamada, respectivamente.
El valor predeterminado es "parse_cl".

-p, --parsefunc divertida
Nombre de la función / clase de análisis. Esta opción permite al usuario especificar el nombre
de la función (para C) o clase (para C ++ y Java) que ejecuta el comando real
análisis de líneas (predeterminado = "Cmdline").

-P, --muchas impresiones
Salida de texto de ayuda para cada parámetro de la línea de comando en un comando de impresión separado.

-q, --tranquilo
Modo silencioso: sin salida en pantalla.

-s, - encabezados-estáticos
Mantenga estático el encabezado descriptivo en la parte superior de los archivos generados. Sin esto
la opción genparse imprime la fecha y hora de creación, la versión del kernel de Linux, la compilación del kernel
hora, nombre de la arquitectura de la computadora, nombre de host y nombre de usuario.

-v, --versión
Versión de salida.

-D, --directorio
Directorio para almacenar resultados.

ENTRADA ARCHIVO


Un archivo de especificación genparse (generalmente llamado simplemente 'archivo genparse') consta de un número
de entradas, una por parámetro de línea de comando, de la forma:

nombres cortos[* |!] [/ nombre largo[* |!] [=nombre_opt]] tipo [ opciones ]

A nombre corto es un solo carácter (pequeño o en mayúscula) o un solo dígito. nombre largo es un
nombre de opción más largo (más descriptivo). En la línea de comando irá precedido un nombre corto
por un solo guión (p. ej., '-a') y una versión larga irá precedida de dos guiones (p. ej.
'--todos'). Si no es necesario un nombre de parámetro largo, puede especificar solo el corto
(y no es necesario que aparezca la barra). Para especificar un parámetro que solo tiene un largo
conjunto de nombres nombres cortos a NINGUNO. Es posible tener varias opciones cortas, por lo que para
configuración de ejemplo nombre corto a 'aA' y nombre largo a 'todos' permitiría especificar el
cambiar de línea de comando como '-a' o '-A' o '--todos', todos ellos haciendo lo mismo.

A * después de nombre corto or nombre largo hace que el argumento sea opcional. Esto se puede especificar para
opciones cortas y largas por separado.

A ! después de nombre corto or nombre largo hace que la opción sea booleana. Esto permite combinar un
opción booleana corta con una opción larga con un argumento opcional u obligatorio o para
combine una opción booleana larga con una opción corta con un argumento opcional u obligatorio.
A ! no tiene sentido si el tipo de la opción es bandera.

tipo debe ser uno de int flotar tanque cadena or bandera. Los primeros cuatro deben ser
explicativo. La última es una opción de "cambio" que no acepta argumentos. Para salida C y si
--gnulib se establece en la línea de comando, además, se permiten los siguientes tipos: Corto
(para int largo), largo (para int largo sin firmar), intmax (para intmax_t, definido en Gnulib),
uintmax (para uintmax_t), doble.

Las siguientes opciones son compatibles. Pueden aparecer en cualquier orden y excepto
descripciones solo se puede definir uno de cada campo por opción.

A tu préstamo estudiantil propuesta de para el parámetro. Para una cadena, esto es solo el valor predeterminado
valor, sea lo que sea. Para las cadenas, se debe especificar un valor predeterminado entre llaves y
comillas y puede incluir espacios en blanco, por ejemplo, {"mi valor predeterminado"}. Por un char
parámetro debe estar entre comillas simples, por ejemplo, 'a' o '\ n'.

A distancia de valores entre paréntesis. Los valores bajo y alto se especifican entre un
especificador de rango (ya sea '...' o '..'). El valor alto o bajo puede ser
se omite para un rango limitado a un solo lado. El parámetro se comprobará para
asegúrese de que se encuentre dentro de este rango.

A llamar de vuelta función. Esta función se llama después de que se realiza cualquier verificación de rango.
realizado. El propósito de la devolución de llamada para hacer una verificación de validez que es más
complicado de lo que se puede especificar en el archivo genparse. Por ejemplo, podrías
escribir un programa que requiera que la entrada sean números primos, cadenas de un cierto
longitud, etc.

A descripción entre comillas dobles. Está impreso por el uso() función. Si uno
línea no es suficiente, entonces especifique múltiples descripciones, una por línea y cada una de
ellos entre comillas dobles. Si la descripción comienza en la primera columna del Genparse
archivo, entonces también se imprimirá en la primera columna en el uso() función.

A #gp_incluir La directiva le indicará a genparse que incluya otro archivo genparse,
e.g. #gp_incluir otro.gp. Solo se permiten definiciones de parámetros en el
archivo, sin directivas globales.

An __ERR_MSG __ (err_txt) directiva. Especifica el mensaje de error que se imprime.
cuando el argumento no se pudo convertir. Ejemplo: __ERR_MSG __ ("% s: inválido
argumento"). Este mensaje se imprimirá cuando la función de conversión
falló o cuando el argumento estaba fuera de rango. Se supone que contiene uno %s que lo hará
ser reemplazado por el grupo que no se pudo convertir. Solo disponible cuando
Genparse se invoca con --gnulib, ignorado de lo contrario.

Opcionalmente, se puede agregar una función de conversión como segundo argumento, p. Ej.
__ERR_MSG __ ("% s: inválido argumento", citarg). Esto daría lugar a un mensaje de error.
como error (FALLO DE SALIDA, 0, "%s: inválido argumento", cotización (optar)).

An __AÑADIR_BANDERA__ directiva. Tiene sentido solo si el parámetro de la línea de comando no es
ya una bandera, en este caso se agrega un parámetro de bandera adicional que será
establecer si el parámetro de la línea de comando se especificó en la línea de comando. Esta opción
se establece automáticamente si un parámetro tiene un argumento opcional.

A __CODE __ (declaraciones) directiva. Se copian las declaraciones de código especificadas
literalmente. Ejemplo: __CODE __ (printf ("Parámetro x fue colocar");). El código especificado
puede extenderse sobre más de una línea. Para darle a Genparse la oportunidad de
sangra el código correctamente, no mezcle el espacio y las sangrías de tabulación en una __CÓDIGO__
.

A __STORE_LONGINDEX__ directiva. Indica a Genparse que agregue un campo de tipo interer
a la clase de resultado que se establecerá en la variable longindex (último argumento en
la llamada a @code {getopt_long ()}). Este nuevo campo recibirá el mismo nombre que el
campo de resultado con el que está relacionado pero con un _li sufijo.

Las siguientes global directivas son compatibles. Pueden aparecer en cualquier orden.

An #incluir La directiva instruirá a genparse a copiar dicha declaración de inclusión.
en el código C o C ++ generado por genparse, pero no en ningún archivo de encabezado o devolución de llamada
archivos.

A #obligatorio La directiva se puede usar para hacer que las llamadas a funciones de uso () sean más agradables. Eso permite
que especifique los parámetros obligatorios de la línea de comandos que pueden seguir a los conmutadores. Nota
que Genparse no comprueba los parámetros obligatorios, solo se imprimen en el
personal () funcionar con el __ OBLIGATORIOS__ Directiva. Obsoleto: add obligatorio
parámetros in las #uso . preferiblemente.

An #valor_de_salida directiva que especifica el valor de salida en caso de error.
El valor predeterminado es EXIT_FAILURE.

A #romper_líneas Directiva que especifica el ancho con el que se romperán las líneas.
en la pantalla de ayuda. Si no #romper_líneas se especifica la directiva, entonces las líneas serán
impreso exactamente como se indica en el archivo genparse.

If #sin_estructura se especifica, entonces no se definirá ninguna estructura que se llenará con
los parámetros de la línea de comando en el analizador generado. Esto puede resultar útil si
desea agregar su propio código con __CÓDIGO__ declaraciones en su lugar. Solo compatible con C
salida.

A #exportar_opciones_largas directiva. Si #exportar_opciones_largas se define entonces un
función #get_long_options () se agrega que exporta la matriz longoptions utilizada por
#getopt_long (). Esta directiva solo está disponible para salida C, para otros idiomas
se ignora.

A global llamar de vuelta función. Esta función es útil para verificar interdependencias
entre parámetros. Las interdependencias no se pueden verificar dentro de cada individuo
función de devolución de llamada porque el orden en el que se llamarán estas funciones varía,
dependiendo del orden de los parámetros en la línea de comando.

Genparse también genera un uso() función que imprime un texto de ayuda al estándar sobre el
uso del programa para el que Genparse está generando el analizador. Puede ser personalizado por
especificando una sección de uso en la parte inferior del archivo Genparse. Si no hay tal sección
especificado, por defecto es

#usage_begin
uso: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__GLOSARIO__
#usage_end

La sección de uso comienza con #usage_begin y termina con #usage_end. Cualquier texto entre es
impresas textualmente excepto por las siguientes palabras clave, que serán reemplazadas como se indica
aqui:

__PROGRAMA_NOMBRE__: El nombre del programa. En C y C ++, el nombre del programa se da en
argv [0].

__OPCIONES_CORTAS__: Una lista de opciones de formato abreviado disponibles, por ejemplo, [-abc].

__ OBLIGATORIOS__: Una lista de todos los parámetros obligatorios definidos con #mandatory
comandos. Obsoleto: Lista obligatorio parámetros esta página .

__GLOSARIO__: Una descripción de todas las opciones de la línea de comandos. Esta es la informacion
dado para las definiciones de parámetros en forma legible por humanos. Incluye el
tipo de parámetro, predeterminado, rango y comentarios. Una línea que contiene
__GLOSARIO__ se reemplaza por el glosario de los parámetros, cualquier otro texto en el
se ignora la misma línea.

__GLOSARIO_GNU__: Igual que __GLOSARIO__ pero en estilo GNU. Opcionalmente seguido de un
entero entre paréntesis que especifica la sangría del texto descriptivo (p. ej.
__GLOSARIO__(30)). La sangría predeterminada es 24.

__Instrumentos de cuerda): Una constante de cadena, en C probablemente una macro de cadena definida con el
#define el comando del preprocesador. Esta macro se puede importar desde otro archivo usando
la directiva include en el archivo genparse. Se ignora al generar la salida de Java.

__INT __ (x): Una constante entera, en C probablemente una macro entera definida con el
#define el comando del preprocesador. Esta macro se puede importar desde otro archivo usando
la directiva include en el archivo genparse. Se ignora al generar la salida de Java.

__CODE __ (declaraciones): Igual que para las opciones de parámetros, ver arriba.

__NO_DOCUMENTAR__: Cualquier línea que contenga esta macro no se imprimirá en el
uso() función. Puede usarse para implementar parámetros de línea de comando sin
enumerándolos en la pantalla de ayuda.

__NL__: Nueva línea. Útil para romper líneas manualmente mientras se rompe línea automáticamente
está encendido (ver #romper_líneas). Se ignora al generar la salida de Java.

__NUEVA_IMPRESIÓN__: Cierre el comando de impresión activo e inicie uno nuevo.

__COMMENT __ (texto): Comente en el código para imprimir el texto de uso.

Las opciones largas pueden ir seguidas de un signo = y una designación opcional. nombre_opt que puede
referirse en la siguiente descripción. Se utilizará en el uso() función
solamente. Por ejemplo, la siguiente línea genparse

s / block-size = SIZE int "usar bloques de bytes SIZE"

conducirá a la siguiente línea en la pantalla de ayuda

[-s] [--block-size = SIZE] (tipo = INTEGER)
usar bloques SIZE-byte

en estilo genparse__GLOSARIO__) o

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

en estilo GNU (__GLOSARIO_GNU__).

También es posible poner llaves alrededor del nombre opcional para indicar
que el argumento es opcional. Sin embargo, esto no tiene ningún significado para el analizador generado. Usar
* sufijos para que un argumento sea opcional.

s * / block * [= SIZE] int "usar bloques".
"Si no se da TAMAÑO, obtendrán un tamaño de 1kB".

conducirá a la siguiente línea en la pantalla de ayuda

-s, --block [= TAMAÑO] usan bloques.
Si no se indica TAMAÑO, obtendrán un tamaño de 1 kB.

EJEMPLO


Aquí hay un archivo genparse de muestra:

#incluir

/ * comentario * /
my_callback ()

i / iteraciones int 100 [10 ... 1000] iter_callback ()
"Número de iteraciones para ejecutar".

/*
* Comentario
*/

n / name string {"mike"} name_cb () "Nombre de usuario"
s / str string "cadena de prueba"
f bandera "¡una bandera estúpida!"

#usage_begin
uso: __PROGRAM_NAME__ __OPTIONS_SHORT__ nombre de archivo
Este es solo un estúpido programa de prueba.
__GLOSARIO__
#usage_end

Use genparse en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad