免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 实验源码import java.io.FileReader;import java.io.IOException;/* * 此程序0-50为关键字 * 51为标识符 * 52为数字 * 53-61为分隔符 * 62-75为运算符 * 76为字符常量 */public class wordAnalyse static char strbuf = new char500;/定义一个数组,用以存放从文件读取来的字符串 int keywordIndex; /取关键字的类号 /定义50个关键字 String keyWord = abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile, while; public static void main(String args) throws IOException wordAnalyse wa = new wordAnalyse();wa.readFile(d:/a.txt);System.out.println(*用JAVA实现的java语言的词法分析器*);System.out.println(*The Result:*+n);wa.run();System.out.println(n+*Complete !*); /从文件中把字符串读取到一个字符数组中private void readFile(String url) throws IOExceptionint ch,i=0;FileReader fr = new FileReader(url);while( (ch=fr.read()!=-1)strbufi+=(char)ch;/判断是否为字母private boolean isLetter(char ch) if(a=ch&ch=z|A=ch&ch=Z)return true;else return false;/判断是否为数字private boolean isDigit(char ch) if(0= ch&ch=9)return true;else return false; /分析整个strbuf里的字符串private void run()StringBuffer buf = new StringBuffer(); /定义一个缓冲区for(int i=0; istrbuf.length;i+)/清除空格 制表符 换行符等字符if(strbufi= |strbufi=t|strbufi=n)i+;if(isLetter(strbufi) int k;buf.delete(0, buf.length();while(isLetter(strbufi)|isDigit(strbufi) buf.append(strbufi); i+;i-; /查找buf里面的字符串是否为关键字for(k =0; k=50)System.out.println(buf + tt +51); if(isDigit(strbufi) buf.delete(0, buf.length(); while(isDigit(strbufi) buf.append(strbufi); i+; i-; System.out.println(buf + tt +52); switch(char)strbufi)case,:System.out.println(strbufi + tt + 53);break;case;:System.out.println(strbufi + tt + 54);break;case(:System.out.println(strbufi + tt + 55);break;case):System.out.println(strbufi + tt + 56);break;case:System.out.println(strbufi + tt + 57);break;case:System.out.println(strbufi + tt + 58);break;case:System.out.println(strbufi + tt + 59);break;case:System.out.println(strbufi + tt + 60);break;case:System.out.println(strbufi + tt + 61);break;case.:System.out.println(strbufi + tt + 62);break;case+:buf.delete(0, buf.length();buf.append(strbufi);i+;if(strbufi=)buf.append(strbufi);System.out.println(buf + tt + 63); elseSystem.out.println(buf + tt + 64); i+;break;case-:buf.delete(0, buf.length();buf.append(strbufi);i+;if(strbufi=)buf.append(strbufi);System.out.println(buf + tt + 65); elseSystem.out.println(buf + tt + 66); i+;break;case*:buf.delete(0, buf.length();buf.append(strbufi);i+;if(strbufi=)buf.append(strbufi);System.out.println(buf + tt + 67); elseSystem.out.println(buf + tt + 68); i+;break;case/:buf.delete(0, buf.length();buf.append(strbufi);i+;if(strbufi=)buf.append(strbufi);System.out.println(buf + tt + 69); elseSystem.out.println(buf + tt + 70); i+;break;case:buf.delete(0, buf.length();buf.append(strbufi);i+;if(strbufi=)buf.append(strbufi);System.out.println(buf + tt + 71); elseSystem.out.println(buf + tt + 72); i+;break;case:buf.delete(0, buf.length();buf.append(strbufi);i+;if(strbufi=)buf.append(strbufi);System.out.println(buf + tt + 73); elseSystem.out.println(buf + tt + 74); i+;break;case:System.out.println(strbufi + tt + 75);i+;if(isLetter(strbufi)|isDi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026电缆桥架施工检查表与技术交底记录
- 商业数据可视化分析:Excel+Power BI 课件 项目一 数据可视化基础知识
- AI语义摘要技术
- 医学健康宣教素材库
- 空气压缩机维护保养检查表
- 法律职业资格客观题真题回顾与解析(完整版)
- 法律职业资格客观题易错题(含解析)
- 项目管理方法与工具应用指南
- 勤奋学习树立理想:开启智慧之门的小学主题班会课件
- 飞花令里品国学:小学主题班会课件赴诗词之约
- 2026年景洪市教育体育局公开选调教师(31人)参考题库及参考答案详解(新)
- 湖南省湘潭市2025-2026学年高一下学期期末考试物理自编试卷(人教版)(解析版)
- 2026江苏南通市通州区消防救援局第二批招聘镇(街道)基层消防网格员2人备考题库带答案详解
- 中国白塞病诊疗指南(2025版)
- 2026棉花大幅增殖技术创新遗传育种研究报告规划
- (HJ 166-2026)《土壤环境监测技术规范》培训课件
- 护理:护理安全管理与应急预案
- 2026年消防设施操作员(中级维保)真题题库附完整答案详解(全优)
- 2025共识声明:维生素D在代谢健康中的作用课件
- DB36-T 1406-2021 杉木人工林近自然更新造林技术规程
- GB/T 5783-2025紧固件六角头螺栓全螺纹
评论
0/150
提交评论