Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

LISTING-Option

Die Parameter dieser Option steuern, welche Listen der Compiler erzeugen soll, welches Layout die Listen haben und wohin sie ausgegeben werden sollen. Pro Übersetzungsgruppe wird nur eine Optionenliste erstellt. Sonstige Listen werden für jede Übersetzungseinheit erzeugt.

Format

LISTING = *NONE / *STD / *PARAMETERS(...)


*PARAMETERS(...)


|

OPTIONS = *NO / *YES


|

,SOURCE = *NO / *YES(...)


|


*YES(...)


|


|

COPY-EXPANSION = *NO / *VISIBLE-COPIES / *ALL-COPIES


|


|

,SUBSCHEMA-EXPANSION = *NO / *YES


|


|

,INSERT-ERROR-MSG = *NO / *YES


|


|

,CROSS-REFERENCE = *NO / *YES


|


|


*YES(...)


|


|


|

STMT-ADDRESS = *NO / *FIRST


|

,DIAGNOSTICS = *NO / *YES(...)


|


*YES(...)


|


|

MINIMAL-WEIGHT = *NOTE / *WARNING / *ERROR / *SEVERE-ERROR / *FATAL-ERROR


|


|

,IMPLICIT-SCOPE-END = *STD / *REPORTED


|


|

,MARK-NEW-KEYWORDS = *NO / *YES


|


|

,REPORT-2-DIGIT-YEAR = *ACCEPT-STMT / *NO


|

,NAME-INFORMATION = *NO / *YES(...)


|


*YES(...)


|


|

SORTING-ORDER = *ALPHABETIC / *BY-DEFINITION


|


|

,CROSS-REFERENCE = *NONE / *REFERENCED / *ALL


|


|

,SUPPRESS-GENERATION = *NO / *AT-SEVERE-ERROR


|

,LAYOUT = *STD / *PARAMETERS(...)


|


PARAMETERS(...)


|


|

LINES-PER-PAGE = 64 / <integer 20..128>


|


|

,LINE-SIZE = 132 / <integer 119..172>


|

,OUTPUT = *SYSLST / *STD-FILES / *LIBRARY-ELEMENT(...)


|


*LIBRARY-ELEMENT(...)


|


|

LIBRARY = <filename 1..54>


LISTING = *NONE
Der Compiler soll keine Listen erzeugen.

LISTING = *STD
Es werden die voreingestellten Werte der nachfolgenden PARAMETERS-Struktur übernommen.

LISTING = *PARAMETERS(...)
Mit den folgenden Parametern wird bestimmt, welche Listen erzeugt werden und welches Layout und Ausgabeziel die angeforderten Listen haben sollen.

OPTIONS = *NO / *YES
Der Compiler erzeugt standardmäßig eine Liste, in der die während der Übersetzung wirksamen Steueranweisungen, die Umgebung des Übersetzungsprozesses sowie einige Informationen für Wartungs- und Diagnosezwecke aufgeführt sind.

SOURCE = * YES(...)
Der Compiler erzeugt eine Übersetzungseinheitliste und eine Bibliotheksliste.

COPY-EXPANSION = *NO
Die in die Übersetzungseinheit kopierten COPY-Elemente werden nicht in der Übersetzungseinheitliste abgedruckt. Diese Angabe empfiehlt sich bei häufig vorkommenden COPY-Elementen, um Papier zu sparen.

COPY-EXPANSION = *VISIBLE-COPIES
In der Übersetzungseinheitliste werden nur diejenigen COPY-Elemente abgedruckt, die keine SUPPRESS-Angabe enthalten. Jede Zeile eines COPY-Elements ist in Spalte 1 der Liste mit einem „C“ gekennzeichnet.

COPY-EXPANSION = *ALL-COPIES
In der Übersetzungseinheitliste werden alle COPY-Elemente abgedruckt, auch diejenigen, die eine SUPPRESS-Angabe enthalten. Jede Zeile eines COPY-Elements ist in Spalte 1 der Liste mit einem „C“ gekennzeichnet.

SUBSCHEMA-EXPANSION = *NO / *YES
Mit der Angabe von YES wird die SUB-SCHEMA SECTION aufgelistet und jede Zeile mit einem „D“ in Spalte 1 gekennzeichnet. 

Dieser Operand ist in COBOL-BC nicht verfügbar.

INSERT-ERROR-MSG = *NO / *YES
Bei Angabe von YES werden in die Übersetzungseinheitliste alle bei der Übersetzung aufgetretenen (Fehler-)Meldungen „eingemischt“. Die Meldungszeile steht dabei jeweils unmittelbar nach der Quellzeile, in der das meldungsauslösende Konstrukt beginnt. Meldungen, die der Compiler keiner bestimmten Quellzeile zuordnen kann, werden nach der letzten Quellzeile ausgegeben.

Der Operand wirkt auch dann, wenn keine Fehlerliste angefordert wurde. Um ein ordnungsgemäßes Einmischen zu gewährleisten, sollte die Übersetzungseinheitliste nicht mehr als 65535 Quellzeilen beinhalten (siehe Abschnitt „Übersetzungseinheitliste").

CROSS-REFERENCE = *YES(...)
Bei Angabe von YES folgen in der Übersetzungseinheitenliste rechts neben den Quellzeilen noch Angaben zu Adresse und Länge von in der Zeile enthaltenen Definitionen, sowie bei Definitionen Querverweise auf die Nutzer einschließlich Nutzungsart und bei den Nutzern Rückverweise auf die Definition.

Der Operand wirkt nicht, wenn die Übersetzungseinheit mehr als 65535 Zeilen umfasst.

Bei Verwendung dieses Operanden empfiehlt es sich, die Zeilenlänge (siehe Operand LAYOUT) zu erhöhen und für das Ausdrucken des Listings dann einen entsprechenden Zeichensatz oder breiteres Papier zu verwenden (siehe Beispiel 3-5).

Bei Zeilen, die in der Übersetzungseinheitenliste nicht aufgelistet werden, entfallen auch die durch den Operand erzeugten zusätzlichen Angaben (siehe COPY-EXPANSION, SUBSCHEMA-EXPANSION und LISTING-Direktive); Verweise aus aufgelisteten Zeilen auf unterdrückte Zeilen bleiben erhalten.

STMT-ADDRESS = *NO / *FIRST
Bei Angabe von FIRST wird in der Übersetzungseinheitenliste rechts neben den Quellzeilen aus der Procedure Division für die erste Anweisung einer Zeile jeweils die Adresse des ersten Maschinenbefehls angegeben, der dafür generiert wurde.

DIAGNOSTICS = *YES(...)
Der Compiler erzeugt eine Fehlerliste.

MINIMAL-WEIGHT = *NOTE / *WARNING / *ERROR / *SEVERE-ERROR /*FATAL-ERROR
In der Fehlerliste stehen keine Meldungen, deren Fehlergewicht kleiner ist als der angegebene Wert. Der voreingestellte Wert NOTE bewirkt, dass alle bei der Übersetzung aufgetretenen (Fehler-)Meldungen in der Liste aufgeführt werden.

IMPLICIT-SCOPE-END = *STD / *REPORTED
Bei Angabe von REPORTED wird in der Fehlerliste die Beendigung einer strukturierten Anweisung durch einen Punkt mit einer Hinweismeldung versehen.

MARK-NEW-KEYWORDS = *NO / *YES
Die Angabe von YES veranlasst, dass Schlüsselwörter aus dem zukünftigen Standard in der Fehlerliste durch eine Meldung mit Severity-Code I gekennzeichnet werden. Die Angabe YES setzt voraus, dass für ENABLE-KEYWORDS der Wert *COBOL85 angegeben wird.

REPORT-2-DIGIT-YEAR = *ACCEPT-STMT / *NO
Bei *ACCEPT-STMT bringt der Compiler für jede ACCEPT-Anweisung und für jede darin angesprochene Variable einen Hinweis, dass dort mit Jahreszahlen ohne Jahrhundert gearbeitet wird. MINIMAL-WEIGHT sollte auf NOTE stehen. Der Wert *NO unterdrückt die Ausgabe solcher Hinweise.

NAME-INFORMATION = *NO / *YES(...)
Bei Angabe von YES erzeugt der Compiler eine Adressliste oder eine Adress- und Querverweisliste. Die Liste enthält die Daten-, Kapitel- und Paragrafennamen.

SORTING-ORDER = *ALPHABETIC
Die symbolischen Namen der Adressliste sind alphabetisch aufsteigend sortiert aufgelistet.

SORTING-ORDER = *BY-DEFINITION
Die symbolischen Namen der Adressliste sind in der Reihenfolge aufgelistet, wie sie in der Übersetzungseinheit definiert wurden.

CROSS-REFERENCE = *NONE
Es wird keine Querverweisliste erzeugt.

CROSS-REFERENCE = *REFERENCED
Es wird eine Querverweisliste erzeugt, in der nur die Daten- und Prozedurnamen aufgelistet sind, die im Programm tatsächlich angesprochen werden.

CROSS-REFERENCE = *ALL
Es wird eine Querverweisliste mit allen Daten- und Prozedurnamen erzeugt.

SUPPRESS-GENERATION = *NO / *AT-SEVERE-ERROR
Mit der Angabe AT-SEVERE-ERROR kann die Ausgabe der Adress- und Querverweisliste unterbunden werden, falls bei der Übersetzung eine Fehlermeldung mit einem Severity Code >=2 auftritt.

LAYOUT = *STD
Das Layout der erzeugten Listen entspricht den Standardeinstellungen der PARAMETERS-Struktur.

LAYOUT = *PARAMETERS(...)
Mit den folgenden Parametern lässt sich das Layout der erzeugten Listen verändern.

LINES-PER-PAGE = 64 / <integer 20..128>
Mit diesem Parameter kann die maximale Zeilenzahl pro Seite der Protokoll-Listen festgelegt werden. Ein Seitenwechsel wird ausgeführt, wenn diese Zeilenzahl erreicht ist.

LINE-SIZE = 132 / <integer 119..172>
Dieser Parameter legt die maximale Anzahl von Zeichen fest, die pro Zeile gedruckt wird.

OUTPUT = *SYSLST
Mit dieser Angabe werden die erzeugten Listen in die temporäre Systemdatei SYSLST geschrieben, von der sie automatisch nach Task-Ende (d.h. nach LOGOFF) auf den Drucker ausgegeben werden.

OUTPUT = *STD-FILES
Mit dieser Angabe werden die angeforderten Listen in eigene katalogisierte Dateien ausgegeben. Die so erzeugten katalogisierten Dateien haben Standardnamen, die in der rechten Spalte der folgenden Tabelle genannt sind. programmname wird aus dem PROGRAM-ID-Namen abgeleitet und ggf. auf 16 Zeichen gekürzt.

Liste

Dateiname

Steueranweisungsliste

OPTLST.COBOL.programmname

Übersetzungseinheitliste/Bibliotheksliste

SRCLST.COBOL.programmname

Adressliste/Querverweisliste

LOCLST.COBOL.programmname

Fehlerliste

ERRFIL.COBOL.programmname

Dateinamen und Dateieigenschaften für diese katalogisierten Dateien sind standardmäßig vorgegeben. Der Benutzer kann aber die Ausgabe in andere katalogisierte Dateien umlenken. Dazu muss er vor dem Aufruf des Compilers die gewünschten Eigenschaften in einem ADD-FILE-LINK-Kommando mit den jeweiligen Dateikettungsnamen (Linknamen) verknüpfen, die der Compiler verwendet:

Liste

Linkname

Steueranweisungsliste

OPTLINK

Übersetzungseinheitliste/Bibliotheksliste

SRCLINK

Adressliste/Querverweisliste

LOCLINK

Fehlerliste

ERRLINK

Um die erzeugten Listen im POSIX-Dateisystem abzulegen, müssen sie mittels S-Variablen dem POSIX-Dateisystem zugewiesen werden. Die Standardnamen dieser Variablen lauten:

Liste

Name der S-Variablen

Steueranweisungsliste

SYSIOL-OPTLINK

Übersetzungseinheitliste/Bibliotheksliste

SYSIOL-SRCLINK

Adressliste/Querverweisliste

SYSIOL-LOCLINK

Fehlerliste

SYSIOL-ERRLINK

OUTPUT = LIBRARY-ELEMENT(LIBRARY = <filename 1..54>)
Die angeforderten Listen werden in die mit <filename> bezeichnete PLAM-Bibliothek ausgegeben. Jede Liste belegt ein eigenes Bibliothekselement vom Typ P mit der größtmöglichen Versionsnummer. Die Elemente erhalten folgende Standardnamen:

Liste

Elementname

Steueranweisungsliste

OPTLST.COBOL.programmname

Übersetzungseinheitliste/Bibliotheksliste

SRCLST.COBOL.programmname

Adressliste/Querverweisliste

LOCLST.COBOL.programmname

Fehlerliste

ERRLST.COBOL.programmname

programmname wird aus dem PROGRAM-ID-Namen abgeleitet und ggf. auf 16 Zeichen gekürzt. Sollte durch das Abschneiden der Programmname mit einem ’-’ Zeichen enden, wird das ’-’ durch das Zeichen ’#’ ersetzt. Nach der Übersetzung existiert ein TFT-Eintrag für den Linknamen LIBLINK, der mit dem Namen <filename> der PLAM-Bibliothek verknüpft ist.

Beispiel 3-2

Ausgabe von Listen in katalogisierte Dateien

Der Compiler soll nur eine Fehlerliste erzeugen und diese in die katalogisierte Datei FEHLER ausgeben.

/ADD-FILE-LINK ERRLINK,FEHLER ——————————————————————————————————————————(1) 
/START-COBOL2000-COMPILER? —————————————————————————————————————————————(2) 
 
 
Angabe im Operandenfragebogen:
LISTING=PAR(OPTIONS=NO,SOURCE=NO) ——————————————————————————————————————(3)

(1)

Mit dem ADD-FILE-LINK-Kommando wird der katalogisierten Datei FEHLER der Standard-Linkname ERRLINK zugeordnet.

(2)

Compileraufruf im Menü-Modus

(3)

Die Voreinstellung (Erzeugung von Optionen-, Übersetzungseinheit- und Fehlerliste) wird verändert; der Compiler soll nur eine Fehlerliste erzeugen und diese standardmäßig in die katalogisierte Datei FEHLER ausgeben.

Beispiel 3-3

Ausgabe von Listen in eine PLAM-Bibliothek

Der Compiler soll alle Listen erzeugen und als Elemente in der PLAM-Bibliothek LISTLIB ablegen.

/START-COBOL2000-COMPILER? —————————————————————————————————————————————(1) 
 
 
Angabe im Operandenfragebogen:
LISTING=PAR(NAME-INFORMATION=YES(CROSS-REFERENCE=ALL),
OUTPUT=*LIBRARY-ELEMENT(LIBRARY=LISTLIB)) ——————————————————————————————(2)

(1)

Compileraufruf im Menü-Modus

(2)

Die Voreinstellung (Ausgabe von Optionen-, Übersetzungseinheit- und Fehlerliste) wird ergänzt; der Compiler soll zusätzlich eine Adress- und Querverweisliste erzeugen und alle Listen in der PLAM-Bibliothek namens LISTLIB ablegen.

Beispiel 3-4

Ausgabe von Listen ins POSIX-Dateisystem

Der Compiler soll eine Übersetzungseinheit- und eine Fehlerliste erzeugen und im POSIX-Dateisystem ablegen.

/DECL-VAR SYSIOL-SRCLINK,INIT='*P(xpl.srclst)',SCOPE=*TASK——————————————(1) 
/DECL-VAR SYSIOL-ERRLINK,INIT='*P(xpl.errlst)',SCOPE=*TASK——————————————(1) 
/START-COBOL2000-COMPILER? —————————————————————————————————————————————(2)

(1)

Durch das Kommando DECL-VARIABLE wird die Variable mit dem gewünschten

Dateinamen belegt, wobei der Dateiname ohne Pfadangaben die Ablage der Datei im Home-Dateiverzeichnis bewirkt.

(2)

Compileraufruf im SDF-Menü-Modus

Beispiel 3-5

Ausgabe eines verdichteten Listings zur Ausnutzung von Druckseiten

Es soll ein verdichtetes Listing erstellt werden, um die Druckseiten so weit wie möglich auszunutzen.

LISTING=*PAR(SOURCE=*YES(CROSS-REFERENCE=YES),- ———————————————————————(1) 
LAYOUT=*PAR(LINES-PER-PAGE=60,LINE-SIZE=172))             *)———————————(1) 
/PRINT-FILE srclst.cobol.programmname,LOOP=98,CHAR-SET=R01—————————————(2)

*) Diese Angaben sind optimiert für eine Seitenbreite von 32 cm und eine Seitenhöhe von 22 cm.


(1)

Verwendete Optionen

(2)

Kommando zum Ausdrucken der Listing-Datei