anchor.diff:  implementation
   
   uses
  -  DelphiAST, DelphiAST.Writer, DelphiAST.Classes;
  +  DelphiAST, DelphiAST.Writer, DelphiAST.Classes, IOUtils;
   
   {$IFNDEF FPC}
     {$R *.dfm}
  
positive.code:   {$R *.lfm}
  {$ENDIF}
  
  
  function TForm1.Parse(const FileName: string): string;
  var
    SyntaxTree: TSyntaxNode;
  begin
    Result := '';
    SyntaxTree := TPasSyntaxTreeBuilder.Run(FileName, false, TIncludeHandler.Create);
    try
      Result := TSyntaxTreeWriter.ToXML(SyntaxTree, True);
    finally
      SyntaxTree.Free;
    end;
  end;
  
  procedure TForm1.HandleMessage(Sender: TObject; const Typ: TMessageEventType; const Msg: string; X, Y: Integer);
  var
    sTyp: string;
  begin
    if Typ = meError then sTyp := 'meError - ' else sTyp := 'meNotSupported - ';
  
    ShowMessage(sTyp + Msg)
  end;
  
  procedure TForm1.OpenDelphiUnit1Click(Sender: TObject);
  
negative.code:     OpenDialog1: TOpenDialog;
      procedure OpenDelphiUnit1Click(Sender: TObject);
    private
      function Parse(const FileName: string): string;
    public
      { Public declarations }
    end;
  
    TIncludeHandler = class(TInterfacedObject, IIncludeHandler)
    private
      FPath: string;
    public
      constructor Create(const Path: string);
      function GetIncludeFileContent(const FileName: string): string;
    end;
  
  