Enum with boolean operators



Enum with boolean operators
Smart pascal source code
type TEnum = flags(Alpha, Beta, Gamma); procedure WriteLnInt(i: Integer); begin WriteLn('int '); WriteLn(i); end; procedure WriteLnEnum(e: TEnum); begin WriteLn('enum '); WriteLn(e); end; WriteLnInt(TEnum.Alpha); WriteLnInt(TEnum.Beta); WriteLnInt(TEnum.Gamma); WriteLnEnum(TEnum.Alpha); WriteLnEnum(TEnum.Beta); WriteLnEnum(TEnum.Gamma); WriteLnInt(TEnum.Alpha or TEnum.Gamma); WriteLnInt(TEnum.Beta xor TEnum.Gamma); WriteLnInt(TEnum.Beta and TEnum.Alpha); WriteLnEnum(TEnum.Alpha or TEnum.Gamma); WriteLnEnum(TEnum.Beta xor TEnum.Gamma); WriteLnEnum(TEnum.Beta and TEnum.Alpha); { <<< CONSOLE OUTPUTS >>> int 1 int 2 int 4 enum 1 enum 2 enum 4 int 5 int 6 int 0 enum 5 enum 6 enum 0 }