anchor.diff:  
   INT
       // hex
  -    :   '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
  +    :   { tagMode && attrMode }?=> '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
       // octal
  -    |   '0o' ( '0' .. '7')+
  +    |   { tagMode && attrMode }?=> '0o' ( '0' .. '7')+
       // binary
  -    |   '0b' ( '0' .. '1')+
  +    |   { tagMode && attrMode }?=> '0b' ( '0' .. '1')+
       // decimal, or version integer
  -    |   DIGITS ('.' DIGITS)*
  +    |   { tagMode && attrMode }?=> DIGITS ('.' DIGITS)*
       ;
   
   fragment
  
positive.code:     ;
  
  FLOAT
      :   DIGITS '.' DIGITS EXPONENT? 'f'
      ;
  
  fragment
  
negative.code: OP_NEQ
      :   { tagMode && attrMode }?=> '!=';
  
  OP_RIGHTSHIFT
      :   { tagMode && attrMode }?=> '>>';
  
  OP_LEFTSHIFT
      :   { tagMode && attrMode }?=> '<<';
  
  OP_GTEQ
      :   { tagMode && attrMode }?=> '>=';
  
  OP_LTEQ
      :   { tagMode && attrMode }?=> '<=';
  
  OP_GT
      :   { tagMode && attrMode }?=> '>';
  
  OP_LT
      :   { tagMode && attrMode }?=> '<';
  
  OP_NOT
      :   { tagMode && attrMode }?=> '!';
  
  