资源简介
java实现的语法分析器,包括词法分析
语法分析采用自顶向下,递归下降的方法
代码片段和文件信息
import java.io.*;
import java.util.*;
public class cifa {
/**
* @param args
*/
static int code;
static String value;
static int index;
static StringBuilder sb;
static String s;
static char ch;
static String[] key ={“program““begin““end““var““integer““if““then““else““do““while“};
static int linenum;
static boolean isLetter(char ch){
return ((ch>=‘a‘)&&(ch<=‘z‘))||((ch>=‘A‘)&&(ch<=‘Z‘));
}
static boolean isDigit(char ch){
return (ch>=‘0‘)&&(ch<=‘9‘);
}
static boolean isBC(char ch){
return (ch==‘ ‘)||(ch==9);
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new FileReader(“in.txt“));
PrintWriter out = new PrintWriter(new BufferedWriter (new FileWriter(“out.txt“)));
linenum=1;
while((s=in.readLine())!=null){
index=0;
while(index sb = new StringBuilder();
ch = s.charAt(index++);
while(isBC(ch)){
if(index ch = s.charAt(index++);
}else {
index++;
break;
}
}
if(isLetter(ch)){
while(isLetter(ch)||isDigit(ch)){
sb.append(ch);
//
if(index ch = s.charAt(index++);
}else {
index++;
break;
}
}
index--;
code=0;
String temp=sb.toString();
for(int i=0;i<10;i++){
if(key[i].equals(temp)){
code=i+1;
value=“__“;
}
}
if(code==0){
out.println(“(11“ +sb + “)“);
}else{
out.println(“(“+ code +““ +value + “)“);
}
}
else if(isDigit(ch)){
while(isDigit(ch)){
sb.append(ch);
//
ch=s.charAt(index++);
}
index--;
out.println(“(12“ +sb + “)“);
}else if(ch==‘+‘){out.println(“(13__)“);}
else if(ch==‘-‘){out.println(“(14__)“);}
else if(ch==‘(‘){out.println(“(15__)“);}
else if(ch==‘)‘){out.println(“(16__)“);}
else if(ch==‘=‘){out.println(“(17__)“);}
else if(ch==‘>‘){out.println(“(18__)“);}
else if(ch==‘<‘){out.println(“(19__)“);}
else if(ch==‘;‘){out.println(“(20__)“);}
else if(ch==‘‘){out.println(“(21__)“);}
else if(ch==‘:‘){
if(s.charAt(index++)==‘=‘){
out.println(“(23__)“);
}
else{
index--;
out.println(“(22__)“);
}
}else if(ch==‘*‘){out.println(“(24__)“);}
else if(ch==‘/‘){out.println(“(25__)“);}
}
}
in.close();
out.close();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2009-05-25 19:54 bianyi\.classpath
文件 382 2009-05-25 19:54 bianyi\.project
文件 3300 2009-05-25 20:16 bianyi\bin\cifa.class
文件 3251 2009-05-25 21:25 bianyi\bin\yufatest.class
文件 30 2009-05-25 21:24 bianyi\in.txt
文件 134 2009-05-25 21:24 bianyi\out.txt
文件 2582 2009-05-25 20:16 bianyi\src\cifa.java
文件 3145 2009-05-25 21:25 bianyi\src\yufatest.java
文件 0 2009-05-25 21:25 bianyi\yufaout.txt
目录 0 2009-05-26 14:53 bianyi\bin
目录 0 2009-05-26 14:53 bianyi\src
目录 0 2009-05-26 14:53 bianyi
----------- --------- ---------- ----- ----
13056 12
- 上一篇:java 栈的实现和应用
- 下一篇:java jdk-11.0.1 64位 绿色版
相关资源
- java jdk-11.0.1 64位 绿色版
- java 栈的实现和应用
- java管理系统飞机订票源代码
- 计算机网络大作业_CSMA-CD协议退避算法
- (购买的_慕课网)java设计模式精讲
- java实现自动阅卷系统
- java俄罗斯方块源代码169448
- javaweb音乐网站
- jsp30个项目,适合初学者
- 基于内容的图像检索Java实现相当易懂
- java web入门经典书中光盘中的源码
- Java 网上招聘系统的设计与实现源码
- JAVA加密与解密的艺术第2版(良心保证
- 基于ssm的问卷调查系统
- 数据库课设学生宿舍管理系统源码j
- java swing mysql实现的酒店管理系统项目
- jdk8的完整压缩包,不是exe执行文件,
- 高拍仪SDKC#JAVAHTMLWINFORM等多语言
- java程序设计教程PDF雍俊海+教程+源码
- 二级java无忧考试软件
- Android GDAL 2.1.4.zip
- Java编程思想(第4版)清晰PDF中文完整
- 图解数据结构-使用Java高清版本
- java+mysql新手数据库项目推荐,DNF装备
- ssm+mysql实现的Java web酒店管理项目源码
- Java做的淘宝客导购站,带手机端wap十
- Openjdk9源码
- apache-jmeter-5.1.1(Requires Java 8+).zip
- JavaSE1.8jdk中文文档.chm
- JAVA开发实战经典.pdf
评论
共有 条评论