progress-4gl
Compilando
Buscar..
Introducción
Compile el código de progreso como se llama "r-code" y normalmente se guarda en un archivo con la extensión .r. Hay un par de maneras diferentes de compilar: usando la declaración COMPILE
o en Linux o AppBuilder: el compilador de aplicaciones integrado. Developer Studio (el entorno Eclipse) tiene compilación integrada en su proceso de compilación.
Debe tener 4GL Development o OpenEdge Studio instalado para compilar los programas 4GL que actualizan la base de datos.
Sintaxis
- Programa compilar.p guardar. // Compila program.p y guarda su código r
- VALOR COMPILAR (var) GUARDAR. // Compila el nombre guardado en la variable "var" y guarda su código r
- COMPILE prog.p XREF prog.xref LISTING prog.list. // Compilar prog.p y crear referencias externas y archivos de lista. No guarde el código r.
- Programa compile.p guarde sin errores. // Compile program.p, guarde r-code y suprima los errores para detener la ejecución.
Compilador de aplicaciones
Windows AppBuilder
En el Windows Appbuilder, el compilador de aplicaciones se encuentra en el menú Herramientas.
Editor de procedimientos (Linux - pro
o Windows pro.exe
En el Editor de procedimientos (tanto en Linux como en Windows), el compilador se encuentra en el menú Herramientas.
Compilador de aplicaciones
Independientemente del sistema operativo, la funcionalidad del compilador es la misma. Puedes agregar directorios y / o archivos y compilarlos.
Ajustes principales (más abajo):
- Guardar nuevo archivo .r. Si no se marca, los archivos simplemente se compilarán pero no se guardarán. Útil para el seguimiento de errores, por ejemplo.
- Busque en subdirectorios. De lo contrario habrá que añadir subdirectorios.
- Eliminar viejos archivos .r. Sobrescribir el archivo .r antiguo.
- Onlu compila si no hay archivo .r. Solo compila archivos sin compilar.
Opciones:
- Propath: le muestra la ruta de acceso y le permite seleccionar directorios para compilar desde ella.
- Agregar: le permite ingresar un directorio o archivo.
- Modificar: le permite modificar una entrada existente.
- Eliminar: elimina una entrada.
- Iniciar compilación: inicia el compilador. Atajo: F2
Las opciones del menú principal:
- Archivo -> Salir: sale del compilador
- Compilar -> Iniciar compilación: inicia el compilador. Atajo: F2
- Herramientas -> Acceso a otras herramientas
- Opción -> Compilador ...: Configuraciones, vea abajo.
- Ayuda -> Ayuda de OpenEdge (solo Windows). Ayuda en linea. Atajo: F1
Ajustes
- Especificación de archivo predeterminada: extensiones de nombre de archivo para compilar
- Archivo de registro de mensajes: Archivo para guardar mensajes, advertencias y errores en
- Guardar en: Dónde almacenar el archivo .r. Si está en blanco el mismo directorio que el código.
- Idiomas: para traducciones. No se cubre aquí.
- V6Frame: Viejo e inútil ...
- Steam-IO: Si desea imprimir la salida del compilador. Probablemente no.
- Archivo de listado: si desea que el compilador cree un archivo de listado. Útil para la depuración
- Anexar: agregar al archivo de listado existente. De lo contrario sobrescribir.
- Ancho de página + Longitud: Formato del archivo de listado.
- Archivo de referencia externa: si desea que el compilador cree un
XREF
. Útil para depurar, verificar el uso del índice, etc. - Formato XML: si la referencia externa del compilador debe ser un xml. De lo contrario texto "sin formato".
- Anexar: agregar al archivo existente de referencia externa. De lo contrario sobrescribir.
- Archivo de depuración: Archivo de listado de depurador.
- Clave de cifrado: si el archivo fuente está cifrado utilizando
xcode
inserte la clave aquí. - Minimizar el tamaño del código R: elimine cierta información de depuración para mantener pequeño el código r.
- Generar MD-5: Mayormente para compilación de WebClient.
Uso básico
- Iniciar el compilador
- Agregar una ruta (si no está guardada desde la última sesión)
- Presione F2 para compilar.
- Observe cualquier error.
- Salida
Declaración COMPILE
La declaración de compilación le permite compilar programas en Progress ABL:
Uso básico:
COMPILE hello-world.p SAVE.
Con una variable:
DEFINE VARIABLE prog AS CHARACTER NO-UNDO.
prog = "hello.p".
COMPILE VALUE(prog) SAVE.
Hay varias opciones para la COMPILE
COMPILE:
SAVE
indica que el código .r debe guardarse para uso futuro.
COMPILE hello-world.p SAVE.
SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
guarda el código r en el directorio especificado:
COMPILE hello-world.p SAVE INTO /usr/sources.
LISTING file
. Crea un archivo de listado que contiene información de depuración de bloques, incluye, etc.
COMPILE program.p SAVE LISTING c:\temp\listing.txt.
El listado tiene un par de opciones para agregar archivos, tamaño de página y ancho de página:
APPEND PAGE-SIZE num PAGE-WIDTH num
XREF xreffile
guardará un archivo de referencia XREF xreffile
compilador que contiene información sobre el uso de la cadena y el índice, etc. También puede APPEND
este.
COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.
XREF-XML xreffile-or-dir
hará lo mismo que XREF
pero guardará el archivo en un formato xml. Si usa un directorio, el archivo xref se llamará programname.xref.xml
.
COMPILE file.p SAVE XREF c:\temp\.
NO-ERROR
eliminará cualquier error al detener su programa.
COMPILE program SAVE NO-ERROR.
DEBUG-LIST file
genera un archivo de depuración con números de línea.
COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.
PREPROCESS file
primero traducirá todos los preprocesadores y luego creará un nuevo archivo .p con el código antes de compilar.
COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.
XCODE key
compilará un código fuente encriptado con la key
como clave. No puede utilizar XCODE con las opciones XREF, XREF-XML, STRING-XREF o LISTING juntas.
COMPILE program.p SAVE XCODE myKey.
Puedes combinar varias opciones:
COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.
Manija del sistema compilador
El controlador del sistema COMPILER
permite ver información sobre una compilación reciente.
Asumiendo que ok-program.p
es un programa sin ningún error o advertencia:
COMPILE ok-program.p SAVE NO-ERROR.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
Esto procurará:
Compilando un programa con una advertencia:
/* program-with-warning.p */
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
c = "hello".
DISPLAY c.
//This RETURN makes the program exit here and the code below unreachable.
RETURN.
IF TRUE THEN DO:
i = 10.
END.
Compilando el programa:
COMPILE program-with-warning.p SAVE.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
DO iError = 1 TO COMPILER:NUM-MESSAGES:
DISPLAY
COMPILER:GET-FILE-NAME(iError) LABEL "Filename" FORMAT "x(20)"
COMPILER:GET-MESSAGE(iError) LABEL "Message" FORMAT "x(50)"
COMPILER:GET-NUMBER(iError) LABEL "Msg#"
COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
COMPILER:GET-ERROR-ROW(iError) LABEL "Row"
WITH FRAME fr1 SIDE-LABELS 1 COLUMNS.
END.
Resultado:
Compilando un programa con un error.
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
c = "hello".
DISPLAY c.
//Casting should be required below...
IF TRUE THEN DO:
i = c.
END.
Compilando el programa:
//Use no-errors to supress any error messages from interrupting us.
COMPILE c:\temp\program-with-error.p SAVE NO-ERROR.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
DO iError = 1 TO COMPILER:NUM-MESSAGES:
DISPLAY
COMPILER:GET-FILE-NAME(iError) LABEL "Filename" FORMAT "x(20)"
COMPILER:GET-MESSAGE(iError) LABEL "Message" FORMAT "x(50)"
COMPILER:GET-NUMBER(iError) LABEL "Msg#"
COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
COMPILER:GET-ERROR-ROW(iError) LABEL "Row"
WITH FRAME fr1 SIDE-LABELS 1 COLUMNS 20 DOWN.
DOWN WITH FRAME fr1.
END.
Resultado, casi siempre hay dos errores por error. "No se pudo entender" es seguido por el error real: