anchor.diff:  
   typename
   	:	var_or_type_dot
  -	|	'strong' '[' typename ']'
  -	|	'weak' '[' typename ']'
  -	|	'ptr' '[' typename ']'
  -	|	'array' '[' typename (',' expr)? ']'
  +	|	'strong' '[' typename ']' -> ^('strong' typename)
  +	|	'weak' '[' typename ']'  -> ^('weak' typename)
  +	|	'ptr' '[' typename ']'  -> ^('ptr' typename)
  +	|	'array' '[' typename (',' expr)? ']'  -> ^('array' typename expr?)
  +	|	'int' | 'uint' | 'uintptr' | 'int8' | 'int32' | 'uint32' | 'int16' | 'uint16' | 'int64' | 'uint64' | 'uint8'
   	;
   	
   	
  
positive.code: 	|	'[' e=expr ']' -> ^('[' $postf_op $e))*
  	;	
  
  	
  	
negative.code:         ) {$channel=HIDDEN;}
      ;
  
  STRING	:	STRING_V
  	;
  
  CHAR	:	CHAR_V
  	;
  	
  WSTRING	:	'L' STRING_V
  	;
  	
  WCHAR	:	'L' CHAR_V
  	;
  
  
  fragment
  STRING_V
      :  '"' ( ESC_SEQ | ~('\\'|'"') )* '"'
      ;
  
  fragment
  CHAR_V:  '\'' ( ESC_SEQ | ~('\''|'\\') ) '\''
      ;
  
  fragment
  