* the manual:

** do an end-to-end proofread of the manual (this is under way, but is
   going slowly)

** pretty up the dvi output; overflows, etc.

** faq

*** clean up the faqs section. The information is good; the texinfo
   could use some touching up.

*** index the faq entries

*** mention that it's possible to use a variable to scan matching
    brackets, nested comments etc.

*** include something about lexing/parsing fortran

** create a section on flex design, features, etc.

* getext

** make sure all flex modules use gettext translation facilities

*subdirectories

** in examples/manual, integrate the Makefile.examples into the
    Makefile.am

* test suite

** integrate the test suite into automake's framework (note that the
   test suite can be run from the top level directory with "make
   check". Still, we want to get it completely under automake's control.)

** make test suite more complete

* generic coding

** move as much skeleton code as possible out of gen.c and into
  flex.skl

** figure out whether we want to add the capability to have
  auto-generated backout rules

** token-type and token buffer support

** check if we still need to #undef macros at the end of a header

** merge yylineno into support for location tracking

** bug where yylineno is not decremented on REJECT

** bug where yylineno is counted in trailing context

* C++

** have a separate skeleton for c++

** revisit the C++ API. We get requests to make it more complete.

Local Variables:
Mode: text
mode: outline-minor
End:
