资源简介
对文法进行自动分析,生成用于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个文件信息
相关资源
- 项目集规范族
- 《编译原理》实验 识别无符号数的词
- 易语言e加密模块反编译工具v3.0.1.0
- 编译原理语法分析器实验报告.doc版
- 在语法分析器的基础上构造的三地址
- 北方工业大学语法分析器 (1)完整实
- 编译原理实验词法,语法,语义
- 编译原理语法分析实验代码
- 编译原理三上机实验报告
- 预测分析表构造算法的程序实现
- 自顶向下语法分析器。。。。。。。
- 华中科技大学编译原理实验报告
- 编译原理课程设计词法分析程序
- 山东大学编译原理
- 赋值语句的翻译程序设计
- 基于预测分析表法的语法分析程序
- 编译原理中间代码生成
- LR(1)分析法从左向右扫描和自底向
- windows下的bison.exe和flex.exe
- 编译原理lex和yacc
- 编译原理词法分析+SLR语法分析+SLR语义
- 编译原理PL/0 语言编译器分析实验报告
- 语法分析实验报告
- 编译原理词法分析器语法分析器实验
- LL(1)语法分析程序
- 编译原理课程设计SLR(1)/SLR1分析器
- 语法分析器
- 语法分析的源代码文件与相关文件
- 语法分析
- 自顶向下预测分析语法分析程序
评论
共有 条评论