Rexx - Sintaxis básica
Para comprender la sintaxis básica de Rexx, veamos primero un programa sencillo de Hello World.
Ejemplo
/* Main program */
say "Hello World"
Se puede ver lo sencillo que es el programa Hola mundo. Es una línea de script simple que se usa para ejecutar el programa Hello World.
Se deben tener en cuenta las siguientes cosas sobre el programa anterior:
los say command se utiliza para enviar un valor a la consola.
los /* */ se utiliza para comentarios en Rexx.
La salida del programa anterior será:
Hello World
Forma general de una declaración
En Rexx, veamos una forma general de programa. Eche un vistazo al siguiente ejemplo.
/* Main program */
say add(5,6)
exit
add:
parse arg a,b
return a + b
La salida del programa anterior será:
11
Repasemos lo que hemos entendido del programa anterior:
Agregar es una función definida para sumar 2 números.
En el programa principal, los valores de 5 y 6 se utilizan como parámetros para la función de suma.
La palabra clave exit se utiliza para salir del programa principal. Esto se usa para diferenciar el programa principal de la función de agregar.
La función de agregar se diferencia con el símbolo ':'.
La declaración de análisis se utiliza para analizar los argumentos entrantes.
Finalmente, la declaración de retorno se usa para devolver la suma de los valores numéricos.
Subrutinas y funciones
En Rexx, el código normalmente se divide en subrutinas y funciones. Se utilizan subrutinas y funciones para diferenciar el código en diferentes unidades lógicas. La diferencia clave entre subrutinas y funciones es que las funciones devuelven un valor, mientras que las subrutinas no.
A continuación se muestra un ejemplo de diferencia clave entre una subrutina y una función para una implementación de suma:
Implementación de funciones
/* Main program */
say add(5,6)
exit
add:
parse arg a,b
return a + b
Implementación de subrutinas
/* Main program */
add(5,6)
exit
add:
parse arg a,b
say a + b
La salida de ambos programas será el valor 11.
Ejecutando comandos
Rexx se puede utilizar como lenguaje de control para una variedad de sistemas basados en comandos. La forma en que Rexx ejecuta los comandos en estos sistemas es la siguiente. Cuando Rexx encuentra una línea de programa que no es ni una instrucción ni una asignación, trata esa línea como una expresión de cadena que debe evaluarse y luego pasar al entorno.
Un ejemplo es el siguiente:
Ejemplo
/* Main program */
parse arg command
command "file1"
command "file2"
command "file3"
exit
Cada una de las tres líneas similares en este programa es una expresión de cadena que agrega el nombre de un archivo (contenido en las constantes de cadena) al nombre de un comando (dado como parámetro). La cadena resultante se pasa al entorno para que se ejecute como un comando. Cuando el comando ha terminado, la variable "rc" se establece en el código de salida del comando.
El resultado del programa anterior es el siguiente:
sh: file1: command not found
3 *-* command "file1"
>>> " file1"
+++ "RC(127)"
sh: file2: command not found
4 *-* command "file2"
>>> " file2"
+++ "RC(127)"
sh: file3: command not found
5 *-* command "file3"
>>> " file3"
+++ "RC(127)"
Palabras clave en Rexx
La sintaxis libre de REXX implica que algunos símbolos están reservados para el uso del procesador de lenguaje en ciertos contextos.
Dentro de instrucciones particulares, algunos símbolos pueden reservarse para separar las partes de la instrucción. Estos símbolos se denominan palabras clave. Ejemplos de palabras clave REXX son lasWHILE in a DO instruction, y el THEN (que actúa como un terminador de cláusula en este caso) después de un IF or WHEN clause.
Aparte de estos casos, solo los símbolos simples que son el primer token en una cláusula y que no van seguidos de un "=" o ":" se verifican para ver si son palabras clave de instrucción. Puede utilizar los símbolos libremente en otras partes de las cláusulas sin que se consideren palabras clave.
Comentarios en Rexx
Los comentarios se utilizan para documentar su código. Los comentarios de una sola línea se identifican mediante / * * / en cualquier posición de la línea.
Un ejemplo es el siguiente:
/* Main program */
/* Call the add function */
add(5,6)
/* Exit the main program */
exit add:
/* Parse the arguments passed to the add function */ parse arg a,b
/* Display the added numeric values */
say a + b
Los comentarios también se pueden escribir entre una línea de código como se muestra en el siguiente programa:
/* Main program */
/* Call the add function */
add(5,6)
/* Exit the main program */
exit
add:
parse /* Parse the arguments passed to the add function */
arg a,b
/* Display the added numeric values */
say a + b
La salida del programa anterior será:
11
También puede tener varias líneas en un comentario como se muestra en el siguiente programa:
/* Main program
The below program is used to add numbers
Call the add function */
add(5,6)
exit
add:
parse arg a,b
say a + b
La salida del programa anterior será:
11