@node Cxx
@chapter Generating C++ Scanners
+@cindex c++, experimental form of scanner class
+@cindex experimental form of c++ scanner class
+@strong{IMPORTANT}: the present form of the scanning class is @emph{experimental}
+and may change considerably between major releases.
+
@cindex C++
-@cindex member functions in C++
-@cindex methods
+@cindex member functions, C++
+@cindex methods, c++
@code{flex} provides two different ways to generate scanners for use
with C++. The first way is to simply compile a scanner generated by
@code{flex} using a C++ compiler instead of a C compiler. You should
Note that a @code{yyFlexLexer} object contains its @emph{entire}
scanning state. Thus you can use such objects to create reentrant
-scanners. You can instantiate multiple instances of the same
-@code{yyFlexLexer} class, and you can also combine multiple C++ scanner
-classes together in the same program using the @samp{-P} option
-discussed above.
+scanners, but see also @ref{Reentrant}. You can instantiate multiple
+instances of the same @code{yyFlexLexer} class, and you can also combine
+multiple C++ scanner classes together in the same program using the
+@samp{-P} option discussed above.
Finally, note that the @code{%array} feature is not available to C++
scanner classes; you must use @code{%pointer} (the default).
if, for example, you used @code{%option prefix="xx"} for one of your
scanners and @code{%option prefix="zz"} for the other.
-IMPORTANT: the present form of the scanning class is @emph{experimental}
-and may change considerably between major releases.
-
@node Reentrant
@chapter Reentrant C Scanners