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:     : 'local' 
      | 'assign' 
      | 'void' 
      | 'case' 
      | 'class' 
      | 'interface' 
      | 'alias'
  
negative.code:     IMPORT_WILDCARD;
      IMPORT_PATH;
      INIT_EXPR;
      ENUMERATION_DECL;
      INTERFACE_DECL;
      MEMBER_NAME;
      MEMBER_TYPE;
  