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
}