Nächste Seite: Compiler-Ausgaben im Quelltext Aufwärts: Compiler-Optionen Vorherige Seite: Wirkungs- und Veränderungs-Bereiche

### Compiler-Anweisungen im Quelltext

Einige Optionen lassen sich mit Hilfe der Compiler-Anweisungen im Quelltext verändern. Die Compiler-Anweisung ist eine spezielle Form eines Kommentars. Sie wird jedoch -- im Gegensatz zu Kommentaren -- nicht überlesen, sondern vom Compiler ausgewertet. Die Syntax ist

> `"(*$-{Anweisung`} "*)".``

Zu Anfang muss also das Symbol ,,`(*$``` stehen. Das `$`-Zeichen darf nicht durch Leerzeichen vom `*` abgesetzt sein, andernfalls wird der Bereich wie ein normaler Kommentar behandelt! Danach folgt eine beliebige Anzahl von Anweisungen, die durch Leerzeichen oder Zeilenvorschübe getrennt sind. Hier dürfen nur Anweisungen auftreten, insbesondere keine Kommentare! Die Compiler-Anweisung wird durch ,,`*)``` beendet. Compiler-Anweisungen innerhalb von Kommentaren werden ignoriert.

Die Anweisungen zum Verändern von Optionen haben die Form

> Option `":=-BoolescherAudruck.`

(1) oder

> `"POP-Option.`

(2) oder

> `"DEFINE-Option `":=-BoolescherAusdruck.``

(3) ,,Option`` ist hierbei ein vom Compiler vordefinierter oder vom Benutzer durch die ,,`DEFINE```-Anweisung definierter Name. ,,BoolescherAusdruck`` kann ,,`TRUE``` oder ,,`FALSE```, der Name einer Option oder auch ein aus diesen Elementen durch ,,`NOT```, ,,`AND```, ,,`OR``` und Klammerung gebildeter Ausdruck sein. Die Schlüsselwörter (`DEFINE`, `POP`, `FALSE`, ...) müssen gross geschrieben werden. Die Namen der Optionen können beliebig gross oder klein geschrieben sein.

Die Zuweisung (1) setzt eine ,,Options-Variable`` auf den durch den Ausdruck bestimmten Wert und merkt sich den alten Zustand dieser Option auf einem Stapel, der bis zu 32 Werte aufnehmen kann. Wenn mehr als 32 Zuweisungen in Folge auftreten, erfolgt keine Fehlermeldung.

    (*$ StackChk:=FALSE *)

Die ,,`POP```-Anweisung (2) holt den Wert der Option vom zugehörigen Stapel. Wenn zuvor keine Zuweisung erfolgt ist, bekommt sie den eingestellten Vorgabewert. Dies ist auch der Fall, falls mehr als 32 ,,`POP```-Anweisungen in Folge auftreten sollten. Sie kann im Zusammenwirken mit der Zuweisung dazu benutzt werden, begrenzte Bereiche mit einem bestimmten Wert einer Option zu kompilieren, ohne für die nachfolgenden Bereiche den voreingestellten Wert der Option zu verändern.

Die ,,DEFINE``-Anweisung (3) definiert eine neue Benutzer-Option. Der Name der Option darf kein vom Compiler vordefinierter Name sein. Auch darf kein Name mehrmals in einem Quelltext definiert werden. Gross- und Kleinschreibung spielen hierbei keine Rolle.

Benutzerdefinierte Optionen können von der Kommandozeile mit einem Vorgabewert belegt werden. Dies geschieht durch die Anweisung ,,`-oName``` oder ,,`+oName```. Hierdurch wird eine potentielle benutzerdefinierte Option erzeugt und mit dem Vorgabewert `FALSE` beziehungsweise `TRUE` belegt. Der Name der Option ist jedoch im Quelltext zunächst unbekannt, nur eine ,,`DEFINE```-Anweisung kann ihn sichtbar machen.

Hier gilt es zwei Fälle zu unterscheiden:

- Die ,,`DEFINE```-Anweisung definiert einen Namen, der vom Bediener nicht definiert wurde. Die neue Option erhält den im Quelltext angegebenen Wert. Der Compiler gibt nach obigem Beispiel folgende Meldung auf dem Bildschirm aus:

      !! DEFINE: -DEMO

- Die ,,`DEFINE```-Anweisung definiert einen Namen, der bereits von der Kommandozeile bekannt ist. Die neue Option erhält den vom Bediener angegebenen Wert, ˆder im Quelltext angegebene wird ignoriert. Ausgabe des Compilers auf dem Bildschirm:

      !! DEFINE: -DEMO (Wert wird ignoriert, bleibt "+")

Nächste Seite: Compiler-Ausgaben im Quelltext Aufwärts: Compiler-Optionen Vorherige Seite: Wirkungs- und Veränderungs-Bereiche