Estos son los estados de comando que se pueden 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
estados - herramienta de procesamiento de texto similar a awk
SINOPSIS
afirma [-hvv] [-D var=val] [-f presentar] [-o archivo de salida] [-p camino] [-s estado de inicio] [-W nivel]
[nombre de archivo ...]
DESCRIPCIÓN
Estados es una herramienta de procesamiento de texto similar a awk con algunas extensiones de máquina de estado. Está
diseñado para resaltar el código fuente del programa y para tareas similares donde la información de estado
ayuda al procesamiento de entrada.
En un solo momento, Estados está en un estado, cada uno bastante similar al trabajo de awk
entorno, tienen expresiones regulares que coinciden con la entrada y las acciones
que se ejecutan cuando se encuentra una coincidencia. Desde los bloques de acción, afirma puede realizar
transiciones de estado; puede pasar a otro estado desde el que continúa el procesamiento.
Las transiciones de estado se registran afirma puede volver al estado de llamada una vez que el actual
el estado ha terminado.
La mayor diferencia entre afirma y awk, además de las extensiones de la máquina de estado, es que
afirma no está orientado a líneas. Coincide con los tokens de expresión regular de la entrada y una vez
se procesa una coincidencia, continúa procesando desde la posición actual, no desde la
comienzo de la siguiente línea de entrada.
OPCIONES
-D var=val, --define =var=val
Definir variable var tener valor de cadena val. Sobreescritura de definiciones de línea de comando
definiciones de variables encontradas en el archivo de configuración.
-f presentar, --file =presentar
Leer definiciones de estado del archivo presentar. Por defecto, afirma intenta leer el estado
definiciones del archivo estados.st en el directorio de trabajo actual.
-h, --ayuda
Imprima un breve mensaje de ayuda y salga.
-o presentar, --salida =presentar
Guardar salida en archivo presentar en lugar de imprimirlo en stdout.
-p camino, --ruta =camino
Establezca la ruta de carga en camino. La ruta de carga tiene como valor predeterminado el directorio, desde el cual
se carga el archivo de definiciones de estado.
-s estado, --state =estado
Iniciar ejecución desde el estado estado. Esta definición sobrescribe el estado de inicio resuelto
desde la comienzo bloquear.
-v, --verboso
Aumente la verbosidad del programa.
-V, --versión
Imprimir afirma versión y salir.
-W nivel, --warning =nivel
Establezca el nivel de advertencia en nivel. Posibles valores para nivel son:
light advertencias ligeras (predeterminado)
que todas todas las advertencias
ESTADOS PROGRAMA ARCHIVOS
Estados los archivos de programa pueden contener comienzo bloquear, reglas de sobresalto y reglas de nombre bloques a
especificar el estado inicial, estado definiciones y expresiones.
La característica comienzo bloque es el principal () del afirma programa, se ejecuta al inicio del script para
cada archivo de entrada y puede realizar cualquier inicialización que necesite el script. Normalmente también
llama al check_startrules () y check_namerules () primitivas que resuelven la inicial
estado desde el nombre del archivo de entrada o los datos encontrados desde el principio del archivo de entrada.
Aquí hay un bloque de inicio de muestra que inicializa dos variables y hace el inicio estándar
estado resolviendo:
comienzo
{
a = 1;
msg = "¡Hola, mundo!";
check_startrules ();
comprobar_nombrereglas ();
}
Una vez que se procesa el bloque de inicio, el procesamiento de entrada continúa desde el
estado.
El estado inicial se resuelve con la información que se encuentra en el reglas de sobresalto y reglas de nombre
bloques. Ambos bloques contienen pares de expresiones regulares y símbolos, cuando el
La expresin coincide con el nombre de desde el principio del archivo de entrada, la inicial
El estado se nombra mediante el símbolo correspondiente. Por ejemplo, el siguiente inicio y nombre
Las reglas pueden distinguir archivos C y Fortran:
reglas de nombre
{
/\.(c|h)$/ c;
/\.[fF]$/ fortrán;
}
reglas de sobresalto
{
/ - \ * - [cC] - \ * - / c;
/ - \ * - fortran - \ * - / fortran;
}
Si estas reglas se utilizan con el bloque de inicio mostrado anteriormente, afirma primero revisa el
comienzo del archivo de entrada. Si tiene cuerda - * - c - * -, se supone que el archivo contiene C
código y el procesamiento se inicia desde el estado llamado c. Si el comienzo de la entrada
el archivo tiene una cadena - * - Fortran - * -, el estado inicial es Fortran. Si ninguna de las reglas de inicio
coincidente, el nombre del archivo de entrada coincide con las reglas de nombre. Si el nombre termina en
sufijo c or C, vamos al estado c. Si el sufijo es f or F, el estado inicial es fortran.
Si las reglas de inicio y de nombre no lograron resolver el estado de inicio, afirma solo copia su
entrada a salida sin modificar.
El estado de inicio también se puede especificar desde la línea de comando con la opción -s, --estado.
Las definiciones de estado tienen la siguiente sintaxis:
estado { expr {declaraciones} ...}
dónde expr es: una expresión regular, expresión especial o símbolo y declaraciones es una lista
de declaraciones. Cuando la expresion expr coincide con la entrada, el bloque de instrucciones es
ejecutado. El bloque de declaraciones puede llamar afirma'primitivas, subrutinas definidas por el usuario, llamada
otros estados, etc. Una vez que se ejecuta el bloque, el procesamiento de entrada continúa desde el
posición de entrada actual (que podría haber cambiado si el bloque de instrucciones llamaba a otro
estados).
Expresiones especiales EMPEZAR y FIN se puede utilizar en lugar de expr. Expresión EMPEZAR
coincide con el comienzo del estado, su bloque se llama cuando se ingresa al estado.
expresión FIN coincide con el final del estado, su bloque se ejecuta cuando afirma deja el
estado.
If expr es un símbolo, su valor se busca en el entorno global y si es un
expresión regular, coincide con la entrada; de lo contrario, esa regla se ignora.
La característica afirma El archivo de programa también puede tener expresiones de nivel superior, se evalúan después de la
El archivo de programa se analiza pero antes de que se procesen los archivos de entrada o comienzo el bloque es
evaluado.
PRIMITIVO Las funciones
llamar al (símbolo)
Mover al estado símbolo y continuar con el procesamiento del archivo de entrada desde ese estado. Función
devuelve lo que sea símbolo el estado está terminando volvemos declaración devuelta.
llamar (nombre )
Como llamar al pero el argumento nombre se evalúa y su valor debe ser una cadena. Para
Por ejemplo, esta función se puede utilizar para llamar a un estado cuyo nombre se almacena en un
variable.
comprobar_nombrereglas ()
Intente resolver el estado de inicio desde reglas de nombre normas. Devuelve la función 1 si empieza
estado se resolvió o 0 de otra manera.
check_startrules ()
Intente resolver el estado de inicio desde reglas de sobresalto normas. Devuelve la función 1 si empieza
estado se resolvió o 0 de otra manera.
concat (str, ...)
Concane cadenas de argumentos y devuelva el resultado como una nueva cadena.
flotar (cualquier)
Convierta el argumento en un número de punto flotante.
conseguir (str)
Obtener el valor de la variable de entorno str. Devuelve una cadena vacía si es variable var is
indefinido.
int (cualquier)
Convierte un argumento en un número entero.
de largo (ít, ...)
Cuente la longitud de las listas o cadenas de argumentos.
lista (cualquier, ...)
Cree una nueva lista que contenga elementos cualquier...
entra en pánico (cualquier, ...)
Informar un error no recuperable y salir con el estado 1. La función nunca regresa.
Imprimir (cualquier, ...)
Convierta argumentos en cadenas e imprímalos en la salida.
distancia (fuente, comienzo, final)
Devuelve un subrango de fuente comenzando desde la posición comienzo (inclusive) a final
(exclusivamente). Argumento fuente puede ser una cadena o una lista.
regexp (cadena)
Convertir cadena cadena a una nueva expresión regular.
sintaxis_regexp (tanque, sintaxis)
Modifique la sintaxis de los caracteres de las expresiones regulares asignando una nueva sintaxis sintaxis para
personaje tanque. Posibles valores para sintaxis son:
'w' el carácter es un constituyente de la palabra
' ' el carácter no es un constituyente de la palabra
coincidencia de registro (cadena, regexp)
Compruebe si la cadena cadena coincide con la expresión regular regexp. Funciones devuelve un
estado de éxito booleano y establece registros de subexpresión $n.
suscripción de registro (cadena, regexp, subst)
Expresión regular de búsqueda regexp de la cuerda cadena y reemplace la coincidencia
subcadena con cadena subst. Devuelve la cadena resultante. La sustitucion
cadena subst Puede contener $n referencias a la n: la sup-expresión entre paréntesis.
regsubball (cadena, regexp, subst)
Como suscripción de registro pero reemplaza todas las coincidencias de expresión regular regexp de la cuerda
cadena Con cuerda subst.
estado_requerido (símbolo)
Compruebe que el estado símbolo se define. Si el estado requerido no está definido, el
La función intenta cargarlo automáticamente. Si la carga falla, el programa terminará
con un mensaje de error.
split (regexp, cadena)
Cuerda partida cadena enumerar considerando coincidencias de reexpresión regular regexp as
separador de elementos.
correr (fmt, ...)
Formatee los argumentos de acuerdo con fmt y devuelve el resultado como una cadena.
strcmp (str1, str2)
Realizar una comparación sensible a mayúsculas y minúsculas para cadenas str1 y str2. Devuelve la función
un valor que es:
-1 cadena str1 es menor que str2
0 las cadenas son iguales
1 cadena str1 es mayor que str2
cadena (cualquier)
Convierte un argumento en una cadena.
strncmp (str1, str2, número)
Realizar una comparación sensible a mayúsculas y minúsculas para cadenas str1 y str2 comparando en
máximas número personajes.
subcadena (str, comienzo, final)
Devuelve una subcadena de cadena str comenzando desde la posición comienzo (inclusive) a final
(exclusivamente).
INCORPORADO VARIABLES
$. número de línea de entrada actual
$n la n: la subexpresión de expresión regular entre paréntesis del último estado
expresión regular o de la coincidencia de registro primitivo
$` todo antes de la reexpresión regular correspondiente. Esto es utilizable cuando se usa con
la coincidencia de registro primitivo; el contenido de esta variable no está definido cuando se usa en
bloques de acción para referir los datos antes de la expresión regular del bloque.
$B un alias para $`
argv lista de nombres de archivos de entrada
nombre de archivo
nombre del archivo de entrada actual
programa nombre del programa (normalmente afirma)
versión cadena de versión del programa
Utilice los estados en línea utilizando los servicios de onworks.net