12.5. Flex — 一个更好的 Lex

Flex 是兼容 Lex 的快速语法分析程序生成器。

可以使用 “info flex” 查看 flex(1) 的教程。

你需要提供你自己的 “main()“ 和 “yywrap()“.否则,你的 flex 程序,看起来像这样的,编译的时候将不会带库。这是因为 “yywrap“ 是一个宏, “%option main“ 隐性打开了 “%option noyywrap“.

  1. %option main
  2. %%
  3. .|\n ECHO ;
  4. %%

另外一种方法,在你的 cc(1) 命令行结尾,你可以使用编译链接器选项,”-lfl“。(像使用 “-ll“ 的 AT&T-Lex ). 在这种情况下,不需要 “%option“.