anchor.diff:      |   ';'
       ;
       
  +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
  -        |   'static'     // class or interface
           |   'final'      // class only -- does not apply to interfaces
           |   'strictfp'   // class or interface
           )
  +    ;
  +
  +variableModifier
  +    :   'final'
  +    |   annotation
       ;
   
   classDeclaration
  
positive.code:     |   'double'
      ;
  
  variableModifier
      :   'final'
      |   annotation
      ;
  
  typeArguments
      :   '<' typeArgument (',' typeArgument)* '>'
      ;
  
negative.code:     :   '@' annotationName ( '(' ( elementValuePairs | elementValue )? ')' )?
      ;
      
  annotationName : qualifiedName ;
  
  elementValuePairs
      :   elementValuePair (',' elementValuePair)*
  