编译原理在类Unix/Lunix上使用flex

flex,前身是lex,lex是1975年由Mike Lesk和当时尚在AT&T实习的Eric Schmidt共同完成的基于UNIX环境的词法分析器的生成工具。这个lex很有名气,但是无奈效率太低加上有bug,让人用的很不爽。后来伯克利实验室的Vern Paxson用C重新写了lex,并命名为flex(Fast Lexical Analyzer Generator)。

下面是使用方法,流程图如上所示

①首先创建一个.l文件,里面写上

②接下来打开终端

输入一下命令:

flex test.l //生成一个就叫做 "lex.yy.c"的文件

③输入以下命令,生成a.out文件来读取输入输出

/*
this action would generate a file named a.out which would be used for reading inputs and print outputs
*/
cc lex.yy.c -ll //参数-ll为mac上运行,如果不好用(Linux上运行),试试参数-lfl

④执行a.out

命令行中输入./a.out

输入一些字符,按下ctrl+D退出。

最后会出现lines、words、chars的个数。

参考资料:https://blog.csdn.net/u013225150/article/details/51241256

http://www.itdaan.com/keywords/Flex+Bison+Using+flex+on+OSX+%E5%9C%A8mac%E4%B8%8A%E4%BD%BF%E7%94%A8Flex.html

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注