[ << ] | [ < ] | [ 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.