COMPILER :attribute
The input for the example procedure is a comma‑separated list of source files. It compiles each of these procedures. If a compilation error occurs, an appropriate message is written to the compile.msgs file.
/* Compile a series of source files passed in a comma separated list. */DEFINE INPUT PARAMETER sources AS CHARACTER NO-UNDO.DEFINE VARIABLE entry-num AS INTEGER NO-UNDO./* If the output file already exists, delete it. If this results in an error,ignore the error. */OS-DELETE "compile.msgs".DO entry-num = 1 TO NUM-ENTRIES(sources):COMPILE VALUE(ENTRY(entry-num, sources)) SAVE.IF COMPILER:ERROR THEN DO:OUTPUT TO "compile.msgs" APPEND.MESSAGE "Compilation error in" COMPILER:FILE-NAME "at line"COMPILER:ERROR-ROW "column" COMPILER:ERROR-COL.OUTPUT CLOSE.END.END.
![]()
After a COMPILE statement, check the COMPILER:ERROR and COMPILER:WARNING attributes to determine whether the compilation was successful. If the value of ERROR is TRUE, you can use the FILE-NAME to determine in which source file the error occurred. You can use either the ERROR-ROW and ERROR-COLUMN attributes or the FILE-OFFSET attribute to determine where in the source file an error occurred. You can use this information to compose a message to display or write to a log file. To find the specific error and warning messages, check the ERROR-STATUS handle.
© 2012 Progress Software Corporation and/or its subsidiaries or affiliates. |