anchor.diff:        | { displayRecognitionError(getTokenNames(), 
                 new MismatchedTokenException(LBRACE, input)); }
           SEMICOLON
  +        { $declaration.setEndToken($SEMICOLON); }
         )
       //-> ^(ATTRIBUTE_SETTER_DEFINITION[$ASSIGN] VOID_MODIFIER memberName block)
       ;
  
positive.code:         )? 
          { $declaration = dec; }
          SEMICOLON
        //-> ^(INTERFACE_DECLARATION[$INTERFACE_DEFINITION] typeName interfaceParameters? typeSpecifier?)
        )
      ;
  
negative.code:         )?
          { $declaration = adec; }
          SEMICOLON
          { $declaration.setEndToken($SEMICOLON); }
        //-> ^(ATTRIBUTE_DECLARATION unionType memberName specifier? initializer?)
        | ab=memberBody[$unionType.type]
          { adef.setBlock($ab.block); }
  