This directory contains some examples of what you can do with
flex. These files are not tested regularly so you might have to tinker
a bit before they work for you. Updates, new files and patches are welcome.

	- debflex.awk, an awk script for anotating flex debug output.
	  It presently only works with gawk and mawk, not with "old"
	  or "new" awk.

	- testxxLexer.l, a sample C++ program that uses flex's scanner
	  class option ("-+").

	- fastwc/, a subdirectory containing examples of how to use flex
	  to write progressively higher-performance versions of the Unix
	  "wc" utility.  This certainly should work with 2.5, but hasn't
	  been tested.
