编译原理词法分析实验报告.doc_第1页
编译原理词法分析实验报告.doc_第2页
编译原理词法分析实验报告.doc_第3页
编译原理词法分析实验报告.doc_第4页
编译原理词法分析实验报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机与信息工程学院实验报告计算机与信息工程学院实验报告姓 名 李迪学 号20092103399专 业计算机科学与技术班 级09蒙班联 系 电 同 组实验者实验室名 称信息楼403实 验日 期2011-10-20课 程名 称编译原理实 验 序 号实验一实 验项 目词法分析主 讲教 师王斯日古愣辅 导教 师王斯日古愣指 导教 师王斯日古愣实验心得:通过此次实验,让我了解到如何设计、编制并调试词法分析程序,加深对词法分析原理的理解;熟悉了构造词法分析程序的手工方式的相关原理,使用某种高级语言(例如C+语言)直接编写此法分析程序。另外,也让我重新熟悉了C+语言的相关内容,加深了对C+语言的用途的理解。学生签名:李迪 2011 年 10 月 20 日成绩评定及教师评语:成绩: 教师签名: 年 月 日注:硬件类实验报告请按附录1的格式填写;软件类实验报告请按附录2的格式填写。填写时应去掉红色的提示语。软件类实验报告一、 实验内容词法分析二、 实验目的及要求实验目的设计、编制并调式一个词法分析程序,加深对词法分析原理的理解。实验要求: 各种单词符号及对应的种别码:单词符号种别码单词符号种别码begin1:17if2:=18then320while421do523letter(letter|digit)*10=24digit digit*11=25+13;26-14(27*15)28/16#0三、 实验环境C语言环境四、 算法描述 词法分析主程序示意图:置初值调用扫描子程序输入串结束?输出单词二元组是否结束 词法分析程序流程图: 开始变量初始化是否文件结束?返回拼数Syn=11返回拼字符串是否是关键字?Syn为对应关键字的单词种别码Syn=10给不同的符号相同的 Syn 值报错是否数字字母是否、运算符,界符等其他 五、 源程序清单#includestdio.h#includestdlib.h#includestring.h#define _KEY_WORD_END waiting for your expandingtypedef structint typenum;char * word;WORD;char input255;char token255=;int p_input;int p_token;char ch;char * rwtab=begin,if,then,while,do,end,_KEY_WORD_END;WORD * scaner();void main()int over=1;WORD* oneword=new WORD;printf( 输入源程序 (以#结束):);scanf(%#s,input);p_input=0;printf(Your words:n%sn,input);while(overtypenumtypenum,oneword-word);over=oneword-typenum;printf(npress # to exit:);scanf(%#s,input);char m_getch()ch=inputp_input;p_input=p_input+1;return(ch);void getbc()while(ch= |ch=10)ch=inputp_input;p_input=p_input+1;void concat()tokenp_token=ch;p_token=p_token+1;tokenp_token=0;int letter()if(ch=a&ch=A&ch=0&chtypenum=10;myword-word= ;p_token=0;m_getch();getbc();if(letter()while(letter()|digit()concat();m_getch();retract();myword-typenum=reserve(); myword-word=token;return(myword);else if(digit()while(digit()concat();m_getch();retract();myword-typenum=20;myword-word=token;return(myword);else switch(ch)case=: m_getch(); if(ch=) myword-typenum=39; myword-word=; return(myword); retract(); myword-typenum=21; myword-word=; return(myword); break; case+: myword-typenum=22; myword-word=+; return(myword); break; case-: myword-typenum=23; myword-word=-; return(myword); break; case*: myword-typenum=24; myword-word=*; return(myword); break; case/: myword-typenum=25; myword-word=/; return(myword); break;case(: myword-typenum=26; myword-word=(; return(myword); break;case): myword-typenum=27; myword-word=); return(myword); break;case: myword-typenum=28; myword-word=; return(myword); break;case: myword-typenum=29; myword-word=; return(myword); break;case: myword-typenum=30; myword-word=; return(myword); break;case: myword-typenum=31; myword-word=; return(myword); break;case,: myword-typenum=32; myword-word=,; return(myword); break;case: myword-typenum=33; myword-word=:; return(myword); break;case;: myword-typenum=34; myword-word=; return(myword); break;case: m_getch(); if(ch=) myword-typenum=37; myword-word=; return(myword); retract(); myword-typenum=35; myword-word=; return(myword); break; casetypenum=38; myword-word=typenum=36; myword-word=typenum=40; myword-word=!=; return(myword); retract(); myword-typenum=-1; myword-word=ERROR; return(myword); break;case0: myword-typenum=1000; myword-word=OVER; ret

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论