Node:Variant Records, Next:Schema Types, Previous:Record Types, Up:Type Definition Possibilities

##### Variant Records

GPC supports variant records like in EP and BP. The following construction is not allowed in Extended Pascal, but in BP and GPC:

    program BPVariantRecordDemo;

    type
      PersonRec = record
        Age: Integer;
      case EyeColor: (Red, Green, Blue, Brown) of
        Red, Green : (WearsGlasses: Boolean);
        Blue, Brown: (LengthOfLashes: Integer);
      end;

    begin
    end.

In EP, the variant field needs a type identifier, which, of course, also works in GPC:

    program EPVariantRecordDemo;

    type
      EyeColorType = (Red, Green, Blue, Brown);

      PersonRec = record
        Age: Integer;
      case EyeColor: EyeColorType of
        Red, Green : (WearsGlasses: Boolean);
        Blue, Brown: (LengthOfLashes: Integer);
      end;

    begin
    end.