DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(flex.info.gz) unnamed-faq-68

Info Catalog (flex.info.gz) unnamed-faq-67 (flex.info.gz) FAQ (flex.info.gz) unnamed-faq-69
 
 unnamed-faq-68
 ==============
 
 
      To: "Bart Niswonger" <NISWONGR@almaden.ibm.com>
      Subject: Re: flex 2.5: c++ scanners & start conditions
      In-reply-to: Your message of Tue, 06 Jan 1998 10:34:21 PST.
      Date: Tue, 06 Jan 1998 19:19:30 PST
      From: Vern Paxson <vern>
 
      > The problem is that when I do this (using %option c++) start
      > conditions seem to not apply.
 
      The BEGIN macro modifies the yy_start variable.  For C scanners, this
      is a static with scope visible through the whole file.  For C++ scanners,
      it's a member variable, so it only has visible scope within a member
      function.  Your lexbegin() routine is not a member function when you
      build a C++ scanner, so it's not modifying the correct yy_start.  The
      diagnostic that indicates this is that you found you needed to add
      a declaration of yy_start in order to get your scanner to compile when
      using C++; instead, the correct fix is to make lexbegin() a member
      function (by deriving from yyFlexLexer).
 
      		Vern
 
Info Catalog (flex.info.gz) unnamed-faq-67 (flex.info.gz) FAQ (flex.info.gz) unnamed-faq-69
automatically generated byinfo2html