Node:Variant Records, Next:Schema Types, Previous:Record Types, Up:Type Definition Possibilities
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.