hat (header analysis tool) analyzes header file dependencies/references, etc.
The "symbols" recognized are #define's, enum classes, typedef's and structure
definitions.  It can also do a reasonable job of figuring out what header
files are needed by a group of c source files.

See hat.1 man page for full description.

The program actually invokes a parser which walks overs header files
and produces output for an analysis program which produces a topologically
sorted dependency list, and symbol cross reference.  This analyzer may
also be used to analyze references / definitions coming from any other
source as well, provided you massage the information into the right format.
The "coat" program (compiled object analysis tool) is a trivial shell script
which routes the output of "nm" into the analyzer to produce a similar
analysis for libraries or object files.  It was used, for instance, to
assure that "static" was placed on all possible procedure declarations
in these source files.

Look over the makefile before making it.  You are expected to fill in
some configuration information.  If you leave MANDIR ".", make will say
it failed since it can't move the manual pages to themselves, but you may
ignore that.  This uses a utility library, bobm.a, which I use for other
things as well, and packed in a separate archive.  You will have to build
it first.

I haven't tried any of the fast lex'es with this.  scan.l should be a good
test for them.  I also haven't run this on any SYSV systems, and it
probably needs some SYSV ifdef's.
