anchor.diff:  reflectedLiteral 
       : '#' ( memberName | ( parameterizedType ('.' memberName)? ) )
       -> ^(REFLECTED_LITERAL parameterizedType? memberName?)
  -    ;
  -
  -qualifiedTypeName
  -    : UIDENTIFIER ('.' UIDENTIFIER)*
  -    -> ^(TYPE_NAME UIDENTIFIER+) 
       ;
   
   typeName
  
positive.code:     ;
      
  type
      : parameterizedType //( '[' parameterizedType? ']' )?
      -> parameterizedType //FIXME: unnecessary?
      | 'subtype'
      -> ^(TYPE 'subtype')
      ;
  
  parameterizedType
      : qualifiedTypeName typeArguments?
      -> ^(TYPE qualifiedTypeName typeArguments?)
      ;
  
  annotations
      : annotation+
      -> ^(ANNOTATION_LIST annotation+)
  
negative.code:     -> ^(WHILE_STMT doBlock loopCondition)
      ;
  
  simpleWhile
      : loopCondition whileBlock
      -> ^(WHILE_STMT loopCondition whileBlock)
      ;
  