資源簡介
(1)Lex輸入文件的解析:
·主函數main()實現對Lex輸入文件結構的解析
·int checkType(char c)函數判斷是定義段開始?定義段結束?規則段?
(2)正規表達式的解析:
·void replaceID(string &re)函數將用戶標示id轉換成re
·通過對正規表達式的解析的解析可以將規則段的模式部分全部轉換成正規表達式
(3)一個正規表達式到NFA的轉換算法的實現
·void generateNFA(const string & re,vector<list > &tnfa,vector &isTer,int index)函數完成正規表達式到NFA的轉換
其中:re:正規表達式
tnfa:數據結構是vector<list>,即NFA的每個結點是list
(關于NFA的數據結構的描述見后面)
isTer:統計tnfa中接受狀態結點(isTer[i]!=0表示結點i為接受態)
(3)多個NFA的合并
·void joinNFA(vector<list > &nfa1,const vector<list > &nfa2)
函數完成了NFA nfa1和nfa2的合并,從總體來看起到所有NFA的合并
·合并NFA的基本原理:將nfa2的開始的點中的內容全部拷貝給nfa1的開始結點然后,再把nfa2中除了開始點以外的點連接到nfa1的末尾即可,注意結點編號的變化
(4)NFA的確定化算法的實現
·void TODFA()函數完成NFA到DFA的轉換
·在進行NFA確定化算法的同時,自動機的接受態集合也做相應的變換
vector nfaIsTer vector dfaIsTer

代碼片段和文件信息
#include
#include?
#include//文件流
#include
#include//棧
#include//容器
#include//鏈表
#include
#include
#include
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2008-11-20?10:30??SeuLex欏圭洰\
?????目錄???????????0??2008-11-20?10:30??SeuLex欏圭洰\debug\
?????目錄???????????0??2008-11-20?10:30??SeuLex欏圭洰\SeuLex欏圭洰\
?????目錄???????????0??2008-11-20?10:30??SeuLex欏圭洰\SeuLex欏圭洰\Debug\
?????文件??????198656??2002-12-31?21:02??SeuLex欏圭洰\緙栬瘧鍘熺悊璇劇▼璁捐鎶ュ憡錛圫euLex錛?doc
?????文件???????24064??2002-12-31?21:07??SeuLex欏圭洰\SeuLex欏圭洰.suo
?????文件?????????901??2002-12-31?16:22??SeuLex欏圭洰\SeuLex欏圭洰.sln
?????文件?????2608128??2002-12-31?21:07??SeuLex欏圭洰\SeuLex欏圭洰.ncb
?????文件?????2173952??2002-12-31?21:05??SeuLex欏圭洰\debug\SeuLex欏圭洰.pdb
?????文件??????998092??2002-12-31?21:05??SeuLex欏圭洰\debug\SeuLex欏圭洰.ilk
?????文件??????385024??2002-12-31?21:05??SeuLex欏圭洰\debug\SeuLex欏圭洰.exe
?????文件???????68608??2002-12-31?16:25??SeuLex欏圭洰\SeuLex欏圭洰\~WRL2183.tmp
?????文件???????68096??2003-01-01?06:54??SeuLex欏圭洰\SeuLex欏圭洰\~WRL1189.tmp
?????文件?????????162??2002-12-31?16:19??SeuLex欏圭洰\SeuLex欏圭洰\~$鍘熺悊璇劇▼璁捐鎶ュ憡錛圫euLex錛?doc
?????文件?????????702??2003-01-01?05:25??SeuLex欏圭洰\SeuLex欏圭洰\yytab.h
?????文件???????59224??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\yylex.cpp
?????文件????????1427??2002-12-31?21:07??SeuLex欏圭洰\SeuLex欏圭洰\SeuLex欏圭洰.vcproj.0F9C05CB33D74C5.d4234ggdh.user
?????文件????????3976??2002-12-31?16:24??SeuLex欏圭洰\SeuLex欏圭洰\SeuLex欏圭洰.vcproj
?????文件???????23378??2002-12-31?20:58??SeuLex欏圭洰\SeuLex欏圭洰\seulex.cpp
?????文件????????8199??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Re_Act_NFA.txt
?????文件?????????568??2002-12-31?21:03??SeuLex欏圭洰\SeuLex欏圭洰\ReadMe.txt
?????文件????????7300??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\NFA.txt
?????文件????????1816??2003-01-01?05:31??SeuLex欏圭洰\SeuLex欏圭洰\lex.l
?????文件???????12912??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\DFA.txt
?????文件??????446464??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\vc80.pdb
?????文件??????232448??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\vc80.idb
?????文件?????????385??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\SeuLex欏圭洰.exe.intermediate.manifest
?????文件?????????468??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\SeuLex欏圭洰.exe.em
?????文件?????????403??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\SeuLex欏圭洰.exe.em
?????文件?????2088203??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\seulex.obj
?????文件??????????64??2002-12-31?21:05??SeuLex欏圭洰\SeuLex欏圭洰\Debug\mt.dep
............此處省略1個文件信息
評論
共有 條評論