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.