Pascal  Report  161  7.  Variables  Wherever assignment-compatibility is required, and Tl  and T2  are  either compatible ordinal types or compatible set types, it is an error if  the value is not a member of the set of values determined by  T 1.  A variable possesses a type that is determined by its declaration, and  may take on values only of that type.  A variable is  undefined  if it does not have a value of its type. A  variable is  totally undefined  if it is  undefined and further if every  component of the (structured) variable is totally undefined. When a  variable is created it is totally undefined. A variable declared in a block  is created when the block is activated and destroyed when the activation  is terminated (see Section 10). An identified variable is created or  destroyed, respectively, by the predeclared procedure  New or Dispose  (see Sections 6.3 and 11.4).  A variable declaration introduces one or more variable identifiers  and the type that each one possesses. Variable declarations are collected  into variable declaration parts.  VariahleDeclarationPart  = [  "var"  VariahleDeclaration  "; "  {  VariahleDeclaration  "; " }  1  .  VariahleDeclaration  =  IdentifierList  .. : "  Type.  Variahleldentifier  =  Identifier.  Example of a variable declaration part:  var  W,  X,  Y:  Real;  Z:  Complex;  I,  J:  Integer;  K:  0 .. 9;  P,  Q:  Boolean;  Operator:  (Plus,  Minus,  Times);  GrayScale:  array  [0 .. 63]  of Real;  VideoPotential:  array  [Color,  Boolean]  of Complex;  Light:  Color;  F:  file  of Char;  Huel,  Hue2:  set of Hue;  PI,  P2:  PersonPointer; 