anchor.diff:  
   classOrInterfaceType returns [name]
       :   i=Identifier typeArguments? 
  -            { $name = $i.getText() }
  +            {
  +                self.modifier_lines[-1] = min($i.line,self.modifier_lines[-1])
  +                $name = $i.text
  +            }
           ('.' j=Identifier typeArguments? 
  -            { $name += ('.' + $j.getText()) }
  +            { $name += ('.' + $j.text) }
           )*
       ;
   
   primitiveType returns [name]
  -    :   'boolean'
  +@after {
  +    self.modifier_lines[-1] = min($t.line,self.modifier_lines[-1])
  +}
  +    :   t='boolean'
               { $name = 'boolean' }
  -    |   'char'
  +    |   t='char'
               { $name = 'char' }
  -    |   'byte'
  +    |   t='byte'
               { $name = 'byte' }
  -    |   'short'
  +    |   t='short'
               { $name = 'short' }
  -    |   'int'
  +    |   t='int'
               { $name = 'int' }
  -    |   'long'
  +    |   t='long'
               { $name = 'long' }
  -    |   'float'
  +    |   t='float'
               { $name = 'float' }
  -    |   'double'
  +    |   t='double'
               { $name = 'double' }
       ;
   
  
positive.code:     ;
  
  genericMethodOrConstructorRest
      :   (type | 'void') i=Identifier
              {
                  self.scopes.append(('method', $i.getText()))
                  self.modifier_line = min($i.getLine(),self.modifier_line)
              }
          methodDeclaratorRest
      |   i=Identifier
              {
                  self.scopes.append(('method', $i.getText()))
                  self.modifier_line = min($i.getLine(),self.modifier_line)
              }
          constructorDeclaratorRest
      ;
  
negative.code:         |   r=';'
              {
                  self.object_scopes.append([])
                  self.addBlock(self.modifier_lines[-1], $r.line, $r.line)
                  self.modifier_lines.pop()
              }
          )
      ;
  