Cada función EGL se compone de entre cero y muchas sentencias EGL de los siguientes tipos:
- Una declaración de variable o declaración de constante proporciona acceso a un área de memoria determinada. El valor de una variable puede cambiarse durante la ejecución; no así el valor de una constante.
Cada tipo de declaración puede encontrarse en cualquier lugar de una función, excepto en un bloque, como se describe más delante.
- Una invocación de función dirige el proceso a una función, como en este ejemplo:
myFunction(myInput);
Las llamadas recursivas sólo son válidas si la generación se realiza para
Java.
- Una sentencia de asignación puede copiar cualquiera de los siguientes valores en una variable:
- Datos de una constante o variable
- Un literal
- Un valor devuelto desde una invocación de función
- El resultado de un cálculo aritmético
- El resultado de una concatenación de series
Ejemplos de sentencias de asignación:
myItem = 15;
myItem = readFile(myKeyValue);
myItem = bigValue - 32;
record1.message = "Operación " + "satisfactoria";
- Una sentencia de palabra clave proporciona funciones adicionales, como por ejemplo acceso a archivos. Cada una de estas sentencias se nombra para la palabra clave que inicia la sentencia; por ejemplo:
add record1; // una sentencia add
return (0); // una sentencia return
- Una sentencia nula es un punto y coma que no tiene ningún efecto, pero que puede ser de utilidad como espacio reservado, como en este ejemplo:
if (myItem == 5)
; // sentencia nula
else
myFunction(myItem);
end
Las sentencias EGL no nulas tienen las siguientes características:
- Una sentencia puede hacer referencia a áreas de memoria determinadas, que son de los siguientes tipos:
- Form
- Page handler
- Record
- DataTable
- Item (una categoría que incluye elementos de datos, así como elementos de estructura de registros, formularios y tablas)
- Array (un área de memoria basada en un elemento de estructura que tiene un valor de apariciones mayor que 1)
- Una sentencia puede incluir estos tipos de expresiones:
- Una expresión de fecha y hora se resuelve en una fecha, un entero, un intervalo o una
indicación de la hora
- Una expresión lógica se resuelve en true o false
- Un expresión numérica se resuelve en un número, que puede tener signo e incluir una coma decimal
- Una expresión de serie se resuelve en una serie de caracteres, que puede incluir caracteres de un solo byte, caracteres de doble byte o una combinación de ambos
- Una sentencia finaliza con un punto y coma o con un bloque, que es una serie de cero o más sentencias subordinadas que actúan como una unidad. Las sentencias que contienen bloques finalizan con un delimitador de finalización, como en este ejemplo:
if (record2.status= "Y")
record1.total = record1.total + 1;
record1.message = "Operación satisfactoria";
else
record1.message = "Operación anómala";
end
Un punto y coma después de un delimitador de finalización no es un error, pero se trata como sentencia nula.
Los nombres de sentencias y en todo EGL
no son sensibles a mayúsculas y minúsculas; por ejemplo,
record1 es idéntico a
RECORD1 y tanto
add como
ADD hacen referencia a la misma palabra clave.
Nota: Al utilizar la pestaña de código fuente en Page Designer, puede enlazar manualmente componentes en
un archivo JSP (específicamente en un archivo JavaServer Faces) con áreas de datos en un manejador
de páginas. Aunque EGL no es sensible a las mayúsculas y minúsculas, los nombres de variable EGL a
los que se hace referencia en el archivo JSP deben coincidir en cuanto a mayúsculas y minúsculas
con la declaración de variable EGL; si la coincidencia no es total, se produce un error de
JavaServer Faces. Es recomendable no cambiar las mayúsculas y minúsculas de una variable EGL
después de enlazar esa variable con un campo JSP.
Las
palabras del sistema son un conjunto de palabras que proporcionan funciones especiales:
- Una función de sistema ejecuta código y puede devolver un valor; por ejemplo:
- sysLib.minimum(arg1, arg2) devuelve el mínimo de dos números
- strLib.strLen(arg1) devuelve la longitud de una serie de caracteres
El calificador (mathLibstrLib o sysLib) sólo es necesario si
el programa tiene una función con el mismo nombre.
- Una variable de sistema proporciona un valor sin invocar a una función; por ejemplo:
- sysVar.errorCode contiene un código de estado después de que el programa acceda a un archivo y en otras situaciones
- sysVar.sqlcode contiene un código de estado después de que el programa acceda a una base de datos relacional
El calificador sysVar sólo es necesario si el programa tiene una variable con el mismo nombre.
Una línea de una función puede contener más de una sentencia. Sin embargo, no es aconsejable incluir más de una sentencia por línea, ya que puede utilizar el depurador EGL para establecer un punto de interrupción sólo en la primera sentencia de una línea.
Consulte también el apartado Comentarios.