包下载测试;
import java.util.Stack;
public class analyze {
//加入同步符号的LL(1)分析表
private String [] [] analysisTable = new String [] [] {
{“TZ”,“”,“”,“TZ”,“synch”, “synch”},
{“”,“+ TZ”,“”,“”,“ε”,“ε”},{“FY”,“synch”,“”,“FY”,“synch”,“ synch“},
{”“,”ε“,”* FY“,”“,”ε“,”ε“},{”i“,”synch“,”synch“,”(E)“,”synch“ “,”synch“}};
//存储终结符
private String [] VT = new String [] {“i”, “+”,“*”,“(”,“)”,“#”};
//存储非终结符
private String [] VN = new String [] {“E”,“Z”,“T”,“Y”,“F”};
//输入串
private StringBuilder strToken;
//分析栈
private Stack <String> stack = new Stack <String>();
// a保存从输入串中读取的一个输入符号,当前符号
private String a = null;
// X中保存stack栈顶符号
private String X = null;
// flag标志预测分析是否成功
private boolean flag = true;
//记录输入串中当前字符的位置
private int cur = 0;
//记录步数
private int count = 0;
public analyze(StringBuilder strToken){
this.strToken = strToken;
在里面();
totalControlProgram();
的printf&
编译原理——LL1语法分析算法
最新推荐文章于 2024-03-11 22:52:35 发布
该博客主要介绍了LL1语法分析算法,包括分析表的构建和解析过程。通过一个具体的例子展示了如何使用LL1分析算法对输入字符串进行分析,并提供了相应的Java实现。
摘要由CSDN通过智能技术生成