anchor.diff:      |   expression ('+'|'-') expression
       |   expression ('<' '<' | '>' '>' '>' | '>' '>') expression
       |   expression ('<=' | '>=' | '>' | '<') expression
  -	|   expression 'instanceof' type
  -	|   expression ('==' | '!=') expression
  -	|   expression '&' expression
  -	|   expression '^' expression
  -	|   expression '|' expression
  -	|   expression '&&' expression
  -	|   expression '||' expression
  -	|   expression '?' expression ':' expression
  -	|   expression
  -        (	'='<assoc=right>
  -        |	'+='<assoc=right>
  -        |	'-='<assoc=right>
  -        |	'*='<assoc=right>
  -        |	'/='<assoc=right>
  -        |	'&='<assoc=right>
  -        |	'|='<assoc=right>
  -        |	'^='<assoc=right>
  -        |	'>>='<assoc=right>
  -        |	'>>>='<assoc=right>
  -        |	'<<='<assoc=right>
  -        |	'%='<assoc=right>
  +    |   expression 'instanceof' type
  +    |   expression ('==' | '!=') expression
  +    |   expression '&' expression
  +    |   expression '^' expression
  +    |   expression '|' expression
  +    |   expression '&&' expression
  +    |   expression '||' expression
  +    |   expression '?' expression ':' expression
  +    |   expression
  +        (   '='<assoc=right>
  +        |   '+='<assoc=right>
  +        |   '-='<assoc=right>
  +        |   '*='<assoc=right>
  +        |   '/='<assoc=right>
  +        |   '&='<assoc=right>
  +        |   '|='<assoc=right>
  +        |   '^='<assoc=right>
  +        |   '>>='<assoc=right>
  +        |   '>>>='<assoc=right>
  +        |   '<<='<assoc=right>
  +        |   '%='<assoc=right>
           )
           expression
       ;
   
   primary
  -	:	'(' expression ')'
  +    :   '(' expression ')'
       |   'this'
       |   'super'
       |   literal
       |   Identifier
       |   type '.' 'class'
       |   'void' '.' 'class'
  -	|	nonWildcardTypeArguments (explicitGenericInvocationSuffix | 'this' arguments)
  +    |   nonWildcardTypeArguments (explicitGenericInvocationSuffix | 'this' arguments)
       ;
   
   creator
  
positive.code: typeArguments
      :   '<' typeArgument (',' typeArgument)* '>'
      ;
      
  typeArgument
      :   type
      |   '?' (('extends' | 'super') type)?
      ;
      
  qualifiedNameList
      :   qualifiedName (',' qualifiedName)*
      ;
  
negative.code:     :   arrayInitializer
      |   expression
      ;
  
  arrayInitializer
      :   '{' (variableInitializer (',' variableInitializer)* (',')? )? '}'
      ;
  