When the generated scanner runs, it analyzes its input looking for
strings which match any of its patterns. If it finds more than one
match, it takes the one matching the most text (for trailing context
rules, this includes the length of the trailing part, even though it
will then be returned to the input). If it finds two or more matches of
the same length, the rule listed first in the flex
input file is
chosen.
Once the match is determined, the text corresponding to the match
(called the token) is made available in the global character
pointer yytext
, and its length in the global integer
yyleng
. The action corresponding to the matched pattern is then
executed (a more detailed description of actions follows), and then the
remaining input is scanned for another match.
If no match is found, then the default rule is executed: the next
character in the input is considered matched and copied to the standard
output. Thus, the simplest legal flex
input is:
%%
which generates a scanner that simply copies its input (one character at a time) to its output.