flex the fast lexical analyser generator
a flex program consists of three sections, separeated by %%/.
一个flex 程序有三部分组成,这三部分由%%分开。
the first section contains declarations and option settings.
the second section is a list of partterns and actions.
the third section is c code that is copied to the generated scanner.
usually small routines related to the code in the actions.