编译原理实验2-编写一个简单的FLEX脚本并编译运行.doc
文本预览下载声明
实验时间:200 年 月 日 实验小组:第 组
组长: 组员:
组员:
指导教师签名: 实验情况评定:
实验
实验目的:
通过实验掌握下列知识:
1、进一步熟悉Visual C++的基本操作;
2、进一步熟悉Visual C++ 6.0里Win32 Console Application工程的建立和相应的编程知识;
3、了解如何建立和编译Flex脚本文件;
5、了解如何通过Visual C++ 6.0编译Flex程序;
内容及步骤:
一、输入一个Flex脚本,编译并运行:
1、按实验一介绍的方法,建立一个Win32 Console Application并选择“An empty project”;
2、从选课系统里下载“Flex源代码及编译系统”;
3、将下载的RAR文件解压到D盘的某个文件夹,然后将解压的所有文件复制到D盘的文件夹“D:\Flex”里;
4、打开“附件- 记事本”,输入以下代码,并以文件名“DEMO1.L”保存到文件夹“D:\Flex”里:
% #include #include int nDigitNumber 0;
%
digit [0-9]
number digit +
%%
digit nDigitNumber++;
%%
main yylex ;
fprintf stderr, \n number of digits %d, nDigitNumber ;
return 0; 5、点击桌面左下角并运行“开始- 程序- 附件- 命令提示符”;
6、在DOS窗口中输入命令 1 D:
2 cd \Flex 与你存储Flex文件的文件夹名有关
3 flex DEMO1.L;
7、将D:Flex文件夹下的文件“emalloc.c”、“hash.c”、“LEXYY.C”、“libyywra.c”、“hash.h”、“types.h”和“DEMO1.L”全部复制到你的工程文件夹下;
8、运行VC并调入你建立的工程文件,然后点击左边的FileView,分别用鼠标右键点击Source Files和Header Files,并选择“Add Files to Folder”添加7步复制的c文件和h文件:
图1
9、在第8步添加的文件如下:
图2
10、点击“编译”菜单里的“重建全部”,或者点工具栏上的“!”运行;
注:Flex程序在DOS窗口里运行,词法分析程序是通过键盘输入文本信息,文本信息输入结束时,先按回车,再按Ctrl+Z即可结束文本输入;
实验报告要求:
记录错误信息、错误数量和警告数量,以及运行结果;
记录Flex脚本文件;
指出上面的Flex脚本中,其定义部分、规则部分和辅助程序 用户程序 部分各是什么?
规则部分定义了几个非终结符成分,各是什么?在下面的辅助程序部分用到了哪几个?
试给出各个非终结符的语义实现部分。
班级: 编译原理
3
显示全部