经老师介绍,而且最近进行实验二(将正则表达式转换为DFA,然后转换为代码;想做一个类似于flex的软件)觉得flex很奇妙,输入一个正则表达式就能够输出对应的扫描程序,这也开始真正体现老师说的自动化。我一直对计算机的一个终极问题(“什么能够被有效地自动化”)很感兴趣,因此想先从flex开始对这方面有点感性的认识:
在网上搜索flex,安装flex,先下载flex(原本打算放上来的,但是考虑到版权的问题,还是不要了。需要的朋友,我可以发给你),然后按照默认的步骤逐步安装。
安装后,设置环境变量,将Path指向flex.exe所在的文件夹(本机上为:C:\Program Files\GnuWin32\bin,一般按默认方式安装后flex.exe都在该文件夹内),具体步骤:
→对“我的电脑”图标按右键→选择“属性”→选择“高级”→单击“环境变量”→在“系统变量”中查找Path项,并选择之→按“编辑”→在“变量值”的最后一项添加“;C:\Program Files\GnuWin32\bin”,按确定完成。
最近我是先从课本TINY语言开始,TINY语言的lex文件在源代码的LEX文件夹内
1. 在tiny.l的最后添加:
int yywrap()
{
return 1;
}
用来结束扫描
2. 在console上输入flex tiny.l,生成lex.yy.c,将其替换scan.c,编译链接生成tiny的编译器。
参考文献:
http://course.cugnc.com/bianyi/shiyan/CHAPTER/f1.htm
http://blog.csdn.net/litchh/archive/2004/07/14/40983.aspx
http://www.cnscn.org/read.php?tid-10862.html