anchor.diff:      ;
   
   declarations
  -    :   (versiondefine | basicdefine | enumdefine /* | classdefine */ )*
  +    :   (versiondefine | basicdefine | enumdefine | structdefine)*
       ;
   
   versiondefine
  
positive.code:     :   NAME_NAME ATTR_EQ ATTR_VALUE_START t=NAME ATTR_VALUE_END
          -> CONSTANTNAME[$t];
  
  /*------------------------------------------------------------------
   * LEXER RULES
   *------------------------------------------------------------------*/
  
negative.code:     :   { !tagMode }?=> '</option>'
      ;
  
  TAG_START_STRUCT
      :   { !tagMode }?=> ('<' ('compound'|'object'|'struct')) { tagMode = true; }
      ;
  
  TAG_END_STRUCT
      :   { !tagMode }?=> ('</' ('compound'|'object'|'struct') '>')
      ;
  
  TAG_START_ADD
      :   { !tagMode }?=> '<add' { tagMode = true; }
      ;
  
  TAG_END_ADD
      :   { !tagMode }?=> '</add>'
      ;
  
  TAG_CLOSE
      :   { tagMode }?=> '>' { tagMode = false; }
      ;
  