DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(flex.info.gz) The | operator is not doing what I want

Info Catalog (flex.info.gz) unput() messes up yy_at_bol (flex.info.gz) FAQ (flex.info.gz) Why can't flex understand this variable trailing context pattern?
 
 The | operator is not doing what I want
 =======================================
 
 
      To: Alain.ISSARD@st.com
      Subject: Re: Start condition with FLEX
      In-reply-to: Your message of Mon, 18 Nov 1996 09:45:02 PST.
      Date: Mon, 18 Nov 1996 10:41:34 PST
      From: Vern Paxson <vern>
 
      > I am not able to use the start condition scope and to use the | (OR) with
      > rules having start conditions.
 
      The problem is that if you use '|' as a regular expression operator, for
      example "a|b" meaning "match either 'a' or 'b'", then it must *not* have
      any blanks around it.  If you instead want the special '|' *action* (which
      from your scanner appears to be the case), which is a way of giving two
      different rules the same action:
 
      	foo	|
      	bar	matched_foo_or_bar();
 
      then '|' *must* be separated from the first rule by whitespace and *must*
      be followed by a new line.  You *cannot* write it as:
 
      	foo | bar	matched_foo_or_bar();
 
      even though you might think you could because yacc supports this syntax.
      The reason for this unfortunately incompatibility is historical, but it's
      unlikely to be changed.
 
      Your problems with start condition scope are simply due to syntax errors
      from your use of '|' later confusing flex.
 
      Let me know if you still have problems.
 
      		Vern
 
Info Catalog (flex.info.gz) unput() messes up yy_at_bol (flex.info.gz) FAQ (flex.info.gz) Why can't flex understand this variable trailing context pattern?
automatically generated byinfo2html