欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    编译原理词法分析器实验报告(共6页).doc

    • 资源ID:6776633       资源大小:605.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译原理词法分析器实验报告(共6页).doc

    精选优质文档-倾情为你奉上编 译 原 理实验报告 词法分析器 院系: 班级: 姓名: 学号:词法分析器实验报告一、实验目的:设计一个词法分析程序,理解词法分析器实现的原理,掌握程序设计语言中的各类单词的词法分析方法,加深对词法分析原理的理解。二、实验原理:词法分析是从左向右扫描每行源程序的符号,拼成单词,换成统一的二元式 (单词种别码,单词符号的属性值)表示。对给定的程序通过词法分析器识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示,本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示)三、实验说明:(1)关键字:"begin","end","if","then","else","while","write","read","do", "call","const","char","until","procedure","repeat"(2)运算符:"+","-","*","/","="(3)界符:"","","","","",",",".","(",")",":"(4)其他标记 如字符串,表示以字母开头的标识符(5)空格、回车、换行符跳过(6)运行结果在屏幕上以如下格式显示:1 $无符号整数begin $关键字 if $关键字 + $运算符 ; $界符 a $普通标识符 /“$“为美元符号,不是大写字母S 测试功能时,可以多次设置包含不同字符,关键字的待解析文件,但要保证输入文件和后缀名时准确无误,仔细察看运行结果,检测该分析器的分析结果是否正确四、源代码:#include <iostream>#include<string>using namespace std;#define MAX 22 char ch =' 'string key15="begin","end","if","then","else","while","write","read","do", "call","const","char","until","procedure","repeat"int Iskey(string c) /关键字判断 int i; for(i=0;i<MAX;i+) if(keyi.compare(c)=0) return 1; return 0;int IsLetter(char c) /判断是否为字母 if(c<='z')&&(c>='a')|(c<='Z')&&(c>='A') return 1; else return 0;int IsDigit(char c) /判断是否为数字 if(c>='0'&&c<='9') return 1; else return 0;void analyse(FILE *fpin) string arr="" while(ch=fgetc(fpin)!=EOF) arr="" if(ch=' '|ch='t'|ch='n') else if(IsLetter(ch) while(IsLetter(ch)|IsDigit(ch) if(ch<='Z')&&(ch>='A') ch=ch+32; arr=arr+ch; ch=fgetc(fpin); fseek(fpin,-1L,SEEK_CUR); if (Iskey(arr)cout<<arr<<"t$关键字"<<endl; else cout<<arr<<"t$普通标识符"<<endl; else if(IsDigit(ch) while(IsDigit(ch)|ch='.'&&IsDigit(fgetc(fpin) arr=arr+ch; ch=fgetc(fpin); fseek(fpin,-1L,SEEK_CUR); cout<<arr<<"t$无符号实数"<<endl; else switch(ch) case'+': case'-' : case'*' : case'=' : case'/' :cout<<ch<<"t$运算符"<<endl;break; case'(' : case')' : case'' : case'' : case'' : case'.' : case',' : case'' : case'' :cout<<ch<<"t$界符"<<endl;break; case':' :ch=fgetc(fpin); if(ch='=') cout<<":="<<"t$运算符"<<endl; else cout<<"="<<"t$运算符"<<endl; fseek(fpin,-1L,SEEK_CUR); break;case'>' :ch=fgetc(fpin); if(ch='=') cout<<">="<<"t$运算符"<<endl; if(ch='>')cout<<">>"<<"t$输入控制符"<<endl; else cout<<">"<<"t$运算符"<<endl; fseek(fpin,-1L,SEEK_CUR); break; case'<' :ch=fgetc(fpin); if(ch='=')cout<<"<="<<"t$运算符"<<endl; else if(ch='<')cout<<"<<"<<"t$输出控制符"<<endl; else if(ch='>') cout<<"<>"<<"t$运算符"<<endl; elsecout<<"<"<<"t$运算符"<<endl; fseek(fpin,-1L,SEEK_CUR); break; default : cout<<ch<<"t$无法识别字符"<<endl; void main() char in_fn30; FILE * fpin; cout<<"请输入源文件名(包括路径和后缀名):" for(;) cin>>in_fn; if(fpin=fopen(in_fn,"r")!=NULL) break; else cout<<"文件路径错误!请输入源文件名(包括路径和后缀名):" cout<<"n*分析如下*"<<endl; analyse(fpin); fclose(fpin); cout<<endl; cout<<"按任意键结束"<<endl; int a; cin>>a;运行结果截图:输入:输出: 生成的单词表目标文件:专心-专注-专业

    注意事项

    本文(编译原理词法分析器实验报告(共6页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开