编译原理——变量声明语句(六)

来源:互联网 发布:快易数据恢复账号密码 编辑:程序博客网 时间:2024/05/17 02:16

GoTo表。

代码:

GoTo.java

package per.eyuan.util;public class GoTo {/* * SLR的goto表 * 接受传递过来的状态和非终结符, * 返回Goto表中对应的转向。 */private String goTo[][]=new String[10][2];String statu;//状态String vn;//非终结符int rol;//行,goto表中的行,代表状态,int col;//列,goto表中的列,代表非终结符,顺序为0"S",1"D"public GoTo() {super();init();}public void init(){for(int i=0;i<goTo.length;i++){for(int j=0;j<goTo[i].length;j++)goTo[i][j]=new String("err");}goTo[0][0]="1";goTo[0][1]="2";}public void getCol(){//获取终结符对应的列值if(vn=="S")col=0;else if(vn=="D")col=1;}public void getRol(){//获取状态对应的行值rol=Integer.parseInt(statu);}public void setTable(String s,String v){//Syntax调用该函数,传递状态和终结符this.statu=s;this.vn=v;this.getCol();this.getRol();}public String getGoTo(){//Syntax调用该函数,获取转向return this.goTo[rol][col];}}