progress-4gl
Het compileren
Zoeken…
Invoering
Compileer Voortgangscode zoals "r-code" genoemd en wordt normaal opgeslagen in een bestand met de extensie .r. Er zijn een aantal verschillende manieren om te compileren: met behulp van de instructie COMPILE
of op Linux of AppBuilder: de ingebouwde applicatie-compiler. Developer Studio (de Eclipse-omgeving) heeft compileren ingebouwd in het build-proces.
U moet 4GL Development of OpenEdge Studio hebben geïnstalleerd om 4GL-programma's te compileren die de database bijwerken.
Syntaxis
- COMPILE programma. P OPSLAAN. // Compileer program.p en sla de r-code op
- COMPILE WAARDE (var) OPSLAAN. // Compileer de benoemde opgeslagen in de variabele "var" en sla de r-code op
- COMPILE prog.p XREF prog.xref LISTING prog.list. // Compileer prog.p en maak xref- en listing-bestanden. Bewaar de r-code niet.
- COMPILE program.p OPSLAAN GEEN FOUT. // Compileer program.p, sla r-code op en onderdruk fouten om de uitvoering te stoppen.
Applicatie compiler
Windows AppBuilder
In de Windows Appbuilder vindt u de toepassingscompiler in het menu Extra.
Procedure-editor (Linux - pro
of Windows pro.exe
In de procedure-editor (zowel Linux als Windows) de compiler indien gevonden in het menu Extra.
Applicatie compiler
Ongeacht het besturingssysteem is de functionaliteit van de compiler hetzelfde. U kunt mappen en / of bestanden toevoegen en compileren.
Hoofdinstellingen (meer hieronder):
- Nieuw .r-bestand opslaan. Indien niet aangevinkt, worden de bestanden eenvoudig gecompileerd maar niet opgeslagen. Handig voor bijvoorbeeld het volgen van fouten.
- Kijk in submappen. Anders moeten submappen worden toegevoegd.
- Verwijder oude .r-bestanden. Overschrijf het oude .r-bestand.
- Onlu Compile indien geen .r-bestand. Compileert alleen niet-gecompileerde bestanden.
opties:
- Propath - laat je de propath zien en laat je mappen selecteren om te compileren.
- Toevoegen - hiermee kunt u een map of bestand invoeren.
- Wijzigen - hiermee kunt u een bestaand item wijzigen.
- Verwijderen - verwijdert een invoer.
- Start compileren - Start de compiler. Snelkoppeling: F2
De hoofdmenu-keuzes:
- Bestand -> Afsluiten: verlaat de compiler
- Compileren -> Start compileren: start de compiler. Snelkoppeling: F2
- Hulpmiddelen -> Toegang tot andere hulpmiddelen
- Optie -> Compiler ...: Instellingen, zie hieronder.
- Help -> OpenEdge Help (alleen Windows). Online hulp. Snelkoppeling: F1
instellingen
- Standaard bestandsspecificatie: compilatie van bestandsnamen
- Berichtenlogbestand: bestand om berichten, waarschuwingen en fouten in op te slaan
- Opslaan in: waar het .r-bestand moet worden opgeslagen. Indien leeg dezelfde map als de code.
- Talen: voor vertalingen. Hier niet behandeld.
- V6Frame: oud en onbruikbaar ...
- Steam-IO: als u de uitvoer van de compiler wilt afdrukken. Hoogstwaarschijnlijk niet.
- Lijstbestand: als u wilt dat de compiler een lijstbestand maakt. Handig om te debuggen
- Toevoegen: toevoegen aan het bestaande vermeldingsbestand. Anders overschrijven.
- Paginabreedte + lengte: formaat van lijstbestand.
- Xref-bestand: als u wilt dat de compiler een
XREF
. Handig voor foutopsporing, controle van indexgebruik etc. - XML-indeling: als de compiler xref een xml moet zijn. Anders "platte" tekst.
- Toevoegen: toevoegen aan het bestaande xref-bestand. Anders overschrijven.
- Foutopsporingsbestand: foutopsporingsbestand.
- Coderingssleutel: als het bronbestand met
xcode
is gecodeerd,xcode
u de sleutel hier in. - Minimaliseer de grootte van de R-code: verwijder enkele foutopsporingsinformatie om de r-code klein te houden.
- Genereer MD-5: meestal voor het compileren van WebClient.
Basis gebruik
- Start de compiler
- Voeg een pad toe (indien nog niet opgeslagen uit de laatste sessie)
- Druk op F2 om te compileren.
- Let op eventuele fouten.
- Uitgang
COMPILE verklaring
Met de compilatie-instructie kunt u programma's in Progress ABL compileren:
Basis gebruik:
COMPILE hello-world.p SAVE.
Met een variabele:
DEFINE VARIABLE prog AS CHARACTER NO-UNDO.
prog = "hello.p".
COMPILE VALUE(prog) SAVE.
Er zijn verschillende opties voor de COMPILE
:
SAVE
stelt dat de .r-code moet worden opgeslagen voor toekomstig gebruik.
COMPILE hello-world.p SAVE.
SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
slaat de r-code op in de opgegeven map:
COMPILE hello-world.p SAVE INTO /usr/sources.
LISTING file
. Maakt een listingbestand met foutopsporingsinformatie over blokken, inclusief etc.
COMPILE program.p SAVE LISTING c:\temp\listing.txt.
Lijst heeft een aantal opties voor het toevoegen van bestanden, paginagrootte en paginabreedte:
APPEND PAGE-SIZE num PAGE-WIDTH num
XREF xreffile
zal een compiler xref-bestand opslaan met informatie over het gebruik van tekenreeksen en indexen, enz. U kunt deze ook APPEND
.
COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.
XREF-XML xreffile-or-dir
doet hetzelfde als XREF
maar slaat het bestand in plaats daarvan op in een xml-formaat. Als u een map gebruikt, krijgt het xref-bestand de naam programname.xref.xml
.
COMPILE file.p SAVE XREF c:\temp\.
NO-ERROR
onderdrukt eventuele fouten die uw programma stoppen.
COMPILE program SAVE NO-ERROR.
DEBUG-LIST file
genereert een foutopsporingsbestand met regelnummers.
COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.
PREPROCESS file
vertaalt eerst alle preprocessors en maakt vervolgens een nieuw .p-bestand met de code voordat het wordt gecompileerd.
COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.
XCODE key
compileert een gecodeerde broncode met key
als sleutel. U kunt XCODE niet samen met de opties XREF, XREF-XML, STRING-XREF of LISTING gebruiken.
COMPILE program.p SAVE XCODE myKey.
U kunt verschillende opties combineren:
COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.
COMPILER systeemhandgreep
Met de COMPILER
systeemhandgreep kunt u informatie bekijken over een recente compilatie.
Ervan uitgaande dat ok-program.p
een programma is zonder fouten of waarschuwing:
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.
Dit zal gebeuren:
Een programma samenstellen met een waarschuwing:
/* 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.
Programma samenstellen:
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.
Resultaat:
Een programma compileren met een fout
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.
Programma samenstellen:
//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.
Het resultaat is dat er bijna altijd twee fouten per fout zijn. "Kon het niet begrijpen" wordt gevolgd door de werkelijke fout: