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