anchor.diff:          | {has_ver1=1;} ver1=attr_expression_ver1
           | {has_ver2=1;} ver2=attr_expression_ver2
           | {has_cond=1;} cond=attr_expression_cond
  +        | attr_expression_default
           | anyattribute
           )*
           ( TAG_CLOSE
  
positive.code:     :   { tagMode && !attrMode }?=> 'cond'
      ;
  
  NAME
      :   { tagMode && !attrMode }?=> (UCLETTER | LCLETTER) (UCLETTER | LCLETTER | DIGIT)*
      |   { tagMode && attrMode }?=> (UCLETTER | LCLETTER) (UCLETTER | LCLETTER | DIGIT | '_' | ' ' | '?')*
  
negative.code:         -> expression
      ;
  
  attr_expression_default
      :   NAME_DEFAULT ATTR_EQ ATTR_VALUE_START .* ATTR_VALUE_END
      ;
  
  expression
  	:   or_test
          -> or_test
  