progress-4gl
sammanställa
Sök…
Introduktion
Kompilera framstegskod som kallas "r-kod" och sparas normalt i en fil med tillägget .r. Det finns ett par olika sätt att sammanställa: använda COMPILE
uttalandet eller på Linux eller AppBuilder: den inbyggda applikationskompileraren. Developer Studio (Eclipse-miljön) har sammanställt inbyggd i sin byggprocess.
Du måste ha 4GL-utveckling eller OpenEdge Studio installerat för att kompilera 4GL-program som uppdaterar databasen.
Syntax
- COMPILE program.p SPARA. // Kompilera program.p och spara dess r-kod
- SAMMANSÄTTNINGSVÄRDE (var) SPARA. // Kompilera namnet sparade i variabeln "var" och spara dess r-kod
- COMPILE prog.p XREF prog.xref LISTING prog.list. // Kompilera prog.p och skapa xref- och listfiler. Spara inte r-koden.
- COMPILE program.p SPARA NO-ERROR. // Kompilera program.p, spara r-kod och hämma fel för att stoppa körningen.
Tillämpningskompilator
Windows AppBuilder
I Windows Appbuilder finns applikationskompileraren i verktygsmenyn.
Procedure Editor (Linux - pro
eller Windows pro.exe
I procedurredigeraren (både Linux och Windows) finns kompilatorn om den finns i Verktyg-menyn.
Tillämpningskompilator
Oavsett operativsystem är kompilatorns funktionalitet densamma. Du kan lägga till kataloger och / eller filer och sammanställa dem.
Huvudinställningar (mer nedan):
- Spara ny .r-fil. Om inte markeras kommer filerna helt enkelt att kompileras men inte sparas. Användbart för felspårning till exempel.
- Titta i underkataloger. Annars måste underkataloger läggas till.
- Ta bort gamla .r-filer. Skriv över gammal .r-fil.
- Onlu Compile if No .r-fil. Compilerar bara okompilerade filer.
Alternativ:
- Propath - visar dig propath och låt dig välja kataloger att kompilera från den.
- Lägg till - låter dig mata in en katalog eller fil.
- Ändra - låter dig ändra en befintlig post.
- Radera - raderar en post.
- Start Compile - Startar kompilatorn. Genväg: F2
Huvudmenyvalen:
- File -> Exit: Avslutar kompilatorn
- Kompilera -> Starta kompilering: Startar kompilatorn. Genväg: F2
- Verktyg -> Tillgång till andra verktyg
- Alternativ -> Compiler ...: Inställningar, se nedan.
- Hjälp -> OpenEdge Hjälp (endast Windows). Online hjälp. Genväg: F1
inställningar
- Standardfilspecifikation: Filnamnstillägg att kompilera
- Meddelande loggfil: fil för att spara meddelanden, varningar och fel i
- Spara i: Var ska lagras .r-fil. Om tomt är samma katalog som koden.
- Språk: för översättningar. Inte täckt här.
- V6Frame: Gammal och oanvändbar ...
- Steam-IO: Om du vill skriva ut kompilatorutgången. Troligtvis inte.
- Listningsfil: Om du vill att kompilatorn ska skapa en listningsfil. Användbart för felsökning
- Bilaga: lägg till den befintliga listan. Annars skriv över.
- Sidbredd + Längd: Format för listfilen.
- Xref-fil: Om du vill att kompilatorn ska skapa en
XREF
. Användbart för felsökning, kontroll av indexanvändning etc. - XML-format: Om kompilatorn xref ska vara en xml. Annars "vanlig" text.
- Bilaga: lägg till den befintliga xref-filen. Annars skriv över.
- Debug File: Debugger-lista.
- Krypteringsnyckel: Om källfilen är krypterad med
xcode
in nyckeln här. - Minimera R-kodstorlek: Ta bort information om felsökning för att hålla r-koden liten.
- Generera MD-5: Mest för WebClient-sammanställning.
Grundläggande användning
- Starta kompilatorn
- Lägg till en sökväg (om den inte redan har sparats från förra sessionen)
- Tryck på F2 för att sammanställa.
- Observera eventuella fel.
- Utgång
SAMMANFATTNING uttalande
Med kompilationssatsen kan du kompilera program i Progress ABL:
Grundläggande användning:
COMPILE hello-world.p SAVE.
Med en variabel:
DEFINE VARIABLE prog AS CHARACTER NO-UNDO.
prog = "hello.p".
COMPILE VALUE(prog) SAVE.
Det finns flera alternativ till COMPILE
statistik:
SAVE
anger att .r-koden ska sparas för framtida användning.
COMPILE hello-world.p SAVE.
SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
sparar r-koden i den angivna katalogen:
COMPILE hello-world.p SAVE INTO /usr/sources.
LISTING file
. Skapar en listningsfil som innehåller felsökningsinformation om block, inkluderar etc.
COMPILE program.p SAVE LISTING c:\temp\listing.txt.
Listningen har ett par alternativ för att lägga till filer, sidstorlek och sidbredd:
APPEND PAGE-SIZE num PAGE-WIDTH num
XREF xreffile
sparar en kompilator xref-fil som innehåller information om sträng- och indexanvändning etc. Du kan också APPEND
här.
COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.
XREF-XML xreffile-or-dir
gör samma sak som XREF
men sparar filen i ett xml-format istället. Om du använder en katalog kommer xref-filen att kallas programname.xref.xml
.
COMPILE file.p SAVE XREF c:\temp\.
NO-ERROR
kommer att hämma eventuella fel från att stoppa ditt program.
COMPILE program SAVE NO-ERROR.
DEBUG-LIST file
genererar en felsökningsfil med radnummer.
COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.
PREPROCESS file
översätter först alla förbehandlare och skapar sedan en ny .p-fil med koden före sammanställningen.
COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.
XCODE key
kommer att sammanställa en krypterad källkod med key
som nyckel. Du kan inte använda XCODE med alternativen XREF, XREF-XML, STRING-XREF eller LISTING tillsammans.
COMPILE program.p SAVE XCODE myKey.
Du kan kombinera flera alternativ:
COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.
COMPILER-systemhandtag
Med COMPILER
systemet kan du titta på information om en ny sammanställning.
Antagande av ok-program.p
är ett program utan några fel eller varningar:
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.
Detta kommer att uppmana:
Kompilera ett program med en varning:
/* 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.
Kompilera programmet:
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.
Resultat:
Kompilera ett program med ett fel
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.
Kompilera programmet:
//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.
Resultat, det finns nästan alltid två fel per fel. "Kunde inte förstå" följs av det faktiska felet: