anchor.diff:        { $specifierExpression.setExpression($expression.expression); }
       ;
   
  -initializer
  -    : ASSIGN_OP expression
  +initializer returns [InitializerExpression initializerExpression]
  +    : ASSIGN_OP 
  +      { $initializerExpression = new InitializerExpression($ASSIGN_OP); }
  +      expression
  +      { $initializerExpression.setExpression($expression.expression); }
       //-> ^(INITIALIZER_EXPRESSION[$ASSIGN_OP] expression)
       ;
   
  
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:     //-> ^(ATTRIBUTE_SETTER_DEFINITION[$ASSIGN] VOID_MODIFIER memberName block)
      ;
  
  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); }
        ( 
          (
            specifier 
            { dec.setSpecifierOrInitializerExpression($specifier.specifierExpression); }
          | 
            initializer
            { dec.setSpecifierOrInitializerExpression($initializer.initializerExpression); }
          )?
          SEMICOLON
          { $declaration = dec; }
          //-> ^(ATTRIBUTE_DECLARATION VALUE_MODIFIER memberName specifier? initializer?)
        | block
          { def.setBlock($block.block); }
          //-> ^(ATTRIBUTE_GETTER_DEFINITION VALUE_MODIFIER memberName block)
        )
      ;
  