anchor.diff:     ;
   
   switch_list
  -   : designational_expression
  -   | switch_list ',' designational_expression
  +   : designational_expression (',' designational_expression)*
      ;
   
   procedure_declaration
  -   : 'procedure' procedure_heading procedure_body
  -   | type 'procedure' procedure_heading procedure_body
  +   :  type? 'procedure' procedure_heading procedure_body
      ;
   
   procedure_heading
  
positive.code:    ;
  
  designational_expression
     : simple_designational_expression
     | if_clause simple_designational_expression 'else' designational_expression
     ;
  
  simple_designational_expression
     : label
     | switch_designator
     | designational_expression
     ;
  
  switch_designator
     : switch_identifier  subscript_expression?
     ;
  
  procedure_statement
  
negative.code: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
  program
     : (block | compound_statement) EOF
     ;
  
  block
     : (label ':')? block_head compound_tail
     ;
  
  block_head
     : 'begin' (declaration ';')+
     ;
  
  compound_statement
     : (label ':')? 'begin' compound_tail
     ;
  
  compound_tail
     : (statement ';')* statement 'end'
     ;
  
  declaration
  