struct TestStruct1 {
       int     i1;
       long    l1;
};

enum TestEnum1 {
       rot      =   1,
       gelb   =  10,
       gruen =  20
};

struct TestStruct2 {
       string           s1<10>;     /* String mit Maximallaenge */ 
       string           s2<>;       /* String ohne Laengenbegrenzung also 2**32-1 */
       long             l1;         /* Long mit Vorzeichen */
       unsigned long    l2;         /* Long ohne Vorzeichen */
       int              i1;         /* Integer mit Vorzeichen */
       unsigned int     i2;         /* Vorzeichenloser Integer */
       float            f1;         /* Einfach genaue Gleitpunktzahl */
       double           d1;         /* Doppelt genaue Gleitpunktzahl */
       bool             b1;         /* Boolsche Variable */
       opaque           o1<10>;     /* Variabel langer Opaque, max. Laenge 10 */ 
       opaque           o2<>;       /* und mit max. Laenge 2**32-1 */
       TestStruct1      struct1;    /* Struktur vom Typ TestStruct1 */
       TestStruct1      array1[10]; /* Array fester Laenge mit Strukturelementen */ 
       TestStruct1      array2<>;   /* und variabel langer Array */
       TestEnum1        enum1;      /* Enumeration vom Typ Testenum1 */
       TestEnum1        enum2[12];  /* Array fester Laenge mit Enumerationen */
};

