manpagez: man pages & more
info flex
Home | html | info | man
[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

How can I make REJECT cascade across start condition boundaries?

You can do this as follows. Suppose you have a start condition ‘A’, and after exhausting all of the possible matches in ‘<A>’, you want to try matches in ‘<INITIAL>’. Then you could use the following:

%x A
%%
<A>rule_that_is_long    ...; REJECT;
<A>rule                 ...; REJECT; /* shorter rule */
<A>etc.
...
<A>.|\n  {
/* Shortest and last rule in <A>, so
* cascaded REJECTs will eventually
* wind up matching this rule.  We want
* to now switch to the initial state
* and try matching from there instead.
*/
yyless(0);    /* put back matched text */
BEGIN(INITIAL);
}

This document was generated on November 4, 2011 using texi2html 5.0.

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.