下载此文档

太原理工大学编译原理实验课件.doc


文档分类:高等教育 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
太原理工大学编译原理实验课件.doc本科实验报告课程名称:编译原理实验项目:无符号数的词法分析程序(实验一)基本程序设计(实验二)实验地点:致远楼303专业班级:软件14XX学号:学生姓名:指导教师:冯秀芳2017年6月27日1一、。、巩固所学知识并加深理解。。二、实验内容和原理实验一、无符号数的词法分析程序(4学时)内容:掌握词法分析的基本思想,并用高级语言编写无符号数的词法分析程序。要求:从键盘上输入一串字符(包括字母、数字等),最后以“;”结束,编写程序识别出其中的无符号数。无符号数文法规则可定义如下:<无符号数>→<无符号实数>│<无符号整数><无符号实数>→<无符号整数>.<数字串>[E<比例因子>]│<无符号整数>E<比例因子><比例因子>→<有符号整数><有符号整数>→[+│-]<无符号整数><无符号整数>→<数字串><数字串>→<数字>{<数字>}<数字>→0123......9读无符号数的程序流程图见下图2取下一字符开始数字否出错N0=>w,p,jY1=>e数值=〉dYw*10+d=>wj+1=>j出错N数字否YY取下一字符数值=〉dw*10+d=>w数字否Y取下一字符NY是‘E’否Y数字否取下一字符N是‘.’否YN是‘-’否Y-1=>e是‘E’否NN是‘+’否Y取下一字符N退一字符数字否N出错‘整型’=〉CJ1Y数值=〉dp*10+d=>pNY取下一字符数字否N退一字符‘实型’=>CJ1W*10C*P-J=>+Java语言编程环境3四、:packagetext1;;;lassText1{/******@paramargs*/publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstubintp=0,w=0,w1=0,j=0,i=0,d=0,e=1;doublew2=0;Stringstr;("请输入一串字符以;结束:");BufferedReaderbuf=newBufferedReader(newInputStreamReader());str=();charm[]=newchar[100];for(i=0;i<();i++){m[i]=(i);}i=0;while(i<()){if(m[i]<48||m[i]>57){i++;}else{do{d=m[i]-48;w=w*10+d;j++;i++;}while(m[i]>=48&&m[i]<=57);//("chesi"+m[i]);if(m[i]!='.'){if(m[i]!='E'){("整型数为:"+w);j=0;w=0;}else{i++;if(m[i]=='-'){e=-1;i++;if(m[i]>=48&&m[i]<=57){do{4d=m[i]-48;p=p*10+d;i++;}while(m[i]>=48&&m[i]<=57);if(j>1)w2=w/((,j-1));("实型数为:"+w2+"*10"+""+(e*(p-j+1)));j=0;w2=0;w=0;p=0;}("您输入有误!");}elseif(m[i]=='+'){i++;if(m[i]>=48&&m[i]<=57){do{d=m[i]-48;p=p*10+d;i++;}while(m[i]>=48&&m[i]<=57);if(j>1)w2=w/((,j-1));("实型数为:"+w2+"*10"+""+(e*(p+j-1)));j=0;w2=0;w=0;p=0;}("您输入有误!");}else{if(m[i]>=48&&m[i]<=57){do{d=m[i]-48;p=p*10+d;i++;}while(m[i]>=48&&m[i]<=57);if(j>1)w2=w/((,j-1));("实型数为:"+w2+"*10"+""+(e*(p+j-1)));j=0;w2=0;w=0

太原理工大学编译原理实验课件 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人412702457
  • 文件大小1.59 MB
  • 时间2019-11-24
最近更新