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.