资源简介

JAVA 编译原理 SLR(1)算法模拟器 包括实验报告

资源截图

代码片段和文件信息


/**
 * SLR.java
 */

package testSLR;

/**
 * SLR类,存放分析表和数据化后的归约语句以及将字符转化为分析表中的列索引的方法
 * @author 061150077
 *
 */

class SLR {


public SLR(){

}

private int[][] SLR_array ={  //分析表
{ 2  0  0  0  1  0 }
{ 0  0  0  99 0  0 }
{ 0  0  4  0  0  3 }
{ 0  5  0  -1 0  0 }
{ -3 -3 -3 -3 0  0 }
{ 0  0  6  0  0  0 }
{ -2 -2 -2 -2 0  0 }
};

public int getCode(int rowint column){ //返回对应的元素
return this.SLR_array[row][column];
}

public int transform(char ch){ //将字符转化为分析表中的列索引
int i = -1;
switch(ch){
case ‘r‘:i = 0;break;
case ‘‘:i = 1;break;
case ‘i‘:i = 2;break;
case ‘#‘:i = 3;break;
case ‘S‘:i = 4;break;
case ‘D‘:i = 5;break;
default:i = -1; //-1表示该字符为不合法字符,不存在于该文法中
}
return i;
}

public char reduceChar(int num){ //归约语句执行后返回的非终结符
char ch = 0;
switch(num){
case 1:ch = ‘S‘;break;
case 2:ch = ‘D‘;break;
case 3:ch = ‘D‘;
}
return ch;
}

public int reduceNum(int num){ //归约语句执行时该弹栈的次数,也就是该弹出几个元素
int i = 0;
switch(num){
case 1:i = 2;break;
case 2:i = 3;break;
case 3:i = 1;
}
return i;
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5912  2009-06-09 17:14  编译原理\SLR(1)模拟器.jar

     文件     165888  2009-06-16 16:47  编译原理\061150077颜杰.doc

     文件       2030  2009-06-09 16:20  编译原理\testSLR\SLRModel.java

     文件       1340  2009-06-09 16:20  编译原理\testSLR\SLR.java

     文件       1001  2009-06-09 16:20  编译原理\testSLR\SLRController.java

     文件       2091  2009-06-12 23:17  编译原理\testSLR\SLRJframe.java

     目录          0  2009-06-16 16:50  编译原理\testSLR

     目录          0  2009-06-11 01:00  编译原理

----------- ---------  ---------- -----  ----

               178262                    8


评论

共有 条评论