📄 compiler.java
字号:
styleStack.add("L");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"L"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 27 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 28:
String st2 = (String)styleStr.get(index);
/**********L -->R 的规约 *****/
if(st2.equals("C")||st2.equals("type")||st2.equals("const")||st2.equals("if")||st2.equals("for")||st2.equals("repeat")||
st2.equals("while")||st2.equals("read")||st2.equals("write")||st2.equals("}")||st2.equals("return")){
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("L");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"L"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 28 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 29:
String st3 = (String)styleStr.get(index);
/**********L -->W 的规约 *****/
if(st3.equals("C")||st3.equals("type")||st3.equals("const")||st3.equals("if")||st3.equals("for")||st3.equals("repeat")||
st3.equals("while")||st3.equals("read")||st3.equals("write")||st3.equals("}")||st3.equals("return")){
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("L");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"L"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 29 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 30:
if(styleStr.get(index).equals("(")){
state = 45;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 30 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 31:
if(styleStr.get(index).equals("(")){
state = 46;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 31 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 32:
if(styleStr.get(index).equals("{")){
state = 47;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 32 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 33:
if(styleStr.get(index).equals("(")){
state = 48;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 33 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 34:
if(styleStr.get(index).equals("(")){
state = 49;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 34 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 35:
if(styleStr.get(index).equals("(")){
state = 50;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 35 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 36:
/********** Z --> type X;Z ********/
if(styleStr.get(index).equals(")")){//规约
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("Z");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"Z"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 36 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 37:
if(styleStr.get(index).equals("type")){
state = 5;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("@")){
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("P");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"P"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 37 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 38:
if(styleStr.get(index).equals("(")){
state = 54;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("C")){
state = 55;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("K")){
state = 56;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 38 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 39:
/**************** M --> AM ****************/
if(styleStr.get(index).equals("}")||styleStr.get(index).equals("return")){
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("M");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"M"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 39 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 40:
/**************** M --> BM ****************/
if(styleStr.get(index).equals("}")||styleStr.get(index).equals("return")){
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("M");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"M"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 40 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 41:
/**************** M --> OM ****************/
if(styleStr.get(index).equals("}")||styleStr.get(index).equals("return")){
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("M");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"M"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 41 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 42:
/***************************************/
if(styleStr.get(index).equals("(")){
state = 54;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("C")){
state = 55;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("K")){
state = 56;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 42 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 44:
if(styleStr.get(index).equals("C")){
state = 59;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 44 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 45:
if(styleStr.get(index).equals("(")){
state = 54;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("C")){
state = 55;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("K")){
state = 56;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 45 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 46:
if(styleStr.get(index).equals("C")){
state = 63;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 46 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 47:
if(styleStr.get(index).equals("}")||styleStr.get(index).equals("return")){//规约
/****************************/
/**********M --> 空的规约 *****/
/****************************/
styleStack.add("M");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"M"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else if(styleStr.get(index).equals("C")){
state = 22;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("type")){
state = 23;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("const")){
state = 24;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("if")){
state = 30;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("for")){
state = 31;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("repeat")){
state = 32;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("while")){
state = 33;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("read")){
state = 34;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("write")){
state = 35;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 47 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 48:
if(styleStr.get(index).equals("(")){
state = 54;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -