资源简介
编译原理课程设计,开发的一款基于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课程设计——学生评教系统
- 基于java的社团信息管理系统
- jsp基本javabean技术的网络书店系统毕业
- 传智播客 黑马java第32期百度云
- java JDK1.8 -1.9API 官方原版中文文档 高
- JavaDesign.rar
- JAVA基于ssh租车管理系统
- 《图解Java多线程设计模式》PDF和《图
- java1.8 API 官方帮助文档jdk-8u151-docs-a
- Swing实现的QQ最终版
- java联网翻翻乐
- Java程序性能优化
- JAVA_API_1.7中文最新、最全.chm.7z
- Java小游戏鱼吃鱼,误闯太空,卡牌
- 算法java版
- 任小龙java基础的Excel笔记完整版
- 基于JavaWeb技术的旅游网站的设计与实
- java仿QQ功能实现
- 基于ssm汽车租赁租车行系统javaweb.zi
- Java核心技术第11版卷2 pdf格式
- java8高级应用与开发课件及案例代码
- commons Daemon+Procrun将java程序安装为wi
- JAVA餐饮管理系统毕业设计程序
- java开发1200
- V免签 个人开发者免签约收款解决方案
- java黑马笔记.rar
- 完整的java论坛系统
- javaReport.jar包
- 电力设备管理系统 毕业设计 java
- java源码-进销存财务一体化解压密码:
评论
共有 条评论