anchor.diff:      ;
   
   TAG_CLOSE
  -    :   { tagMode }?=> '>' { tagMode = false; }
  +    :   { tagMode && !attrMode }?=> '>' { tagMode = false; }
       ;
   
   TAG_END
  -    :   { tagMode }?=> '/>' { tagMode = false; }
  +    :   { tagMode && !attrMode }?=> '/>' { tagMode = false; }
       ;
   
   ATTR_EQ
  
positive.code: 
  INT
      // hex
      :   '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
      // octal
      |   '0o' ( '0' .. '7')+
      // binary
      |   '0b' ( '0' .. '1')+
      // decimal, or version integer
      |   DIGITS ('.' DIGITS)*
      ;
  
  fragment
  
negative.code: 
  OP_BITWISE_OR
      :   { tagMode && attrMode }?=> '|';
  
  OP_MINUS
      :   { tagMode && attrMode }?=> '-';
  
  OP_PLUS
      :   { tagMode && attrMode }?=> '-';
  
  OP_MULTIPLY
      :   { tagMode && attrMode }?=> '*';
  
  OP_DIVIDE
      :   { tagMode && attrMode }?=> '/';
  
  OP_MODULO
      :   { tagMode && attrMode }?=> '%';
  
  LBRACKET
      :   { tagMode && attrMode }?=> '(';
  