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:       { $declaration=$objectDeclaration.declaration; }
      | setterDeclaration
        { $declaration=$setterDeclaration.declaration; }
      | voidMethodDeclaration
        { $declaration=$voidMethodDeclaration.declaration; }
      //| typedMethodOrAttributeDeclaration
      | classDeclaration
        { $declaration=$classDeclaration.declaration; }
  
negative.code:     //-> ^(OBJECT_DEFINITION VALUE_MODIFIER memberName extendedType? satisfiedTypes? classBody?) 
      ;
  
  voidOrInferredMethodDeclaration returns [AnyMethod declaration]
      @init { MethodDefinition def=null;
              MethodDeclaration dec=null; }
      : (
          VOID_MODIFIER
          { VoidModifier vm = new VoidModifier($VOID_MODIFIER);
            def = new MethodDefinition($VOID_MODIFIER);
            dec = new MethodDeclaration($VOID_MODIFIER);
            def.setType(vm);
            dec.setType(vm);
            $declaration = def; }
        | FUNCTION_MODIFIER
          { FunctionModifier fm = new FunctionModifier($VOID_MODIFIER);
            def = new MethodDefinition($FUNCTION_MODIFIER);
            dec = new MethodDeclaration($FUNCTION_MODIFIER);
            def.setType(fm);
            dec.setType(fm);
            $declaration = def; }
        )
        memberName
        { dec.setIdentifier($memberName.identifier); 
          def.setIdentifier($memberName.identifier); }
  