anchor.diff:      //-> ^(ATTRIBUTE_SETTER_DEFINITION[$ASSIGN] VOID_MODIFIER memberName block)
       ;
   
  -inferredMethodDeclaration
  -    : FUNCTION_MODIFIER 
  -      memberName 
  -      typeParameters? 
  -      parameters* 
  -      //metatypes? 
  -      typeConstraints?
  +inferredAttributeDeclaration returns [AnyAttribute declaration]
  +    @init { AttributeGetterDefinition def=null;
  +            AttributeDeclaration dec=null; }
  +    : VALUE_MODIFIER 
  +      { ValueModifier fm = new ValueModifier($VALUE_MODIFIER);
  +        def = new AttributeGetterDefinition($VALUE_MODIFIER);
  +        dec = new AttributeDeclaration($VALUE_MODIFIER);
  +        def.setType(fm);
  +        dec.setType(fm);
  +        $declaration = def; }
  +      memberName
  +      { dec.setIdentifier($memberName.identifier); 
  +        def.setIdentifier($memberName.identifier); }
         ( 
  -        block
  -      //-> ^(METHOD_DEFINITION FUNCTION_MODIFIER memberName methodParameters? block)
  -      | specifier?
  +        (
  +          specifier 
  +          { dec.setSpecifierOrInitializerExpression($specifier.specifierExpression); }
  +        | 
  +          initializer
  +          { dec.setSpecifierOrInitializerExpression($initializer.initializerExpression); }
  +        )?
           SEMICOLON
  -      //-> ^(METHOD_DECLARATION FUNCTION_MODIFIER memberName methodParameters? specifier?)
  -      )
  -    ;
  - 
  -inferredAttributeDeclaration
  -    :  VALUE_MODIFIER memberName
  -      ( 
  -        (specifier | initializer)? 
  -        SEMICOLON
  +        { $declaration = dec; }
           //-> ^(ATTRIBUTE_DECLARATION VALUE_MODIFIER memberName specifier? initializer?)
         | block
  +        { def.setBlock($block.block); }
           //-> ^(ATTRIBUTE_GETTER_DEFINITION VALUE_MODIFIER memberName block)
         )
       ;
  
positive.code:     //-> ^(OBJECT_DEFINITION VALUE_MODIFIER memberName extendedType? satisfiedTypes? classBody?) 
      ;
  
  voidMethodDeclaration returns [AnyMethod declaration]
      @init { MethodDefinition def=null;
              MethodDeclaration dec=null; }
      : VOID_MODIFIER
        { def = new MethodDefinition($VOID_MODIFIER);
          dec = new MethodDeclaration($VOID_MODIFIER);
          $declaration = def; }
        memberName
        { dec.setIdentifier($memberName.identifier); 
          def.setIdentifier($memberName.identifier); }
  
negative.code:       { $declaration=$objectDeclaration.declaration; }
      | setterDeclaration
        { $declaration=$setterDeclaration.declaration; }
      | voidOrInferredMethodDeclaration
        { $declaration=$voidOrInferredMethodDeclaration.declaration; }
      | inferredAttributeDeclaration
        { $declaration=$inferredAttributeDeclaration.declaration; }
      //| typedMethodOrAttributeDeclaration
      | classDeclaration
        { $declaration=$classDeclaration.declaration; }
  