資源簡介
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\SLRJfr
?????目錄??????????0??2009-06-16?16:50??編譯原理\testSLR
?????目錄??????????0??2009-06-11?01:00??編譯原理
-----------?---------??----------?-----??----
???????????????178262????????????????????8
評論
共有 條評論