anchor.diff:  
   struct_add
   @init {
  -    int has_ver1 = 0;
  -    int has_ver2 = 0;
  -    int has_cond = 0;
  +    bool has_ver1 = false;
  +    bool has_ver2 = false;
  +    bool has_cond = false;
  +    bool has_vercond = false;
   }
       :   TAG_START_ADD
           ( name=attr_variable_name
           | type=attr_type_type
  -        | {has_ver1=1;} ver1=attr_expression_ver1
  -        | {has_ver2=1;} ver2=attr_expression_ver2
  -        | {has_cond=1;} cond=attr_expression_cond
  +        | {has_ver1=true;} ver1=attr_expression_ver1
  +        | {has_ver2=true;} ver2=attr_expression_ver2
  +        | {has_cond=true;} cond=attr_expression_cond
  +        | {has_vercond=true;} vercond=attr_expression_vercond
           | attr_expression_default
           | anyattribute
           )*
  
positive.code:     :   { tagMode && !attrMode }?=> 'cond'
      ;
  
  NAME_DEFAULT
      :   { tagMode && !attrMode }?=> 'default'
      ;
  
negative.code:         | TAG_END
          )
          SHORTDOC*
          // has_cond && has_vercond
          -> {has_ver1 && has_ver2 && has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                      ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                          ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                              $ver1 $ver2)
                          $cond)
                      $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {has_ver1 && !has_ver2 && has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                      ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                          $ver1 $cond)
                      $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && has_ver2 && has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                      ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                          $ver2 $cond)
                      $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && !has_ver2 && has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"] $cond $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          // !has_cond && has_vercond
          -> {has_ver1 && has_ver2 && !has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                      ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                          $ver1 $ver2)
                      $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {has_ver1 && !has_ver2 && !has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"] $ver1 $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && has_ver2 && !has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"] $ver2 $vercond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && !has_ver2 && !has_cond && has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  $vercond
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          // has_cond && !has_vercond
          -> {has_ver1 && has_ver2 && has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                      ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"]
                          $ver1 $ver2)
                      $cond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {has_ver1 && !has_ver2 && has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"] $ver1 $cond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && has_ver2 && has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"] $ver2 $cond)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && !has_ver2 && has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  $cond
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          // !has_cond && !has_vercond
          -> {has_ver1 && has_ver2 && !has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  ^(OP_LOGICAL_AND[$TAG_START_ADD, "and"] $ver1 $ver2)
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {has_ver1 && !has_ver2 && !has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  $ver1
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
          -> {!has_ver1 && has_ver2 && !has_cond && !has_vercond}?
             ^(IF[$TAG_START_ADD, "if"]
                  $ver2
                  ^(FIELDDEF ^(DOC $doc?) $type $name))
  