anchor.diff:  
   typeTag
   	:	a='[' (t=UNIVERSAL | t=APPLICATION | t=PRIVATE)? (INT|val=valuereference)  ']' ( impOrExp=IMPLICIT | impOrExp=EXPLICIT)? 	
  -			-> ^(TYPE_TAG[$a] $t? INT? ^(VALUE_REFERENCE[(IToken)val.Start] $val)? $impOrExp?)
  +			-> ^(TYPE_TAG[$a] $t? INT? ^(VALUE_REFERENCE[(Token)val.start] $val)? $impOrExp?)
   	;
   	
   /*
  
positive.code: choiceValue :	identifier a=':' value	->^(CHOICE_VALUE[$a] identifier value)
  	;	
  
  namedValue 	:	a=identifier value		->^(NAMED_VALUE[(IToken)a.Start] identifier value)
  	;
  	
  /*
  
negative.code:     :
      d=INT r=DOUBLE_DOT
      	  {
      	  $d.setType(INT);
      	  emit($d);$d.setLine(input.getLine());
            $r.setType(DOUBLE_DOT);
      	  emit($r);$r.setLine(input.getLine());
      	  }
      |	  INT DOT (DIGITS)? (Exponent)? 
      | 	d = INT { $d.setType(INT); emit($d);$d.setLine(input.getLine());}
      ;
  
  	
  