Internal documentation for exim_help.

The ideas behind this program are:

 One matching line is of little use to someone; a
 matching paragraph is better.

 Paragraphs are separated by blank lines.

 Information about matches and paragraph bounds
 are stored numerically because we don't want
 to duplicate the string information -- it is
 likely to be bigger.

 Also the objects we are dealing with are paragraphs
 and documents.  Chapter titles don't really count
 as specialisations of paragraphs -- they are only
 different in the context of a document.


The program reads in the documents, locates
the blank lines bounding the paragraphs and
locates the chapter titles (only of use in
the specification file.

As of 0.5 it also counts the words in a paragraph
and as the paragraphs are put into a document,
pointers are added to point back to the preceeding
paragraph, so that variable (option) names can be
found easily, when a describing paragraph matches.
This information survives being sorted, later.

Matches are done at this time also for all the patterns on 
the lines in the file and these are then tied
to the bounding pargraphs.

Only paragraphs that match will be printed out. As
of 0.5 paragraphs that describe options will result
in the previous 2 paragraphs being printed out, i.e
the option name and paramter type and default value.

<Later this file should contain infrmation
about variable names and usages...>

This program uses the Getopt::Long module, and
it configures it to *not* ignore case, which would
be the default.

