Pascal Report  157  FixedPart  =  RecordSection  { ";"  RecordSection  I .  RecordSection  =  IdentifierList  ":"  Type.  Fieldldentifier  =  Identifier.  A field list may contain  afixed part,  which specifies a fixed number  of components called  fields.  A record section introduces each of the  identifiers in its list to be a field identifier possessing the type given in  the record section. The scope of a field identifier extends over its record  type, as well as the field designators and with statements where it may  be used (see  Sections 7.2.2, 9.2.4, and 10.2). Thus each field identifier  spelling must be unique within a record type.  Examples of record types with only fixed parts:  A constant that prefixes a variant must denote a value of the tag type.  Each such value must appear once and only once for a given variant  part.  If  a tag field occurs in a variant selector, then it introduces its  identifier as a field identifier to denote a field possessing the tag type.  Only one variant of a given variant part can be  active  at a given time.  If there is a tag field, the variant that is prefixed by the value of the tag  field is the active variant. Ifthere is no tag field, then the active variant  A field list may also contain a  variant part,  which specifies one or  more  variants.  The structure and values of a variant are specified by its  field list.  packed record  Year:  1900 .. 2100;  Month:  1 .. 12;  Day:  1.  .31  end  record  Firstname,  Lastname:  packed array  [1 .. 32]  of Char;  Age:  0 •.  99;  Married:  Boolean  end  VariantPart  =  "case"  VariantSelector  "of"  Variant  { ";"  Variant  I .  Variant  =  Constant  [ ","  Constant]  ",''' "("  Fie/dList  ") " .  VariantSelector  = {  TagField  ":"  I  TagType.  TagType  =  OrdinalTypeldentifier .  TagField  =  Identifier. 