词法分析器与语法分析器.rar

时间:2021-09-16 22:22:55
【文件属性】:
文件名称:词法分析器与语法分析器.rar
文件大小:851KB
文件格式:RAR
更新时间:2021-09-16 22:22:55
编译原理 词法分析 LL(1)语法分析 编译原理课设内容,代码可读性高,关键地方都有注释 对词法分析器各函数说明: void preInit(); //初始化关键字和关键状态 void init(); //对正规文法初始化 void inputEX(string rule); //存储三型文法进入数据结构 set Closure(FA nfa, char st); //对一个状态求闭包 set unionSet(sets1,sets2); //加入闭包结果 set e_move(FA nfa,char st, char ch); //使用子集法的move操作 bool equalSet(set s1, set s2); //使用子集法时若产生相同状态则合并 void createNFA(string express); //产生式->DFA FA createDFA(FA nfa); //NFA->DFA bool isLetter(char ch); //判断是否是数字 bool isDigit(char ch); //判断是否是字母 map getTrans(char nowNode); //从DFA中获得转换关系 Ans runDFA(string str,int pos,int line); //启动识别源程序 对语法分析器各函数说明: void init(); //对正规文法初始化 void initVt(); //初始化所有终结符 void inputEX(string rule); //存储二型文法进入数据结构 void calFisrt(); //计算FIRST集合 void calFollow(); //计算FOLLOW集合 void calSelect(); //计算SELECT集合 int get_column(string target); //得到终结符在预测分析表的列标 int get_row(string target); //得到非终结符在预测分析表的行标 void create_table(); //建立预测分析表 void print_table(); //打印预测分析表(由于预测分析表过于庞大,在程序中被注释) vector split(const string& str, const string& delim); //处理一个token void deal_tokens(); //对词法分析器得到的token表进行处理
【文件预览】:
NFA.txt
3.txt
lexical_analysis.exe
DFA.txt
代码说明.txt
2.txt
Grammatical_analysis.cpp
lexical_analysis.cpp
Grammatical_analysis.exe
test1.txt
ans.txt

网友评论