Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Zuweisung an Compilervariablen zur Steuerung der Quelltextmanipulation


Compiler-Direktiven ermöglichen es dem COBOL-Programmierer, die Quelltext-Manipulation zu steuern.

Folgende Compiler-Direktiven stehen zur Verfügung:

  • DEFINE-Direktive

  • EVALUATE-Direktive

  • IF-Direktive

Die Compiler-Direktiven sind ausführlich beschrieben im Handbuch „COBOL2000-Sprachbeschreibung“ [1].

Mit der DEFINE-Direktive kann der Programmierer im Quellprogramm Compilervariablen definieren. Mit Hilfe von S-Variablen kann er diesen Compilervariablen auch vor der Übersetzung Werte zuweisen. Hierfür müssen die Variablen im Programm mit dem Zusatz AS PARAMETER definiert werden. Die Zuordnung der Compilervariablen zur S-Variablen erfolgt über den Namen der Variablen, der wie folgt zu bilden ist:

DEFINE-Direktive

S-Variable

>>DEFINE variable AS PARAMETER

DECL-VAR SYSDIR-variable ...,SCOPE=*TASK

Die S-Variablen sind dabei mit SCOPE=*TASK zu vereinbaren.

Für die Versorgung der Compilervariablen von außen stehen zwei unterschiedliche Typen von S-Variablen zur Verfügung, die mit dem gewünschten TYPE zu deklarieren sind:

  • numerische Variablen mit TYPE=*INTEGER

  • alphanumerische Variablen mit TYPE=*STRING

Die beiden folgenden Beispiele zeigen die Verwendung von Compilervariablen im BS2000/OSD. Die Verwendung von Compilervariablen beim Compiler-Aufruf unter POSIX ist auf "Übersetzen" beschrieben.

Beispiel 2-7

Übergabe eines numerischen Wertes

IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1
...
>>DEFINE VLADIMIR AS PARAMETER. ———————————————————————————————————————— (1) 
...

Zuweisung und Verknüpfung:

/DECLARE-VARIABLE SYSDIR-VLADIMIR(TYPE=*INTEGER),SCOPE=*TASK ——————————— (2) 
/SET-VARIABLE SYSDIR-VLADIMIR=1234 ————————————————————————————————————— (3)

Compiler-Aufruf

(1)

Mit der DEFINE-Direktive wird eine Compilervariable angegeben, deren Inhalt der COBOL-Compiler in einer S-Variablen erwartet.

(2)

Mit dem SDF-P-Kommando DECLARE-VARIABLE wird eine S-Variable vereinbart: VLADIMIR ist der Name der numerischen Compilervariablen im Quellprogramm. Die zugehörige S-Variable wird vereinbart als SYSDIR-VLADIMIR mit TYPE=*INTEGER.

(3)

Mit dem SDF-P-Kommando SET-VARIABLE wird der S-Variablen SYSDIR-VLADIMIR der numerische Wert 1234 zugewiesen.

Beispiel 2-8

Übergabe eines alphanumerischen Literals

IDENTIFICATION DIVISION.
PROGRAM-ID. PROG2
...
>>DEFINE JERRY AS PARAMETER. ——————————————————————————————————————————(1) 
...

Zuweisung und Verknüpfung:

/DECLARE-VARIABLE SYSDIR-JERRY (TYPE=*STRING),SCOPE=*TASK —————————————(2) 
/SET-VARIABLE SYSDIR-JERRY='Das ist ein String'————————————————————————(3) 

Compiler-Aufruf

(1)

Mit der DEFINE-Direktive wird eine Compilervariable angegeben, deren Inhalt der COBOL-Compiler in einer S-Variablen erwartet.

(2)

Mit dem SDF-P-Kommando DECLARE-VARIABLE wird eine S-Variable vereinbart: JERRY ist der Name der alphanumerischen Compilervariablen im Quellprogramm. Die zugehörige S-Variable wird vereinbart als SYSDIR-JERRY mit TYPE=*STRING.

(3)

Mit dem SDF-P-Kommando SET-VARIABLE wird der S-Variablen SYSDIR-JERRY der alphanumerische Wert „Das ist ein String“ zugewiesen. Die begrenzenden Anführungszeichen sind nicht Bestandteil des Literals.