- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理实验2–编写一个简单的FLEX脚本并编译运行
实验时间: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 stdio.h
#include stdlib.h
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
文档评论(0)