資源簡(jiǎn)介
對(duì)文法進(jìn)行自動(dòng)分析,生成用于LALR1語(yǔ)法分析器的狀態(tài)轉(zhuǎn)換表,加上框架代碼,構(gòu)造出LALR1語(yǔ)法分析程序

代碼片段和文件信息
import?java.util.*;
//針對(duì)lalr1文法的項(xiàng)目集的核的產(chǎn)生式
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);//沒(méi)有進(jìn)行下屆判定
????????}
????????else
????????????return?null;
????}
????//非終結(jié)符后的字符串A,沒(méi)有加上向前搜索符,A與一個(gè)向前搜索符拼接構(gòu)成一個(gè)待解析的串B,多個(gè)向前搜索符構(gòu)成多個(gè)串
????//串B的first集的求解,當(dāng)A為空時(shí),所有的first集直接為ahead;
????//當(dāng)A不為空,A不能推出null時(shí),所有的first集為A的first集;
????//當(dāng)A不為空,A能推出null時(shí),所有的first集為A的first集加上ahead
????public?Vector?retrieveFollowingStr(){
????????Vector?retvect?=?new?Vector();
????????for?(int?i?=?dot_index+1;?i?????????????retvect.add(?right.elementAt(i)?);//沒(méi)有進(jìn)行下屆判定
????????}
????????return?retvect;
????}
????//返回搜索符的拼接以空格分開(kāi)
????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()?;
//??????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論