anchor.diff:      | (inst=instance
               -> ^(INSTANCE $inst $ann?)))*/
       ;
  -    
  +
  +enumeratedTypes
  +    : 'enumeration' '{' enumeratedType+ '}' 'of'
  +    -> ^(ENUMERATION_DECL enumeratedType+)
  +    ;
  +
  +enumeratedType
  +    : annotations? enumeratedTypeDeclaration
  +    -> ^(TYPE_DECL enumeratedTypeDeclaration annotations?)
  +    ;
  +
   //special rule for syntactic predicates
   annotatedDeclarationStart
  -    :  userAnnotation* ( declarationAnnotation | declarationStart )
  +    : 'enumeration' | userAnnotation* ( declarationAnnotation | declarationStart )
       ;
   
   declarationStart
  
positive.code:     :   'extends'
      ;
  
  FINALLY
      :   'finally'
      ;
  
negative.code:     -> ^(INTERFACE_DECL interfaceDeclaration)
      | aliasDeclaration
      -> ^(ALIAS_DECL aliasDeclaration)
      | objectDeclaration
      -> ^(OBJECT_DECL objectDeclaration)
      ;
  
  enumeratedTypeDeclaration
      : classDeclaration
      -> ^(CLASS_DECL classDeclaration)
      | objectDeclaration
      -> ^(OBJECT_DECL objectDeclaration)
      | caseDeclaration
      -> ^(CASE_DECL caseDeclaration)
      ;
  
  /*toplevelExpression
  