📄 ll_1.java
字号:
//notice :ε 不可见;E'用D代替;T'用R代替
//只可输入正确的式子,不然不能正常工作
import java.util.Stack;
public class LL_1 {
public static void main(String[] args) {
/*Stack<Character> mystack=new Stack<Character>();
String[][] analysistable=new String[5][6];
analysistable[0][0]="TD";
analysistable[0][3]="TD";
analysistable[1][1]="+TD";
analysistable[1][4]="";
analysistable[1][5]="";
analysistable[2][0]="FR";
analysistable[2][3]="FR";
analysistable[3][1]="";
analysistable[3][2]="*FR";
analysistable[3][4]="";
analysistable[3][5]="";//replace:reduce to ∈
analysistable[4][0]="i";
analysistable[4][3]="(E)";
Nonterminal E=new Nonterminal('E',0);
Nonterminal D=new Nonterminal('D',1);//replace E'
Nonterminal T=new Nonterminal('T',2);
Nonterminal R=new Nonterminal('R',3);//replace T'
Nonterminal F=new Nonterminal('F',4);
char[] inputsymbol=new char[6];
String output="";
inputsymbol[0]='i';
inputsymbol[1]='+';
inputsymbol[2]='*';
inputsymbol[3]='(';
inputsymbol[4]=')';
inputsymbol[5]='$';
String input="i+i*i$";
mystack.push('$');
mystack.push(E.symbol);
//System.out.print(mystack.get(0));
//System.out.print(mystack.toString()+"\n");
for(int i=0;i<input.length();i++) {
System.out.println(mystack.toString()+"\t"+input.substring(i)+"\t"+output);
output="";
if(mystack.peek()!=input.charAt(i)) {
char temp=mystack.pop();
char temp2=input.charAt(i);
String str=analysistable[LL_1.getseq(temp)][LL_1.getinputseq(temp2)];
for(int j=str.length()-1;j>=0;j--) {
mystack.push(str.charAt(j));
}
output=temp+"->"+str;
i=i-1;
}
else {
mystack.pop();
}
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}*/
}
public static int getseq(char ch) {
int temp=-1;
switch(ch) {
case 'E':
temp=0;
break;
case 'D':
temp=1;
break;
case 'T':
temp=2;
break;
case 'R':
temp=3;
break;
case 'F':
temp=4;
break;
}
return temp;
}
public static int getinputseq(char ch) {
int temp=-1;
switch(ch) {
case 'i':
temp=0;
break;
case '+':
temp=1;
break;
case '*':
temp=2;
break;
case '(':
temp=3;
break;
case ')':
temp=4;
break;
case '$':
temp=5;
break;
}
return temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -