Syntax  227  Identifier  IdentiJierList  IjStatement  Index  IndexType  I ndexTypeSpeciJication  IndexedVariahle  InitialValue  IntegerExpression  Lahel  LahelDeclarationPart  Letter  MultiplyingOperator  OrdinalExpression  OrdinalType  =  Letter  {  Letter  I  Digit  I .  IdentiJier  { ","  IdentiJier  I  "if"  BooleanExpression  "then"  Statement  [ "else"  Statement]  OrdinalExpression .  OrdinalType .  IdentiJier  " .. "  IdentiJier  ":"  OrdinalTypeldentiJier.  ArrayVariahle  "["  Index  { ","  Index  I  "]".  OrdinalExpression .  =  OrdinalExpression .  DigitSequence .  ["label"  DigitSequence  { ","  DigitSequence  I ";"] .  =  "a"  I  "b"  I  "e"  I  "d"  I  "e"  I  "h"  "i"  I  "j"  I  "k"  I  "1"  "0"  "p"  I  "q"  I  "r"  I  "s"  "v"  "w"  I  "x"  I  "y"  I  "z" .  "f"  "  "  m  "t"  "*,,  I  "I"  I  "di v"  I  "mod"  I  "and" .  Expression.  =  EnumeratedType  I  SuhrangeType  I  OrdinalTypeldentiJier .  "  "  g  "  "  n  "  "  u  OrdinalTypeldentiJier  =  TypeldentiJier.  PackedConformantArraySchema  =  PointerType  PointerTypeldentifier  PointerVariahle  "packed" "array" "["  IndexTypeSpeciJication  "]"  "of"  TypeldentiJier .  "i"  DomainType  I  PointerTypeldentiJier.  Typeldentifier.  Variahle.  ProceduralParameterSpeciJication  =  ProcedureHeading .  ProcedureAndFunctionDeclarationPart  = {  (ProcedureDeclaration  I  ProcedureDeclaration  ProcedureH eading  ProcedureldentiJication  Procedureldentifier  ProcedureStatement  Program  ProgramHeading  ProgramParameterList  RealTypeldentiJier  RecordSection  FunctionDeclaration  ) ";"  I  ProcedureHeading  ";"  Block  I  ProcedureHeading  ";"  Directive  I  ProcedureldentiJication  ";"  Block.  "procedure"  IdentiJier [FormaIParameterList] .  "procedure"  ProcedureldentiJier .  IdentiJier.  ProcedureldentiJier [ActualParameterList  /  WriteParameterList]  .  ProgramHeading  ";"  Block  "." .  =  "program"  IdentiJier [ProgramParameterList] .  "("  IdentiJierList  ")" .  TypeldentiJier.  IdentiJierList  ":"  Type. 