next up previous
Nächste Seite: SET-Typen Aufwärts: Charakteristik verschiedener Typen Vorherige Seite: Wahrheitswerte (BOOLEAN)

Aufzählungstypen

Für die TagItems (siehe 5.1.9) musste ein Weg gefunden werden, die Tag-Konstanten zu deklarieren.

In der Programmiersprache C sieht das so aus:

enum{WA_Dummy=TAG_USER+99,
     WA_Left,
     WA_Top,
     ...
     };

Der erste Versuch für sieht so aus:

CONST
  waLeft=tagUser+100;
  waTop=tagUser+101;
  ...

Dies ist nicht nur sehr aufwendig, sondern auch sehr fehleranfällig. Zudem werden dadurch die IMPORT-Listen extrem lang.

Die in verwendete Lösung definiert eine neue Syntax für Aufzählungstypen:

  Enum= "(" ident [ ":=" ConstExpr ] {"," ident}")".
Die ConstExpr muss vom Typ UniversalInteger sein!

Hierbei wird die Ordinalzahl des ersten Elements durch ConstExpr festgelegt und bei den folgenden entsprechend weitergezählt.

Somit lautet die Deklaration nun:

TYPE
  WaTags=(waDummy:=tagUser+99,waLeft,waTop,...);

Dabei dürfen nur positive Werte verwendet werden. Sets sind weiterhin nur mit normalen Aufzählungstypen, deren Untergrenze 0 ist, erlaubt.



Claudio Nieder 2000-11-12