📄 新建 文本文档 (2).txt
字号:
import javax.swing.JOptionPane;
public class Ll1wenfafenxi {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
Fenxi zifuch = new Fenxi();
zifuch.Fenxigouzao();
long endtime = System.currentTimeMillis();
String out = "%%%%程序总用时间为:" + (endtime - startTime) + "毫秒%%%";
JOptionPane.showMessageDialog(null, out, "张永发--LL1文法实验",
JOptionPane.INFORMATION_MESSAGE);
}
}
class Fenxi {
String[][] M = { { "0", "0", "0", "A", "A", "0" },
{ "0", "0", "0", "BW", "BW", "0" },
{ "iBW", "0", "ε", "0", "0", "ε" },
{ "0", "0", "0", "CX", "CX", "0" },
{ "ε", "+CX", "ε", "0", "0", "ε" },
{ "0", "0", "0", "(", ")A*", "0" } };/*W,X分别代表A'和B'*/
String s1 = JOptionPane.showInputDialog(null, "输入待检查的字符串,以#结束", "张永发--LL1文法实验 ",
JOptionPane.QUESTION_MESSAGE);
char str[] = s1.toCharArray();
String Vt = new String("i+*)(#");
String Str2 = "#S";
StringBuffer S = new StringBuffer(Str2);
int j = 0;
public void Fenxigouzao() {
char ch = str[j];
if (Vt.indexOf((int) S.charAt(S.length() - 1)) >= 0) {
if (S.charAt(S.length() - 1) == ch) {
if (S.charAt(S.length() - 1) == '#') {
JOptionPane.showMessageDialog(null, "恭喜!!!结果是匹配的", "张永发--LL1文法实验",
JOptionPane.INFORMATION_MESSAGE);
return;
}
else {
S = S.deleteCharAt(S.length() - 1);
j++;
Fenxigouzao();
}
} else
JOptionPane.showMessageDialog(null, "SORRY!!这个字符串不匹配", "张永发--LL1文法实验",
JOptionPane.INFORMATION_MESSAGE);
} else {//下面这一段可以使用SWITCH
int m = 0, n = 0;
if (S.charAt(S.length() - 1) == 'S')
m = 0;
else if (S.charAt(S.length() - 1) == 'A')
m = 1;
else if (S.charAt(S.length() - 1) == 'W')
m = 2;
else if (S.charAt(S.length() - 1) == 'B')
m = 3;
else if (S.charAt(S.length() - 1) == 'X')
m = 4;
else
m = 5;
if (ch == 'i')
n = 0;
else if (ch == '+')
n = 1;
else if (ch == '*')
n = 2;
else if (ch == '(')
n = 3;
else if (ch == ')')
n = 4;
else
n = 5;
if (M[m][n] != "0") {
S = S.deleteCharAt(S.length() - 1);
if (M[m][n] != "ε") {
for (int k = M[m][n].length() - 1; k >= 0; k--) {
S = S.append(M[m][n].charAt(k));/*用M[m][n]=XXXX替换栈顶*/
}
}
Fenxigouzao();
} else
JOptionPane.showMessageDialog(null, "SORRY!!这个字符串不匹配", "张永发--LL1文法实验",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -