📄 compiler.java
字号:
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 48 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 49:
if(styleStr.get(index).equals("C")){
state = 66;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 49 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 50:
if(styleStr.get(index).equals("C")){
state = 67;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals(new String('"'+""))){
state = 68;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 50 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 51:
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.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 51 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 52:
if(styleStr.get(index).equals(";")){
state = 69;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("+")){
state = 117;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("-")){
state = 118;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 52 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 53:
String st4 = (String)styleStr.get(index);
if(styleStr.get(index).equals("*")){
state = 137;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("/")){
state = 138;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(st4.equals(";")||st4.equals("to")||st4.equals(")")||st4.equals("+")||st4.equals("-")||st4.equals(">")||st4.equals(">=")||
st4.equals("<")||st4.equals("<=")||st4.equals("==")||st4.equals("!=")||st4.equals("&&")||st4.equals("||")||programStr.get(index).equals("to")){
/****************************/
/********T --> V 的规约********/
/********或者 E-->V************/
/****************************/
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
/**************************************/
String t1 = (String)styleStr.get(index - 2);
String t2 = (String)styleStr.get(index);
if(t1.equals("=") && !t2.equals("*") && !t2.equals("/")){
styleStack.add("E");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"E"));
}else {
styleStack.add("T");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"T"));
}
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 53 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 54:
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 54 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 55:
String st5 = (String)styleStr.get(index);
if(st5.equals(";")||st5.equals("}")||st5.equals("+")||st5.equals("-")||st5.equals("*")||st5.equals("/")||st5.equals(">")||
st5.equals(">=")||st5.equals("<")||st5.equals("<=")||st5.equals("==")||st5.equals("!=")||st5.equals("&&")||st5.equals("||")||
st5.equals(")")||programStr.get(index).equals("to")){
/*********V --> K 规约*********/
/****************************/
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("V");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"V"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 56 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 56:
String st6 = (String)styleStr.get(index);
if(st6.equals(";")||st6.equals("}")||st6.equals("+")||st6.equals("-")||st6.equals("*")||st6.equals("/")||st6.equals(">")||
st6.equals(">=")||st6.equals("<")||st6.equals("<=")||st6.equals("==")||st6.equals("!=")||st6.equals("&&")||st6.equals("||")||
st6.equals(")")||programStr.get(index).equals("to")){
/*********V --> K 规约*********/
styleStack.remove(styleStack.size() - 1);
stateStack.remove(stateStack.size() - 1);
styleStack.add("V");
stateStack.add(""+gotoState(Integer.parseInt((String)stateStack.get(stateStack.size() - 1)) ,"V"));
state = Integer.parseInt(((String)stateStack.get(stateStack.size() - 1)));
}else{
jmp = false;
error_text.appendText(("Error info: case 56 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 57:
/***************************************/
if(styleStr.get(index).equals(";")){
state = 144;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("+")){
state = 117;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("-")){
state = 118;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 57 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 58:
if(styleStr.get(index).equals("=")){
state = 110;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("[")){
state = 111;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals(";")){
state = 143;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 58 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 59:
if(styleStr.get(index).equals("=")){
state = 70;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 59 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 60:
if(styleStr.get(index).equals(")")){
state = 71;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 60 " + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 61:
if(styleStr.get(index).equals(">")){
state = 119;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals(">=")){
state = 120;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("<")){
state = 121;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("<=")){
state = 122;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("==")){
state = 123;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("!=")){
state = 124;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("&&")){
state = 125;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("||")){
state = 126;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("+")){
state = 117;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else if(styleStr.get(index).equals("-")){
state = 118;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 61" + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 63:
if(styleStr.get(index).equals("=")){
state = 72;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 63" + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 64:
if(styleStr.get(index).equals("}")){
state = 73;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 64" + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 65:
if(styleStr.get(index).equals(")")){
state = 74;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 65" + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
case 66:
if(styleStr.get(index).equals(")")){
state = 75;
styleStack.add(styleStr.get(index));
stateStack.add(""+state);
index++;
}else{
jmp = false;
error_text.appendText(("Error info: case 66" + stateStack.get(stateStack.size() - 1) + " " + styleStack.get(styleStack.size() - 1)));
}
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -