STRUCT |
Das Kommando STRUCT
erfüllt zwei
Aufgaben:
Sie können es dazu verwenden, die Sourcecode-Zeilen eines Programms entsprechend der Programmstruktur einzurücken.
Diverse zusätzliche Anzeigen verdeutlichen die Programmstruktur und erlauben es Ihnen so, etwaige Inkonsistenzen in der Struktur aufzuspüren.
Da das STRUCT
-Kommando die Natural-Sourcen
unabhängig davon verarbeitet, ob sie tatsächlich katalogisert werden können
oder nicht, wird die Source nicht auf syntaktische Korrektheit analysiert.
Obwohl das STRUCT
-Kommando sorgfältig strukturierte
Source-Zeilen liefert, können Zeilen vorhanden sein, die unklar sind und die
nicht wie erwartet strukturiert werden.
Folgende Arten von Statements sind vom
STRUCT
-Kommando betroffen:
Statement-Blöcke mit Bedingungen (AT BREAK
,
IF
,
DECIDE FOR
usw.),
DO/DOEND
-Statement-Blöcke,
DEFINE
DATA
-Statement-Blöcke,
interne Subroutinen.
Wenn Sie das STRUCT
-Kommando eingeben,
erhalten Sie das STRUCT
-Menü, von dem Sie folgende Funktionen
auswählen können:
Mit dieser Funktion können Sie ein Source-Programm einrücken, so dass die Einrückung der Sourcecode-Zeilen die Struktur des Programms widerspiegelt.
Diese Funktion entspricht der des Editorkommandos
STRUCT
.
Bei der Einrückung wird die Länge der Sourcecode-Zeilen berücksichtigt; d.h. eine eingerückte Zeile wird nicht über den rechten Rand hinausgeschoben; selbst wenn eine "korrekte" Einrückung dies erfordern würde, wird eine Zeile nicht über den Rand hinausgeschoben, sondern nur soweit nach rechts wie möglich.
Die Generate-Funktion bietet Ihnen folgende Optionen:
Feld | Erklärung | ||||||
---|---|---|---|---|---|---|---|
Source Name | In dieses Feld geben Sie den Namen der Source ein, die Sie
einrücken möchten. Die betreffende Source wird dann von der Systemdatei in den
Editor-Arbeitsbereich gelesen und strukturell eingerückt.
Wenn sie keinen Namen angeben, wird das gerade im Editor-Arbeitsbereich befindliche Objekt eingerückt. Wenn der Arbeitsbereich leer ist, müssen Sie einen Namen angeben. |
||||||
Shift setting | In diesem Feld können Sie angeben, um wieviel Stellen (1 bis 9) die Zeilen jeweils eingerückt werden sollen. Standardmäßig wird um 2 Stellen eingerückt. | ||||||
Align Comments |
|
||||||
Display Messages |
|
||||||
Return to STRUCT |
|
Anmerkung:
Ein im Reporting Mode geschriebenes Programm wird anders eingerückt
als ein im Structured Mode geschriebenes.
Mit den Spezial-Statements /*STRUCT OFF
und /*STRUCT
ON
können Sie bestimmte Abschnitte Ihres Source-Programms von der
Einrückung ausschließen. Die beiden Statements müssen jeweils am Anfang einer
Sourcecode-Zeile stehen. Wenn Sie die
Generate-Funktion ausführen, werden die
Zeilen zwischen diesen beiden Statements nicht davon betroffen; sie bleiben,
wie sie waren.
Programm, bevor es eingerückt wird:
DEFINE DATA LOCAL 1 EMPL VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 FULL-NAME 3 FIRST-NAME 3 NAME 1 VEHI VIEW OF VEHICLES 2 PERSONNEL-ID 2 MAKE END-DEFINE FIND EMPL WITH NAME = 'ADKINSON' IF NO RECORDS FOUND WRITE 'NO RECORD FOUND' END-NOREC FIND (1) VEHI WITH PERSONNEL-ID = EMPL.PERSONNEL-ID DISPLAY EMPL.PERSONNEL-ID FULL-NAME MAKE END-FIND END-FIND END
Dasselbe Programm, nachdem die Funktion Generate Structured Source angewandt wurde:
DEFINE DATA LOCAL 1 EMPL VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 FULL-NAME 3 FIRST-NAME 3 NAME 1 VEHI VIEW OF VEHICLES 2 PERSONNEL-ID 2 MAKE END-DEFINE FIND EMPL WITH NAME = 'ADKINSON' IF NO RECORDS FOUND WRITE 'NO RECORD FOUND' END-NOREC FIND (1) VEHI WITH PERSONNEL-ID = EMPL.PERSONNEL-ID DISPLAY EMPL.PERSONNEL-ID FULL-NAME MAKE END-FIND END-FIND END
Mit dieser Funktion können Sie den Sourcecode eines Objekts zusammen mit verschiedenen Informationen, die die Struktur des Objekts verdeutlichen, anzeigen.
Die Display-Funktion bietet Ihnen die folgenden Optionen:
Feld | Erklärung | ||||
---|---|---|---|---|---|
Source Name | In dieses Feld geben Sie den Namen der Source ein, die Sie
anzeigen möchten. Die betreffende Source wird dann von der Systemdatei in den
Editor-Arbeitsbereich gelesen und angezeigt.
Wenn sie keinen Namen angeben, wird das gerade im Editor-Arbeitsbereich befindliche Objekt angezeigt. Wenn der Arbeitsbereich leer ist, müssen Sie einen Namen angeben. |
||||
Display Compressed |
|
||||
Return to STRUCT |
|
Folgende Informationen werden angezeigt:
Line Numbers | Bei jedem Statement, das einen Statement-Block beendet, wird links neben dem Sourcecode die Sourcecode-Zeilennummer des Statements, das den betreffenden Block initiiert, angezeigt. |
Structure Table | Rechts neben dem Sourcecode wird eine Strukturtabelle angezeigt, die Aufschluß über offene Statement-Blöcke gibt. Für jeden offenen Block wird ein einzelner Buchstabe angezeigt. Die verschiedenen Buchstaben beziehen sich auf verschiedene Arten von Statements (für eine Erklärung der einzelnen Buchstaben drücken Sie PF1). Etwaige Inkonsistenzen in der Struktur des Sourcecodes werden durch eine entsprechende Meldung in der Strukturtabelle angezeigt. |
14:17:47 - Structured Source ABC in Library XYZ - 2003-02-04 0010 DEFINE DATA LOCAL *O 0020 1 EMPL VIEW OF EMPLOYEES *O 0030 2 PERSONNEL-ID *O 0040 2 FULL-NAME *O 0050 3 FIRST-NAME *O 0060 3 NAME *O 0070 1 VEHI VIEW OF VEHICLES *O 0080 2 PERSONNEL-ID *O 0090 2 MAKE *O 0100 0010 END-DEFINE *O 0110 FIND EMPL WITH NAME = 'ADKINSON' *F 0120 IF NO RECORDS FOUND *FJ 0130 WRITE 'NO RECORD FOUND' *FJ 0140 0120 END-NOREC *FJ 0150 FIND (1) VEHI WITH PERSONNEL-ID = EMPL.PERSONNEL-I *FF 0160 DISPLAY EMPL.PERSONNEL-ID FULL-NAME MAKE *FF 0170 0150 END-FIND *FF 0180 0110 END-FIND *F 0190 END * PF1=Help, PF2=Menu, PF3=Exit, PF6=Top, PF12=Cancel. |
Der aktuelle Inhalt des Arbeitsbereichs wird von der angezeigten Source nicht beeinflußt.
Mit dieser Funktion können Sie den Sourcecode eines Objekts zusammen mit seinen Struktur-Informationen ausdrucken.
Die Print-Funktion entspricht der Funktion Display Structure of Source, nur dass die Ausgabe nicht auf dem Bildschirm angezeigt, sondern auf einem Drucker ausgedruckt wird.
Mit der Print-Funktion haben Sie die gleichen Optionen wie bei der Display-Funktion.
Mit dieser Funktion können Sie eine Source von der Systemdatei lesen und
zusammen mit ihren Struktur-Informationen sowie mehreren Zeilen (mit
Zeilennummer 0000
) am Anfang der Source, die die
Struktur-Informationen erklären, in den Editor-Arbeitsbereich laden.
Mit der Write-Funktion haben Sie die gleichen Optionen wie bei der Display-Funktion, mit dem Unterschied, dass Sie einen Source-Namen angeben müssen.
Die Source und ihre Struktur-Informationen werden als Text in den
Arbeitsbereich geladen und können mit dem Systemkommando
EDIT
editiert
werden.