免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LY/T 1180-2025脲醛预缩液
- 【案例】iEMS助推工厂减碳管理实现企业节能降耗
- 员工自愿出院协议书
- 业主保安恋爱协议书
- 维语高考考试题目及答案
- 2026年颞叶癫痫规范化诊疗试题及答案(神经内科版)
- 通化市辅警招聘考试题及答案
- 云计算阿里云ECS配置题库及答案
- 医学影像CT题库及答案
- 针灸推拿试题及答案
- 2025年中国中医药出版社招聘笔试参考题库含答案解析
- 2025中级消防设施操作员作业考试题及答案(1000题)
- 申请建房报告范文
- 高速铁路供电安全检测监测系统(6C系统)总体技术规范
- 人社部发布:职称评审监管暂行办法全解读
- L6562PFC设计参数自动计算电子表格表格
- 药品生产管理-《药品生产质量管理规范》(药事管理课件)
- 财政与税收第七版微课版王晓光课后参考答案
- 钢结构工程投标方案(技术方案)
- 《认识人民币》教学课件(人教版小学数学一年级下册)
- T-CI 284-2024 手卡指压式星状神经节埋线技术操作规范
评论
0/150
提交评论