Pascal Report  145  A  set  structure defines the set of values that is the powerset of its  base type, i.e., the set of all subsets of values of the base type. The base  type must be an ordinal type, and will usually be an enumerated type,  Char, or a subrange of Integer. Components (members) of sets are not  directly accessed, but the set operations (including the membership  operator) and a set-value  constructor  allow creation and manipulation  of entire sets.  A  file  structure describes a  sequence  of components of the same  type. A natural ordering of the components is defined through the  sequence. At any instant, only one component is directly accessible,  and it may be either inspected or generated but not both. The other  components are accessed by progressing sequentially through the file.  A file is generated by sequentially appending components at its end.  Consequently, the file type description does not determine the number  of components.  A variable declaration associates an identifier with a type, and when  the block (see below) in which the declaration occurs  is activated, a  variable that is named by the identifier is created. Such variables that  are declared in explicit declarations are sometimes called  static.  In  contrast, variables may be generated by executable statement; such a  dynamic  generation yields a so-called  pointer  (a substitute for an  explicit identifier) which subsequently serves to identify the variable.  This pointer value may be assigned to variables and functions that  possess its type. Each pointer type has a fixed  domain  type, and every  variable identified by a pointer value of the pointer type possesses the  domain type. In addition to such  identifying  values, each pointer type  also has the value  nil  which points to no variable. Because components  of structured variables may possess pointer types, and the domain type  of pointer types may be structured, the use of pointers permits the  representation of finite graphs in full generality.  The most fundamental statement is the  assignment  statement. It  specifies that a value obtained by evaluating an  expression  be assigned  to a variable (or component thereof). Expressions consist of variables,  constants,  array-parameter  index  bounds,  set  constructors,  and  operators and functions operating on the denoted quantities yielding  result values. Variables, constants, and functions are either declared in 