anchor.diff:          ) {$channel=HIDDEN;}
       ;
   
  -STRING
  +STRING	:	STRING_V
  +	;
  +
  +CHAR	:	CHAR_V
  +	;
  +	
  +WSTRING	:	'L' STRING_V
  +	;
  +	
  +WCHAR	:	'L' CHAR_V
  +	;
  +
  +
  +fragment
  +STRING_V
       :  '"' ( ESC_SEQ | ~('\\'|'"') )* '"'
       ;
   
  -CHAR:  '\'' ( ESC_SEQ | ~('\''|'\\') ) '\''
  +fragment
  +CHAR_V:  '\'' ( ESC_SEQ | ~('\''|'\\') ) '\''
       ;
   
   fragment
  
positive.code: 
  typename
  	:	var_or_type_dot
  	|	'strong' '[' typename ']'
  	|	'weak' '[' typename ']'
  	|	'ptr' '[' typename ']'
  	|	'array' '[' typename (',' expr)? ']'
  	;
  	
  	
  
negative.code: 	
  module_part 
  	:	var_decl
  	|	type_decl
  	;
  	
  var_decl
  	:	'var' var_init (',' var_init)*	-> var_init+
  	;		
  	
  var_init
  	:	typename ID ('=' expr)?	-> ^(VAR_TYPED ID typename ^('=' expr)?)
  	|	ID '=' expr		-> ^(VAR_ANY ID ^('=' expr))
  	;
  	
  var_or_type_dot
  