编译原理——赋值语句与简单表达式(七)

原创 2012年03月31日 09:28:08

GoTo:

package per.eyuan.util;

public class GoTo {
	/*
	 * SLR的goto表
	 * 接受传递过来的状态和非终结符,
	 * 返回Goto表中对应的转向。
	 */
	private String goTo[][]=new String[15][3];
	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[2][0]="3";
		goTo[2][1]="4";
		goTo[2][2]="5";
		goTo[6][0]="11";
		goTo[6][1]="4";
		goTo[6][2]="5";
		goTo[9][1]="12";
		goTo[9][2]="5";
		goTo[10][2]="13";
	}
	public void getCol(){
		//获取终结符对应的列值
		if(vn.equals("E"))
			col=0;
		else if(vn.equals("T"))
			col=1;
		else if(vn.equals("F"))
			col=2;
	}
	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];
	}

}


 

编译原理——赋值语句和简单表达式(十三)

二元式。 TwoItem.java: package per.eyuan.util; public class TwoItem { String category;//类别id,num St...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月31日 09:29
  • 268

编译原理——赋值语句和简单表达式(三)

初始化标志符表和常数表。 Initialise.java: package per.eyuan.compile; import per.eyuan.util.ConstantTable; ...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月30日 22:36
  • 280

编译原理——赋值语句与简单表达式(五)

语法。 Syntax.java: package per.eyuan.compile; import per.eyuan.util.Action; import per.eyuan.uti...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月30日 22:39
  • 374

编译原理——赋值语句与简单表达式(八)

标识符。 Identifier.java: package per.eyuan.util; public class Identifier { int index;//eg. 0,1 begi...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月31日 09:28
  • 286

编译原理——赋值语句与简单表达式(六)

Action表。 Action.java: package per.eyuan.util; public class Action { /* * SLR的action表,接受传递过来的状态...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月31日 09:27
  • 237

编译原理——赋值语句与简单表达式(十一)

常数表。 ConstantTable.java: package per.eyuan.util; public class ConstantTable { Constant table[]=n...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月31日 09:29
  • 234

编译原理实验:miniC语言编译器

一个C语言的词法语法分析程序。
  • kydkong
  • kydkong
  • 2015年06月01日 15:07
  • 1218

编译原理——赋值语句和简单表达式(九)

标识符表。 IdentifierTable.java: package per.eyuan.util; public class IdentifierTable { Identifier ta...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月31日 09:28
  • 311

编译原理——赋值语句和简单表达式(二)

IO.java: package per.eyuan.compile; import java.io.File; import java.io.IOException; import ja...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月30日 22:35
  • 197

编译原理——赋值语句和简单表达式(十五)

二元式栈。 TwoItemStack.java: package per.eyuan.util; public class TwoItemStack { private TwoItem tis...
  • EYUANatQQdotCOM
  • EYUANatQQdotCOM
  • 2012年03月31日 09:29
  • 323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译原理——赋值语句与简单表达式(七)
举报原因:
原因补充:

(最多只允许输入30个字)