资源简介
编译原理课程设计,开发的一款基于java的语法分析器,用到LL1文法

代码片段和文件信息
package hjzgg.analysistable;
import hjzgg.first.First;
import hjzgg.follow.Follow;
import hjzgg.tablenode.TableNode;
import hjzgg.treenode.TreeNode;
import java.util.ArrayList;
import java.util.linkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
import java.util.TreeMap;
import java.util.TreeSet;
public class AnalysisTable {
private final int noFinalCharacterCount = 100;
private MapstringToInt = new TreeMap();//分析表行 列 字母映射到数字
private MaptableRow = new TreeMap();//分析表 行列 数字 映射到字母
private MaptableCol = new TreeMap();
private String[][] table = new String[noFinalCharacterCount][];//分析表
private SetterminalCharacters = new TreeSet();//终结符集合
private Map> first = null;
private Map> follow = null;
private Map mp = null;
private int nodeCntRow = 0 nodeCntCol=0;
public static final int treeNodeCnt = 200;//树最多节点的个数
private int cntTreeNode = 0;
private ArrayList usedProduction = null;//预测分析中所用到的产生式
private int fatherNode;//treeGraphic搜素是的开始节点
private TreeNode[] treeGraphic = new TreeNode[treeNodeCnt];
private String[] usedProductionString = null;
private String[] inputString = null;
private String[] analysisStack = null;
private String[] synchString = null;
public String[] getSynchString(){
return synchString;
}
public String[] getAnalysisStack(){
return analysisStack;
}
public String[] getInputString(){
return inputString;
}
public String[] getUsedProductionString(){
return usedProductionString;
}
public Map getStringToInt(){
return stringToInt;
}
public Set getTerminalCharacters(){
return terminalCharacters;
}
public int getFatherNode(){
return fatherNode;
}
public TreeNode[] getTreeGraphic(){
return treeGraphic;
}
public AnalysisTable(Map> first
Map> follow Map mp) {
super();
this.first = first;
this.follow = follow;
this.mp = mp;
init();
}
private void init(){
for(String leftNode : mp.keySet()){
stringToInt.put(leftNode ++nodeCntRow);
tableRow.put(nodeCntRow leftNode);
String[] rightNodes = mp.get(leftNode);
for(int i=0; i for(int j=0; j if(!mp.containsKey(““+rightNodes[i].charAt(j)) && rightNodes[i].charAt(j)!=‘\‘‘ && rightNodes[i].charAt(j)!=‘$‘){//每一个终结符
if(!stringToInt.containsKey(““+rightNodes[i].charAt(j))){
stringToInt.put(““+rightNodes[i].charAt(j) ++nodeCntCol);
terminalCharacters.add(rightNodes[i].charAt(j));
tableCol.put(nodeCntCol ““+rightNodes[i].charAt(j));
}
}
}
}
stringToInt.put(“#“ ++nodeCntCol);
tableCol.put(node
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\analysistable\
文件 12316 2015-04-28 23:07 加入同步符号后的语法分析器\hjzgg\analysistable\AnalysisTable.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\analysistablefr
文件 12657 2015-04-28 22:36 加入同步符号后的语法分析器\hjzgg\analysistablefr
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\filter\
文件 836 2015-04-24 15:31 加入同步符号后的语法分析器\hjzgg\filter\MyFilter.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\first\
文件 2504 2015-04-24 12:52 加入同步符号后的语法分析器\hjzgg\first\First.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\follow\
文件 4996 2015-04-26 18:44 加入同步符号后的语法分析器\hjzgg\follow\Follow.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\grammatical\
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\grammatical\analysis\
文件 3101 2015-04-17 15:02 加入同步符号后的语法分析器\hjzgg\grammatical\analysis\MainGrammaticalAnalysis.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\tablenode\
文件 225 2015-04-24 13:03 加入同步符号后的语法分析器\hjzgg\tablenode\TableNode.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\treegraphic\
文件 5805 2015-04-24 12:47 加入同步符号后的语法分析器\hjzgg\treegraphic\TreeGraphic.java
目录 0 2015-04-28 23:11 加入同步符号后的语法分析器\hjzgg\treenode\
文件 593 2015-04-28 21:51 加入同步符号后的语法分析器\hjzgg\treenode\TreeNode.java
文件 40 2015-04-26 12:06 加入同步符号后的语法分析器\文本4.4.txt
文件 66 2015-04-24 19:13 加入同步符号后的语法分析器\文法.txt
文件 32 2015-04-26 10:31 加入同步符号后的语法分析器\文法4.1.txt
文件 68 2015-04-26 10:23 加入同步符号后的语法分析器\文法4.2.txt
文件 24 2015-04-26 11:00 加入同步符号后的语法分析器\文法4.3.1.txt
文件 25 2015-04-26 11:03 加入同步符号后的语法分析器\文法4.3.2.txt
文件 11 2015-04-26 12:14 加入同步符号后的语法分析器\文法4.4-语法.txt
文件 35132 2015-04-28 23:08 加入同步符号后的语法分析器\简单语法分析器.jar
文件 11 2015-04-25 22:42 加入同步符号后的语法分析器\语法.txt
文件 7 2015-04-28 22:38 加入同步符号后的语法分析器\错误语法1.txt
............此处省略1个文件信息
- 上一篇:基于java的社团信息管理系统
- 下一篇:java课程设计——学生评教系统
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论