资源简介
对文法进行自动分析,生成用于LALR1语法分析器的状态转换表,加上框架代码,构造出LALR1语法分析程序

代码片段和文件信息
import java.util.*;
//针对lalr1文法的项目集的核的产生式
public class CoreExFormula {
public CoreExFormula() {
}
public String getLeft() {
return left;
}
public Vector getRight() {
return right;
}
public int getDot_index() {
return dot_index;
}
public int getIndex() {
return index;
}
public Hashtable getAhead() {
return ahead;
}
public void setLeft(String left) {
this.left = left;
}
public void setRight(Vector right) {
this.right = right;
}
public void setDot_index(int dot_index) {
this.dot_index = dot_index;
}
public void setIndex(int index) {
this.index = index;
}
public void setAhead(Hashtable ahead) {
this.ahead = ahead;
}
public void add(String symbol){
right.add(symbol);
}
public String retrieveAccStr(){
if(dot_index return (String)right.elementAt(dot_index);//没有进行下届判定
}
else
return null;
}
//非终结符后的字符串A,没有加上向前搜索符,A与一个向前搜索符拼接构成一个待解析的串B,多个向前搜索符构成多个串
//串B的first集的求解,当A为空时,所有的first集直接为ahead;
//当A不为空,A不能推出null时,所有的first集为A的first集;
//当A不为空,A能推出null时,所有的first集为A的first集加上ahead
public Vector retrieveFollowingStr(){
Vector retvect = new Vector();
for (int i = dot_index+1; i < right.size(); i++) {
retvect.add( right.elementAt(i) );//没有进行下届判定
}
return retvect;
}
//返回搜索符的拼接以空格分开
public String retrieveAHeadStr(){
String aheadstr = ““;
Enumeration en = ahead.keys();
while (en.hasMoreElements()) {
aheadstr = aheadstr + “ “ + (String) en.nextElement();
}
aheadstr = aheadstr.trim();
return aheadstr;
}
//添加向前搜索符,如果存在,则不添加
public boolean addAheadStr(String aheadstr){
if(ahead.get(aheadstr)==null){
ahead.put(aheadstr aheadstr);
return true; //返回真
}
return false; //返回假
}
public String retrieveFormlabel(){
String keystr = left;
Iterator formiter = right.iterator();
while (formiter.hasNext()) {
keystr = keystr + “ “ + formiter.next() ;
}
keystr = keystr + “_“ + dot_index;
keystr = keystr.trim();
return keystr;
}
public String retrieveFormula(){
String keystr = left;
Iterator formiter = right.iterator();
while (formiter.hasNext()) {
keystr = keystr + “ “ + formiter.next() ;
}
keystr = keystr.trim();
return keystr;
}
//接收字符后的key 加上向前搜索符
// public String getPostAccKey(){
// String keystr = left;
// Iterator formiter = right.iterator();
// while (formiter.hasNext()) {
// keystr = keystr + “ “ + formiter.next() ;
//
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 161 2011-06-07 08:40 LALR1\first.txt
文件 390 2011-06-07 08:40 LALR1\follow.txt
文件 47 2011-03-09 16:14 LALR1\in-2.txt
文件 67 2011-03-10 20:06 LALR1\in-3.txt
文件 131 2011-06-05 11:02 LALR1\in-4.txt
文件 83 2011-03-04 16:13 LALR1\in.txt
文件 4391 2011-02-22 19:30 LALR1\LALR1.jpx
文件 76 2011-03-09 16:11 LALR1\signal-2.txt
文件 99 2011-03-10 20:07 LALR1\signal-3.txt
文件 172 2011-06-05 10:34 LALR1\signal-4.txt
文件 125 2011-03-04 16:14 LALR1\signal.txt
文件 3814 2011-03-10 19:41 LALR1\src\CoreExFormula.java
文件 2138 2011-03-10 20:00 LALR1\src\ExFormula.java
文件 459 2011-02-18 13:29 LALR1\src\FirstFollowConstant.java
文件 233 2011-02-21 11:24 LALR1\src\FirstLastConstant.java
文件 809 2011-02-17 10:38 LALR1\src\Formula.java
文件 2274 2011-02-18 10:25 LALR1\src\graph\GraphSet.java
文件 2137 2011-02-18 10:27 LALR1\src\graph\simpathvisit\CreateTestPath.java
文件 789 2011-02-18 10:31 LALR1\src\graph\simpathvisit\DirectGraphNode.java
文件 7739 2011-02-18 10:26 LALR1\src\graph\simpathvisit\RetriveTestPath.java
文件 516 2011-02-18 10:25 LALR1\src\graph\simpathvisit\StateData.java
文件 695 2011-02-18 10:25 LALR1\src\graph\simpathvisit\TestCaseData.java
文件 948 2011-02-18 10:25 LALR1\src\graph\simpathvisit\TransitionData.java
文件 2445 2011-02-18 10:30 LALR1\src\graph\simpathvisit\TravelPathNode.java
目录 0 2011-11-17 14:00 LALR1\src\graph\simpathvisit
文件 8411 2011-03-01 09:50 LALR1\src\graph\WideFirstTest.java
目录 0 2011-11-17 14:00 LALR1\src\graph
文件 4196 2011-03-04 09:02 LALR1\src\HeapSort.java
文件 78037 2011-06-07 08:40 LALR1\src\main.java
文件 588 2011-03-02 08:40 LALR1\src\NonTerm.java
............此处省略6个文件信息
相关资源
- 微软masm汇编编译器
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 编译原理课程设计:词法语法编译器
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- unity3d反编译工具
- 汇编语言编译器masm5.0
- 《编译原理》清华大学版中的pl0扩充
- PL/0功能扩充break功能
- 编译词法分析器识别关键字常数和符
- uCOS编译环境建立 BC45 TASM
- zlib 最新 1.2.8 win32 win64 编译好的dll
- 编译原理LR(0)语法分析
- 编译原理中间代码生成程序
- 编译原理:LR分析程序
- C编译器源代码(超级牛b).rar
- Delphi反编译工具的源码
- 小程序反编译文件wxappUnpacker.rar
- win10 64位下编译的opencv4.5.5库,opencv
- 易语言模块反编译助手
- librdkafka win7 64位 vs2015编译Release版本
- 编译原理实验:词法分析,语法分析
- 吉林大学编译原理课件
- delphi 反编译工具 源码
- 编译好的json_lib.lib 包含64位,32位,头
- frcc.exe fastreport编译中文没乱码
- 编译原理龙书答案
- 编译原理 第三章课后习题答案
- 易语言变量和数组的编译原理
评论
共有 条评论