InglésFrancésEspañol

Ad


icono de página de OnWorks

m4posix - Online en la nube

Ejecute m4posix 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 m4posix 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


m4 - procesador de macros

SINOPSIS


m4 [−s] [−D nombre [=val]]... [−U nombre ]... presentar...

DESCRIPCIÓN


El m4 La utilidad es un procesador de macros que leerá uno o más archivos de texto, los procesará
de acuerdo con sus declaraciones macro incluidas y escriba los resultados en la salida estándar.

CAMPUS


El m4 La utilidad deberá cumplir con el volumen de Definiciones Básicas de POSIX.1‐2008, Sección 12.2,
Utilidad Sintaxis Líneas directrices, excepto que el orden del −D y −U las opciones serán
significativo, y las opciones se pueden intercalar con operandos.

Se admitirán las siguientes opciones:

−s Habilite la salida de sincronización de línea para c99 fase de preprocesador (es decir,
#línea directivas).

−D nombre [=val]
Definición nombre a val o anular si =val se omite.

−U nombre Indefinir nombre .

OPERANDOS


Se admitirá el siguiente operando:

presentar Un nombre de ruta de un archivo de texto que se va a procesar. Si no presentar se da, o si es '-',
se leerá la entrada estándar.

ESTÁNDAR


La entrada estándar será un archivo de texto que se utilizará si no presentar se da el operando, o si
is '-'.

ENTRADA ARCHIVOS


El archivo de entrada nombrado por el presentar operando debe ser un archivo de texto.

MEDIO AMBIENTE VARIABLES


Las siguientes variables de entorno afectarán la ejecución de m4:

IDIOMA Proporcione un valor predeterminado para las variables de internacionalización que no están configuradas o
nulo. (Consulte el volumen de Definiciones básicas de POSIX.1‐2008, Sección 8.2,
Internacionalización Variables por la precedencia de la internacionalización
variables utilizadas para determinar los valores de las categorías de configuración regional).

LC_TODOS Si se establece en un valor de cadena no vacío, anule los valores de todos los demás
Variables de internacionalización.

LC_CTYPE Determinar la configuración regional para la interpretación de secuencias de bytes de datos de texto.
como caracteres (por ejemplo, de un solo byte en lugar de caracteres de varios bytes en
argumentos y archivos de entrada).

LC_MENSAJES
Determine la configuración regional que se debe utilizar para afectar el formato y el contenido de
mensajes de diagnóstico escritos en error estándar.

NLSPATH Determinar la ubicación de los catálogos de mensajes para el procesamiento de LC_MENSAJES.

ASINCRÓNICO EVENTOS


Por defecto.

SALIDA ESTÁNDAR


La salida estándar será la misma que los archivos de entrada, después de ser procesados ​​para macro.
expansión.

ESTDERR


El error estándar se utilizará para mostrar cadenas con el error de imprenta macro, seguimiento macro
habilitado por el seguimiento macro, el texto definido para macros escrito por el vertedero macro, o
para mensajes de diagnóstico.

SALIDA ARCHIVOS


Ninguna.

EXTENDIDO DESCRIPCIÓN


El m4 La utilidad comparará cada token de la entrada con el conjunto de
macros definidas por el usuario. Si el token coincide con el nombre de una macro, entonces el token será
reemplazado por el texto de definición de la macro, si lo hubiera, y vuelto a escanear para buscar nombres de macro coincidentes.
Una vez que ninguna parte del token coincida con el nombre de una macro, se escribirá en el estándar
producción. Las macros pueden tener argumentos, en cuyo caso los argumentos se sustituirán en
el texto de definición antes de que se vuelva a escanear.

Las llamadas de macro tienen la forma:

nombre (arg1, arg2, ..., Argán)

Los nombres de las macros deben constar de letras, dígitos y guiones bajos, donde el primer carácter
no es un dígito. Los tokens que no tengan este formulario no se tratarán como macros.

La solicitud garantizará que el sigue inmediatamente el nombre de
la macro. Si un token que coincide con el nombre de una macro no va seguido de un
paréntesis>, se maneja como un uso de esa macro sin argumentos.

Si el nombre de una macro va seguido de un , sus argumentos son los
-tokens separados entre los y el emparejamiento
paréntesis>. Se ignorarán los espacios en blanco sin comillas que precedan a cada argumento.
Todos los demás caracteres, incluidos los caracteres de espacios en blanco finales, se conservan.
caracteres encerrados entre y los personajes no
delimitar argumentos.

Los argumentos se definen posicionalmente y se hace referencia a ellos. La cuerda "$ 1" en el texto definitorio
será reemplazado por el primer argumento. Los sistemas deberán respaldar al menos nueve argumentos;
solo se puede hacer referencia a los nueve primeros, utilizando las cadenas "$ 1" a "$ 9", inclusive. los
cadena "$ 0" se reemplaza con el nombre de la macro. La cuerda PS es reemplazado por el
número de argumentos como una cadena. La cuerda PS se reemplaza por una lista de todos los
argumentos, separados por caracteres. La cuerda PS se reemplaza por una lista de todos
de los argumentos separados por caracteres, y cada argumento se cita utilizando el
cadenas de comillas izquierdas y derechas actuales. La cuerda PS produce un comportamiento no especificado.

Si se proporcionan menos argumentos que en la definición de macro, los argumentos omitidos
se toman como nulos. No es un error si se proporcionan más argumentos de los que están en el
definición macro.

No se le da un significado especial a los caracteres encerrados entre la izquierda y la derecha.
entre comillas, pero las mismas se descartan. Por defecto, la izquierda
La cadena de comillas consta de un acento grave (comilla inversa) y la cadena de comillas derecha
consta de un acento agudo (comillas simples); ver también el cambio de cita macro.

Los comentarios se escriben pero no se analizan en busca de nombres de macro coincidentes; por defecto, el comienzo
La cadena de comentarios consta de carácter y la cadena de comentario final consiste
de un . Ver también el cambiarcom y dnl macros

El m4 La utilidad pondrá a disposición las siguientes macros integradas. Pueden redefinirse,
pero una vez hecho esto, se pierde el significado original. Sus valores serán nulos a menos que
se indique lo contrario. En las descripciones siguientes, el término definir texto se refiere al valor de
la macro: el segundo argumento de la definir macro, entre otras cosas. Excepto por el
primer argumento a la eval macro, todos los argumentos numéricos de las macros integradas serán
interpretado como valores decimales. Los valores de cadena producidos como el texto definitorio de la
dic, divnum, aumentar, índice, leny val del sistema Las macros integradas tendrán la forma de un
constante decimal como se define en el lenguaje C.

cambiarcom El cambiarcom macro establecerá las cadenas de comentario de inicio y final de comentario. Sin
argumentos, el mecanismo de comentarios se desactivará. Con un solo no nulo
argumento, ese argumento se convertirá en el comentario inicial y el deberá
se convierte en la cadena de comentario final. Con dos argumentos no nulos, el primer argumento
se convertirá en la cadena de comentario inicial y el segundo argumento se convertirá en el
cadena de comentario final. El comportamiento no está especificado si se proporciona alguno de los argumentos.
pero nulo. Los sistemas admitirán cadenas de comentarios de al menos cinco caracteres.

cambio de cita
El cambio de cita macro establecerá las cadenas de comillas iniciales y comillas finales. Sin
argumentos, las cadenas de comillas se establecerán en los valores predeterminados (es decir, `').
El comportamiento no está especificado si hay un solo argumento o cualquiera de los argumentos es
nulo. Con dos argumentos no nulos, el primer argumento se convertirá en el principio
cadena de comillas y el segundo argumento se convertirá en la cadena de comillas finales. Sistemas
admitirá cadenas de comillas de al menos cinco caracteres.

dic El texto definitorio de la dic macro será su primer argumento decrementado por
1. Será un error especificar un argumento que contenga cualquier valor no numérico.
caracteres. El comportamiento no está especificado si dic no es seguido inmediatamente por
a .

definir El segundo argumento se convertirá en el texto definitorio de la macro cuyo nombre es
el primer argumento. No se especifica si el definir macro borra todo lo anterior
definiciones de la macro nombrada por su primer argumento o conserva todas las
definición actual de la macro. El comportamiento no está especificado si definir no es
seguido inmediatamente por un .

definir El texto definitorio de la definir macro será la definición citada (utilizando la
cadenas de citas actuales) de sus argumentos. El comportamiento no está especificado si definir
no es seguido inmediatamente por un .

desviar El m4 La empresa de servicios públicos mantiene nueve búferes temporales, numerados del 1 al 9, inclusive.
Cuando se ha procesado la última entrada, cualquier salida que se haya colocado
en estos búferes se escribirán en la salida estándar en orden numérico de búfer.
El desviar La macro desviará la salida futura al búfer especificado por su
argumento. No especificar ningún argumento o un argumento de 0 reanudará la normalidad
proceso de salida. La salida desviada a un flujo con un número negativo se
descartado. El comportamiento está definido por la implementación si un número de flujo mayor que 9
está especificado. Será un error especificar un argumento que contenga cualquier
caracteres numéricos.

divnum El texto definitorio de la divnum macro será el número de la salida actual
fluir como una cadena.

dnl El dnl macro causará m4 para descartar todos los caracteres de entrada hasta e incluyendo
el siguiente .

vertedero El vertedero La macro debe escribir el texto definido con un error estándar para cada uno de los
macros especificadas como argumentos o, si no se especifican argumentos, para todos
macros

error de imprenta El error de imprenta macro escribirá sus argumentos a error estándar. El comportamiento es
sin especificar si error de imprenta no es seguido inmediatamente por un .

eval El eval macro evaluará su primer argumento como una expresión aritmética,
utilizando aritmética de enteros con signo con al menos una precisión de 32 bits. Al menos el
Se admitirán los siguientes operadores en lenguaje C, con precedencia,
asociatividad y comportamiento como se describe en Sección 1.1.2.1, Aritmética
Precisión y Operaciones:

()
unario +
unario -
~

!
binario *
/
%
binario +
binario -
<<
>>
<
<=
>
>=
==
!=
binario y
^
|
&&
||

Los sistemas admitirán números octales y hexadecimales como en el estándar ISO C.
El segundo argumento, si se especifica, establecerá la base del resultado; Si el
El argumento está en blanco o sin especificar, el valor predeterminado es 10. El comportamiento no se especifica si
la base cae fuera del rango de 2 a 36, ​​inclusive. El tercer argumento, si
especificado, establece el número mínimo de dígitos en el resultado. El comportamiento es
sin especificar si el tercer argumento es menor que cero. Será un error
especifique el segundo o tercer argumento que contenga cualquier carácter no numérico. los
el comportamiento no está especificado si eval no es seguido inmediatamente por un
paréntesis>.

si def Si el primer argumento de la si def macro está definida, el texto definitorio será
el segundo argumento. De lo contrario, el texto definitorio será el tercer argumento,
si se especifica, o la cadena nula, si no. El comportamiento no está especificado si si def
no es seguido inmediatamente por un .

si no El si no macro toma tres o más argumentos. Si los dos primeros argumentos
comparar como cadenas iguales (después de la expansión macro de ambos argumentos), la definición
el texto será el tercer argumento. Si los dos primeros argumentos no se comparan como
cadenas iguales y hay tres argumentos, el texto de definición será nulo. Si
los dos primeros argumentos no se comparan como cadenas iguales y hay cuatro o
cinco argumentos, el texto definitorio será el cuarto argumento. Si los dos primeros
los argumentos no se comparan como cadenas iguales y hay seis o más argumentos,
Los primeros tres argumentos se descartarán y el procesamiento se reiniciará con
los argumentos restantes. El comportamiento no está especificado si si no no es
seguido inmediatamente por un .

incluir El texto definitorio de la incluir macro será el contenido del archivo llamado
por el primer argumento. Será un error si el archivo no se puede leer. los
el comportamiento no está especificado si incluir no es seguido inmediatamente por un
paréntesis>.

aumentar El texto definitorio de la aumentar macro será su primer argumento incrementado por
1. Será un error especificar un argumento que contenga cualquier valor no numérico.
caracteres. El comportamiento no está especificado si aumentar no es seguido inmediatamente por
a .

índice El texto definitorio de la índice macro será la posición del primer carácter (como un
cadena) en el primer argumento donde comienza una cadena que coincide con el segundo argumento
(origen cero), o -1 si el segundo argumento no ocurre. El comportamiento es
sin especificar si índice no es seguido inmediatamente por un .

len El texto definitorio de la len macro será la longitud (como una cadena) de la
primer argumento. El comportamiento no está especificado si len no se sigue de inmediato
por un .

m4salir Salir de la m4 utilidad. Si se especifica el primer argumento, es la salida
código. El valor predeterminado es cero. Será un error especificar un argumento.
que contiene cualquier carácter no numérico.

envoltura m4 El primer argumento se procesará cuando se alcance EOF. Si el envoltura m4 macro
se utiliza varias veces, los argumentos especificados se procesarán en el orden
en el que la envoltura m4 se procesaron macros. El comportamiento no está especificado si envoltura m4
no es seguido inmediatamente por un .

hacer El texto de definición será el primer argumento, con cualquier final 'X' personajes
reemplazado con el ID del proceso actual como una cadena. El comportamiento no está especificado
if hacer no es seguido inmediatamente por un .

mktemp El primer argumento se tomará como plantilla para crear un archivo vacío, con
trailing 'X' caracteres reemplazados por caracteres del nombre de archivo portátil
conjunto de caracteres. El comportamiento no se especifica si el primer argumento no termina en
al menos seis 'X' caracteres. Si se crea correctamente un archivo temporal,
el texto que define la macro será el nombre del nuevo archivo. El ID de usuario
del archivo se establecerá en el ID de usuario efectivo del proceso. El ID de grupo
del archivo se establecerá en el ID de grupo del directorio principal del archivo o en
el ID de grupo efectivo del proceso. Los bits de permiso de acceso a archivos están configurados
de modo que solo el propietario pueda leer y escribir el archivo, independientemente de la
corriente umask del proceso. Si no se pudo crear un archivo, el texto de definición
de la macro será la cadena vacía. El comportamiento no está especificado si mktemp
no es seguido inmediatamente por un .

popdef El popdef macro eliminará la definición actual de sus argumentos, reemplazando
esa definición con la anterior. Si no existe una definición previa, la
La macro no está definida. El comportamiento no está especificado si popdef no es de inmediato
seguido de un .

empuje def El empuje def macro será equivalente a la definir macro con la excepción
que conservará cualquier definición actual para su futura recuperación utilizando el
popdef macro. El comportamiento no está especificado si empuje def no se sigue de inmediato
por un .

Turno El texto definitorio de la Turno macro será una lista separada por comas de sus
argumentos excepto el primero. Cada argumento se citará utilizando el actual
citando cadenas. El comportamiento no está especificado si Turno no es de inmediato
seguido de un .

excluir El excluir macro será equivalente a la incluir macro, excepto que
no será un error si el archivo es inaccesible. El comportamiento no está especificado
if excluir no es seguido inmediatamente por un .

substr El texto definitorio de la substr macro será la subcadena de la primera
argumento que comienza en la posición del carácter de compensación cero especificada por el segundo
argumento. El tercer argumento, si se especifica, será el número de caracteres a
Seleccione; si no se especifica, los caracteres desde el punto de inicio hasta el final de
el primer argumento se convertirá en el texto definitorio. No será un error
especificar un punto de partida más allá del final del primer argumento y la definición
el texto será nulo. Será un error especificar un argumento que contenga cualquier
caracteres no numéricos. El comportamiento no está especificado si substr no es
seguido inmediatamente por un .

sistema El sistema La macro interpretará su primer argumento como una línea de comandos de shell. los
la definición de texto será el resultado de la cadena de ese comando. El resultado de la cadena
no se volverá a escanear en busca de macros mientras se configura el texto de definición. Ninguna salida
La redirección será realizada por el m4 utilidad. El valor del estado de salida del
El comando se puede recuperar usando el val del sistema macro. El comportamiento no está especificado si
sistema no es seguido inmediatamente por un .

val del sistema El texto definitorio de la val del sistema macro será el valor de salida de la utilidad
invocado por última vez por el sistema macro (como una cadena).

seguimiento El seguimiento la macro permitirá el seguimiento de las macros especificadas como argumentos,
o, si no se especifican argumentos, para todas las macros. La salida de seguimiento debe ser
escrito con error estándar en un formato no especificado.

rastreo El rastreo La macro inhabilitará el seguimiento de las macros especificadas como argumentos,
o, si no se especifican argumentos, para todas las macros.

translit El texto definitorio de la translit macro será el primer argumento con cada
carácter que aparece en el segundo argumento reemplazado con el correspondiente
personaje del tercer argumento. Si no se especifica ningún carácter de reemplazo para
algún carácter fuente porque el segundo argumento es más largo que el tercero
argumento, ese carácter se eliminará del primer argumento en translit's
definición de texto. El comportamiento no está especificado si el '-' el personaje aparece dentro
el segundo o tercer argumento en cualquier lugar además del primer o último carácter. los
El comportamiento no está especificado si el mismo carácter aparece más de una vez en el
segundo argumento. El comportamiento no está especificado si translit no es de inmediato
seguido de un .

indefinir El indefinir La macro eliminará todas las definiciones (incluidas las conservadas mediante
las empuje def macro) de las macros nombradas por sus argumentos. El comportamiento es
sin especificar si indefinir no es seguido inmediatamente por un .

desviar El desviar La macro provocará una salida inmediata de cualquier texto en búferes temporales
nombrados como argumentos, o todos los búferes temporales si no se especifican argumentos.
Los búferes se pueden desviar a otros búferes temporales. Desvío deberá
deseche el contenido del búfer temporal. El comportamiento no se especifica si un
El argumento contiene cualquier carácter no numérico.

SALIR ESTADO


Se devolverán los siguientes valores de salida:

0 Finalización satisfactoria.

> 0 Ocurrió un error

Si m4salir macro, el valor de salida puede ser especificado por el archivo de entrada.

CONSECUENCIAS OF ERRORES


Por defecto.

El siguiendo (secciones) en informativo.

SOLICITUD USO


El definir La macro es útil para cambiar el nombre de las macros, especialmente las integradas.

Como eval difiere del estándar ISO C, algunas operaciones tienen un comportamiento indefinido. En algunos
implementaciones, la división o el resto por cero causan una señal fatal, incluso si la división
ocurre en la rama en cortocircuito de "&&" or "||". Cualquier operación que se desborde
la aritmética con signo produce un comportamiento indefinido. Del mismo modo, utilizando el Turno operadores con un
La cantidad de cambio que no es positiva y menor que la precisión no está definida, al igual que
desplazando un número negativo a la derecha. Históricamente, no todas las implementaciones obedecían a C-
reglas de precedencia del idioma: '~' y '!' fueron menores que '=='; '==' y '! =' no fueron más bajos
que '<'; y '|' no fue menor que '^'; el uso liberal de "()" puede forzar lo deseado
precedencia incluso con estas implementaciones no compatibles. Además, algunos tradicionales
implementaciones tratadas '^' como un operador de exponenciación, aunque la mayoría de las implementaciones
Ahora usa "**" como una extensión para este propósito.

Cuando una macro se ha definido de forma múltiple mediante el empuje def macro, no se especifica si
las definir macro alterará sólo la definición más reciente (como si por popdef y
empuje def), o reemplace toda la pila de definiciones con una sola definición (como si
by indefinir y empuje def). Una aplicación que desea un comportamiento particular para el definir
macro en este caso puede redefinirlo en consecuencia.

Las aplicaciones deben usar el mktemp macro en lugar de lo obsoleto hacer macro para
creando archivos temporales.

EJEMPLOS


Si el archivo m4src contiene las líneas:

El propuesta de of 'VER' is "VER".
ifdef ('VER', `` VER '' is se define a be VER., VER is no definido.)
ifelse (VER, 1, `` VER '' is 'VER'.)
ifelse (VER, 2, `` VER '' is `VER '., `` VER '' is no 2).
final

entonces el comando

m4 m4src

o el comando:

m4 −U VER m4src

produce la salida:

El propuesta de of VER is "VER".
VER is no definido.

VER no es 2.
final

El comando:

m4 −D VER m4src

produce la salida:

El propuesta de of VER is "".
VER is se define a be .

VER no es 2.
final

El comando:

m4 −D VER = 1 m4src

produce la salida:

El propuesta de of VER is "1".
VER is se define a be 1.
VER is 1.
VER is no 2.
final

El comando:

m4 −D VER = 2 m4src

produce la salida:

El propuesta de of VER is "2".
VER is se define a be 2.

VER es 2.
final

RAZÓN FUNDAMENTAL


Comportamiento histórico basado en System V tratado PS en una macrodefinición como dos literales
caracteres. Sin embargo, esta secuencia se deja sin especificar para que las implementaciones puedan ofrecer
extensiones como "$ {11}" es decir, el undécimo parámetro posicional. Las macros todavía pueden ser
definido con usos apropiados de citas anidadas para dar como resultado un literal PS en la salida
después de volver a escanear, se eliminan las comillas anidadas.

En translit comportamiento histórico basado en System V incorporado tratado '-' como literal; ÑU
el comportamiento lo trata como un rango. Esta versión del estándar permite ambos comportamientos.

EL FUTURO DIRECCIONES


Ninguna.

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


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    Phaser
    Phaser
    Phaser es una apertura rápida, gratuita y divertida
    marco de juego HTML5 de origen que ofrece
    Representación de WebGL y Canvas en
    navegadores web de escritorio y móviles. Juegos
    puede ser co ...
    Descargar Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL es un motor de juego para crear
    Versiones electrónicas de tablero tradicional.
    y juegos de cartas. Proporciona soporte para
    representación e interacción de las piezas del juego,
    y ...
    Descargar motor VASSAL
  • 3
    OpenPDF - Bifurcación de iText
    OpenPDF - Bifurcación de iText
    OpenPDF es una biblioteca de Java para crear
    y edición de archivos PDF con LGPL y
    Licencia MPL de código abierto. OpenPDF es el
    LGPL/MPL sucesor de código abierto de iText,
    un ...
    Descargar OpenPDF - Bifurcación de iText
  • 4
    SIG SAGA
    SIG SAGA
    SAGA - Sistema para automatizado
    Análisis geocientíficos - es un análisis geográfico
    Software del sistema de información (GIS) con
    inmensas capacidades para geodatos
    procesamiento y ana ...
    Descargar SIG SAGA
  • 5
    Caja de herramientas para Java / JTOpen
    Caja de herramientas para Java / JTOpen
    IBM Toolbox para Java / JTOpen es un
    biblioteca de clases de Java que soporta el
    programacion cliente/servidor e internet
    modelos a un sistema que ejecuta OS/400,
    i5/OS, o...
    Descargar Toolbox para Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (o D3 para documentos basados ​​en datos)
    es una biblioteca de JavaScript que le permite
    para producir datos dinámicos e interactivos
    visualizaciones en navegadores web. con D3
    tú...
    Descargar D3.js
  • Más "

Comandos de Linux

  • 1
    arbitro
    arbitro
    abidiff - comparar ABI de archivos ELF
    abidiff compara el binario de la aplicación
    Interfaces (ABI) de dos bibliotecas compartidas
    en formato ELF. emite un significado
    informar ...
    Ejecutar abidiff
  • 2
    cumplir
    cumplir
    abidw - serializa el ABI de un ELF
    archivo abidw lee una biblioteca compartida en ELF
    formato y emite una representación XML
    de su ABI a la salida estándar. El
    emitido...
    Ejecutar abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversión de bibliografía
    utilidades...
    Ejecutar copac2xml
  • 4
    copto
    copto
    copt - optimizador de mirilla SYSNOPIS:
    archivo copt.. DESCRIPCIÓN: copt es un archivo
    optimizador de mirilla de uso general. Él
    lee el código de su entrada estándar y
    escribe un...
    Ejecutar copia
  • 5
    reunir_stx_títulos
    reunir_stx_títulos
    reunir_stx_titles - recopilar título
    declaraciones de documentos Stx ...
    Ejecute reunir_stx_títulos
  • 6
    banco-gatling
    banco-gatling
    banco - punto de referencia http ...
    Ejecutar gatling-banco
  • Más "

Ad