anchor.diff:  scope{
     Type enumType;
   }
  -    :   ENUM name=Identifier {retval.element = createType(new SimpleNameSignature($name.text)); 
  +    :   ENUM name=identifierRule {retval.element = createType(new SimpleNameSignature($name.text)); 
                                 retval.element.addModifier(new Enum()); 
                                 $enumDeclaration::enumType=retval.element;
  -                              setLocation(retval.element,name,"__NAME");}
  +                              setLocation(retval.element,name.start,"__NAME");}
                     ('implements' trefs=typeList 
                            {for(TypeReference ref: trefs.element)
                                  {
  
positive.code: 
  identifierSuffixRubbush returns [Expression element]
  scope TargetScope;
  	:	'this' {$TargetScope::target = new ThisLiteral();}('.' id=Identifier {$TargetScope::target = new NamedTarget($id.text,$TargetScope::target);})* 
  	{if($TargetScope::target instanceof ThisLiteral) {
  	  retval.element = (ThisLiteral)$TargetScope::target;
  	 } else {
  
negative.code: 	             throw new Error();
  	             //retval.element = createTypeReference(retval.element,$namex.text);
  	           }
  	           stop=namex.start;
  	          } 
  	        (argsx=typeArguments 
  	          {
  