Next: better-Haskell-indexing  
Prev: delatexify-commands  
Up: april91-new-ideas  
Top: Top  
0.9.1.2. Multiple indexes
Having one index for a pretty-big program is a dubious proposition;
you get a huge index.  I think you need multiple indexes -- in
the case of a compiler, you might then have a separate index for:
parser, typechecker, syntactic desugarer, optimiser, etc.
Let's assume you index all the pieces of a compiler (as above) as
self-contained units.  PROBLEM: it is the uses of functions, etc.,
that cross such boundaries that you would MOST like to have your
attention drawn to.
That problem aside, I think this is the basic solution:
- \defineindex{<index-tag-string>}:
 - Says that <index-tag-string> is "legal" hereafter.
Requiring/encouraging these `\defineindex' will help to catch typos.
 - \index[<index-tag-string>]{<entry>}:
 - The `\index' command has an optional <index-tag-string> with
which this <entry> should be tagged.  The default tag
string is `main' (unless reset with `\setindex...'; below).
 - \printindex[<index-tag-strings>]:
 - Print an index here, made up from all the entries that have one of the
<index-tag-strings>.  The default tag string is (same
caveats...) `main'.
 - \setcurrentindex{<index-tag-string>}:
 - Set the default tag string for `\index' commands in text.
 
I think you could use the mechanism above to come close to Texinfo's
idea about multiple indexes.