3.3.3 Set types

Free Pascal supports the set types as in Turbo Pascal. The prototype of a set declaration is:

Set Types

--       -   -   -          ------------------------------------
  set type set  of  ordinal type

Each of the elements of SetType must be of type TargetType. TargetType can be any ordinal type with a range between 0 and 255. A set can contain at most 256 elements. The following are valid set declaration:

  Junk = Set of Char;  
  Days = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);  
  WorkDays : Set of days;

Given these declarations, the following assignment is legal:

WorkDays := [Mon, Tue, Wed, Thu, Fri];

Several operations can be done on sets: taking unions or differences, adding or removing elements, comparisons. These are documented in section 12.8.5, page 623

How the compiler stores sets depends on the mode and can be controlled with a directive. For more information, see the programmer’s guide.