flex 是一個(gè)生成掃描器的工具,能夠識(shí)別文本中的詞法模式。flex 讀入給定的輸入文件,如果沒有給定文件名的話,則從標(biāo)準(zhǔn)輸入讀取,從而獲得一個(gè)關(guān)于需要生成的掃描器的描述。此描述叫做 規(guī)則,由正則表達(dá)式和 C 代碼對(duì)組成。flex 的輸出是一個(gè) C 代碼文件——lex.yy.c——其中定義了 yylex() 函數(shù)。編譯輸出文件并且和 -lfl 庫(kù)鏈接生成一個(gè)可執(zhí)行文件。當(dāng)運(yùn)行可執(zhí)行文件的時(shí)候,它分析輸入文件,為每一個(gè)正則表達(dá)式尋找匹配。當(dāng)發(fā)現(xiàn)一個(gè)匹配時(shí),它執(zhí)行與此正則表達(dá)式相關(guān)的 C 代碼