anchor.diff:                                                  {{ return l }}
   
   rule const_assignment:
  -        'Const' IDENT '=' expression ';'        {{ AIn (IDENT); yy.dict[IDENT] = expression; }}
  -
  +        'Const' IDENT '=' expression ';'        {{ AIn (IDENT); yy.dict[IDENT] = ('Const', expression); }}
   
   rule expression: summation                      {{ return summation }}
   rule summation:
  
positive.code:     yy.dict = None
  def constant_lookup (variable):
      assert isinstance (yy.dict, dict)
      if not yy.dict.has_key (variable):
          raise NameError ('undeclared symbol: ' + variable)
      return yy.dict[variable]
  def add_evalue (evalue_tuple):
      evalue_name   = evalue_tuple[0]
      evalue_number = evalue_tuple[1]
  
negative.code:         ( 'enumeration' | 'enum' )
          IDENT '{'                               {{ evalues = []; yy.ecounter = 1 }}
          enumeration_rest                        {{ evalues = enumeration_rest }}
          '}' ';'                                 {{ AIn (IDENT); yy.dict[IDENT] = ('enum', tuple (evalues)); yy.ecounter = None }}
  rule enumeration_rest:                          {{ evalues = [] }}
          ( ''                                    # empty
          | enumeration_value                     {{ evalues = evalues + [ add_evalue (enumeration_value) ] }}
  