- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理实验一╲t 词法分析
实验一 词法分析
一、实验目的:
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。
二、实验内容:
如源程序为C语言。输入如下一段:
main()
{
int a=-5,b=4,j;
if(a=b)
j=a-b;
else j=b-a;
}
要求输出如图:
(2,”main”) (5,”(”) (5,”)”)
(5,”{”) (1,”int”) (2,”a”)
(4,”=”) (3,”-5”) (5,”,”)
(2,”b”) (4,”=”) (3,”4”)
(5,”,”) (2,”j”) (5,”;”)
(1,”if”) (5,”(”) (2,”a”)
(4,”=”) (2,”b”) (5,”)”)
(2,”j”) (4,”=”) (2,”a”)
(4,”-”) (2,”b”) (5,”;”)
(1,”else”) (2,”j”) (4,”=”)
(2,”b”) (4,”-”) (2,”a”)
(5,”;”) (5,”}”)
在示例程序的基础上,增加对自加、自减、正负号的判断。
三、源程序:
#includeiostream
using namespace std;
FILE *fp;
char cbuffer;
char *key[8]={if,else,for,while,do,return,break,continue};
int atype,id=4;
int search(char searchchar[ ],int wordtype) /*判断单词是保留字还是标识符*/
{
int i=0;
int p;
switch (wordtype){
case 1:for (i=0;i=7;i++){
if (strcmp(key[i],searchchar)==0)
{ p=i+1; break; } /*是保留字则p为非0且不重复的整数*/
else p=0; /*不是保留字则用于返回的p=0*/
}
return(p);
}
}
char alphaprocess(char buffer)
{ int atype; /*保留字数组中的位置*/
int i=-1;
char alphatp[20];
while ((isalpha(buffer))||(isdigit(buffer))||buffer==_){
alphatp[++i]=buffer;
buffer=fgetc(fp);
} /*读一个完整的单词放入alphatp数组中*/
alphatp[i+1]=\0;
atype=search(alphatp,1);/*对此单词调用search函数判断类型*/
if(atype!=0)
{ printf(%s, (1,%d)\n,alphatp,atype-1); id=1; }
else
{ printf((%s ,2)\n,alphatp); id=2; }
return buffer;
}
char digitprocess(char buffer){
int i=-1;
char digittp[20];
while ((isdigit(buffer))){
digittp[++i]=buffer;
buffer=fgetc(fp);
}
digittp[i+1]=\0;
printf((%s ,3)\n,digittp);
id=3;
return(buffer); }
char otherprocess(char buffer){
char ch[20];
ch[0]=buffer;
ch[1]=\0;
if(ch[0]==,||ch[0]==;||ch[0]=={||ch[0]==}||ch[0]==(||ch[0]==))
{ printf((%s ,5)\n,ch);
您可能关注的文档
- 程部配备工具计划表.doc
- 税收征管法模拟考试题.doc
- 稻草人-附录.doc
- 究性学习之梦的解析案例.doc
- 究院章程范本.doc
- 空压机洗井.doc
- 窝窝团 见习报告.doc
- 窗收口施工技术指导手册.doc
- 税务稽查应对与企业风险自查-刘玉章.ppt
- 空间限定 建筑学.ppt
- 深度解析(2026)《ISO 22002-12025食品安全前提方案—第1部分:食品制造》.pptx
- 深度解析(2026)《ISO 22002-52025食品安全前提方案—第5部分:运输和储存》.pptx
- 深度解析(2026)《ISO 22002-42025 食品安全前提方案 — 第4部分:食品包装制造》.pptx
- 徒步活动策划方案.doc
- 深度解析(2026)《ISO 22002-62025食品安全前提方案—第6部分:饲料及动物食品生产》.pptx
- 2026年新版郯城期末真题卷.doc
- 深度解析(2026)《ISO 22476-72012岩土工程勘察与测试 — 现场测试 — 第7部分:钻孔千斤顶试验》.pptx
- 深度解析(2026)《ISO 22090-22014 船舶与海洋技术 — 航向传送装置(THD) — 第2部分:地磁原理》.pptx
- 深度解析(2026)《ISO 23584-22012 光学和光子学 — 参考字典规范 — 第 2 部分:类与特性定义》:构建智能制造数据基石的专家视角与未来展望.pptx
- 深度解析(2026)《ISO 22932-92025 Mining — Vocabulary — Part 9 Drainage》:构建未来矿山“水脉”治理与可持续发展的新语言体系.pptx
最近下载
- 公安机关刑事案件办案流程全解析.pptx VIP
- 默纳克7000学习资料.pdf VIP
- 大学PLC课程设计 -自动旋转检测的PLC控制.docx VIP
- 图解《汉字演变五百例1—100》 .pdf VIP
- 2025农产品产地冷链集配中心建设规范.docx VIP
- 乐高-拼砌说明书71808, 凯的火系元素机甲, LEGO® NINJAGO®.pdf VIP
- 北京市东城区2022~2023八年级初二上学期期末数学试卷+答案.pdf VIP
- 国开(电大)《文论专题》形考作业1-4参考答案.pdf VIP
- 2023年临床营养支持理论考试试题及答案 .pdf VIP
- FXN3C型4400马力交流传动货运内燃机车介绍.pptx VIP
原创力文档


文档评论(0)