BUGS:

- Namespace declarations are unsupported.

- Forward-declared, out-of-line defined nested classes are
  unsupported.

- Preprocess does not automatically export declarations of public
  variables and static class data to the generated header file.

- Conditional compilation (preprocessor) is unsupported on file
  top-level (preprocessor expressions inside blocks are OK), with the
  exception that code commented out using "#if 0" is detected
  correctly and deleted.

IDEAS:

- Preprocess' source code should be modularized so that the parser can 
  be used independently from the output generator.  This would enable
  us writing other interesting applications based on the parsed source 
  code:

  . Enforce naming conventions
  . Rewrite .cpp files according to user-specified rules; this could
    eventually be extented so that Preprocess can support a
    refactoring browser.
  . Aspect weaving (aspect-oriented programming)
  . Automatically generate insulation (wrappers, protocol classes,
    procedural interface) for a specified class
  . Support class invariants, and pre- and postconditions

- When should we backdate newly-generated files?  Obviously, if the
  newly generated file and its previous version are the same.  There
  are circumstances, however, when clients using a generated header
  file do not have to be recompiled: 

  . Only line-number changes
  . "friend" additions
  . Relaxation of protection rules
  . (and a number of other circumstances; see [Lakos])

- Preprocess should be configurable not only via command-line
  arguments, but also using a config file.

