Why blank lines matter

This had me puzzled for a minute:

program CodeLibrarian;

{$R *.res}

uses
  GX_VerDepConst in '..\..\Framework\GX_VerDepConst.pas';

procedure ShowCodeLib; external GExpertsDll;
begin
  ShowCodeLib;
end.

This is all the code there is to the stand alone Code Librarian tool that comes with GExperts. Then it dawned me. It’s much easier to understand if you add a single line feed:

program CodeLibrarian;

{$R *.res}

uses
  GX_VerDepConst in '..\..\Framework\GX_VerDepConst.pas';

procedure ShowCodeLib; external GExpertsDll;

begin
  ShowCodeLib;
end.

The procedure ShowCodeLib is an external declaration that does not have a body. The begin / end are actually the main program that calls ShowCodeLib.