anchor.diff:      :   '@' annotationName ( '(' ( elementValuePairs | elementValue )? ')' )?
       ;
       
  -annotationName
  -    : Identifier ('.' Identifier)*
  -    ;
  +annotationName : qualifiedName ;
   
   elementValuePairs
       :   elementValuePair (',' elementValuePair)*
  
positive.code:     |   'double'
      ;
  
  variableModifier
      :   'final'
      |   annotation
      ;
  
  typeArguments
      :   '<' typeArgument (',' typeArgument)* '>'
      ;
  
negative.code:     |   ';'
      ;
      
  modifier
      :   classOrInterfaceModifier
      |   (   'native'
          |   'synchronized'
          |   'transient'
          |   'volatile'
          )
      ;
  
  classOrInterfaceModifier
      :   annotation       // class or interface
      |   (   'public'     // class or interface
          |   'protected'  // class or interface
          |   'private'    // class or interface
          |   'static'     // class or interface
          |   'abstract'   // class or interface
          |   'final'      // class only -- does not apply to interfaces
          |   'strictfp'   // class or interface
          )
      ;
  
  variableModifier
      :   'final'
      |   annotation
      ;
  
  classDeclaration
  