anchor.diff:   */
   
   interfaceDeclaration returns [InterfaceDeclaration d]
  -	:	normalInterfaceDeclaration
  -	|	annotationTypeDeclaration
  -	;
  -
  -normalInterfaceDeclaration
  -	:	interfaceModifier* 'interface' Identifier typeParameters? extendsInterfaces? interfaceBody
  +	:	n = normalInterfaceDeclaration {$d = $n;}
  +	|	a = annotationTypeDeclaration {$d = $a;}
  +	;
  +
  +normalInterfaceDeclaration returns [InterfaceDeclaration d]
  +    locals [List<Modifier> mods = new ArrayList<>();]
  +	:	(m = interfaceModifier {$mods.add($m);})*
  +        'interface' id = Identifier
  +        t = typeParameters? e = extendsInterfaces?
  +        {$d = new InterfaceDeclaration($id, $e, $mods);}
  +        interfaceBody[d]
   	;
   
   interfaceModifier returns [Modifier m]
  
positive.code:         {$s = $ls;}
  	;
  
  classBody
  	:	'{' classBodyDeclaration* '}'
  	;
  
  classBodyDeclaration
  	:	classMemberDeclaration
  	|	instanceInitializer
  	|	staticInitializer
  	|	constructorDeclaration
  	;
  
  classMemberDeclaration
  	:	fieldDeclaration
  	|	methodDeclaration
  	|	classDeclaration
  	|	interfaceDeclaration
  	|	';'
  	;
  
  fieldDeclaration
  	:	fieldModifier* unannType variableDeclaratorList ';'
  	;
  
  fieldModifier returns [Modifier m]
  
negative.code: 	|	'volatile' {$m = Modifier.VOLATILE;}
  	;
  
  variableDeclaratorList returns [List<Pair<String, Expression>> l]
      locals [List<Pair<String, Expression>> ls = new ArrayList<>();]
  	:	(d1 = variableDeclarator {$ls.add($d1);})
          (',' d = variableDeclarator {$ls.add($d);})*
          {$l = $ls;}
  	;
  
  variableDeclarator returns [Pair<String, Expression> p]
  	:	id = variableDeclaratorId ('=' in = variableInitializer)?
          {$p = new Pair($id.text, $in);}
  	;
  
  variableDeclaratorId
  	:	Identifier dims?
  	;
  
  variableInitializer returns [Expression e]
  	:	ex = expression {$e = $ex;}
  	|	a = arrayInitializer {$e = $a;}
  	;
  
  unannType returns [Type t]
  	:	p = unannPrimitiveType {$t = $p;}
  	|	r = unannReferenceType {$t = $r;}
  	;
  
  unannPrimitiveType returns [PrimitiveType t]
  