anchor.diff:    end;
   
     // Deleting {} comments
  -  i := 1;
  -  while i < Length( fileOfText )  do
  -  begin
  -    if ( fileOfText[i] = '{' ) then
  -    begin
  -      j := i;
  -      repeat
  -        inc(j);
  -      until fileOfText[j] = '}';
  -      delete( fileOfText, i, j - i + 1 );
  -    end;
  -    inc(i);
  -  end;
  +  i := 0;
  +  repeat
  +    i := PosEx( '{', fileOfText, i + 1 );
  +    if i > 0 then
  +    begin
  +      j := PosEx( '}', fileOfText, i + 1 );
  +      if j > 0 then
  +        delete( fileOfText, i, j - i + 1 );
  +    end;
  +  until i = 0;
     // Deleting (* *) comments
  -  i := 1;
  -  while i < Length( fileOfText )  do
  -  begin
  -    if ( fileOfText[i] = '(' ) and ( fileOfText[i+1] = '*' ) then
  -    begin
  -      j := i;
  -      repeat
  -        inc(j);
  -      until ( ( fileOfText[j] = ')' ) and ( fileOfText[j-1] = '*' ) ) or ( j >= length( fileOfText ) );
  -      delete( fileOfText, i, j - i + 1 );
  -      dec(i);
  -    end;
  -    inc(i);
  -  end;
  +  i := 0;
  +  repeat
  +    i := PosEx( '(*', fileOfText, i + 1 );
  +    if i > 0 then
  +    begin
  +      j := PosEx( '*)', fileOfText, i + 1 );
  +      if j > 0 then
  +        delete( fileOfText, i, j - i + 2 );
  +    end;
  +  until i = 0;
     // Deleting // comments
     i := 1;
     while i < Length( fileOfText )  do
  
positive.code:     procedure RefactorFileText();
      procedure LoadFile( filename : string );
      function CheckEOF() : boolean;
    public
      constructor Create();
      procedure BuildGraph( pathToDpr : string );
  
negative.code:       end;
        if ( str[1] = #39 ) then
        begin
          CutSymbol( #39, str );
          CutSymbol( #39, str );
          CutSymbol( ',', str );
          CutSymbol( ';', str );
          for I := 0 to nonSystemUnit.Count - 1   do
          begin
            if nonSystemUnit[i] = unitForAnalyse[ unitForAnalyse.Count - 1] then
              nonSystemUnitFile[i] := path + str;
          end;
        end;
      end;
    until SameText(str, 'begin');
    unitForAnalyse.Delete( unitForAnalyse.Count - 1 );
  end;
  
  procedure TDependenciesGrapher.CutSymbol( s : string; var str : string );
  var delPos : integer;
  begin
    delPos := PosEx( s, str );
    if delPos > 0 then
      Delete( str, delPos, 1 );
  end;
  
  procedure TDependenciesGrapher.LoadFile( filename : string );
  