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. Windows AppBuilder

Procedure-editor (Linux - pro of Windows pro.exe

In de procedure-editor (zowel Linux als Windows) de compiler indien gevonden in het menu Extra. Linux Procedure Editor Editor

Applicatie compiler

Windows Application Compiler Linux 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

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

  1. Start de compiler
  2. Voeg een pad toe (indien nog niet opgeslagen uit de laatste sessie)
  3. Druk op F2 om te compileren.
  4. Let op eventuele fouten.
  5. 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:

Geen fouten

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:

voer hier de afbeeldingsbeschrijving in

voer hier de afbeeldingsbeschrijving in

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: voer hier de afbeeldingsbeschrijving in

voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow