Next: How do I skip huge chunks of input (tens of megabytes) while using flex?, Previous: Why do flex scanners call fileno if it is not ANSI compatible?, Up: FAQ [Contents][Index]
e.g.,
%% block "{"({block}|{statement})*"}"
No. You cannot have recursive definitions. The pattern-matching power of regular expressions in general (and therefore flex scanners, too) is limited. In particular, regular expressions cannot “balance” parentheses to an arbitrary degree. For example, it’s impossible to write a regular expression that matches all strings containing the same number of ’{’s as ’}’s. For more powerful pattern matching, you need a parser, such as GNU bison.