1 / 29
文档名称:

编译原理词法分析器,ll1,lr0,python实现代码.doc

格式:doc   大小:288KB   页数:29页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理词法分析器,ll1,lr0,python实现代码.doc

上传人:kh6797 2019/5/18 文件大小:288 KB

下载得到文件列表

编译原理词法分析器,ll1,lr0,python实现代码.doc

文档介绍

文档介绍:专业资料:..计算机科学与通信工程学院编译原理实验报告题目:(1)(0)分析器班级:姓名:学号:指导老师:2017年月word完美格式专业资料word完美格式专业资料目录一、 实验题目 1二、 实验目的和要求 1三、 代码实现 2四、 总结 25word完美格式专业资料word完美格式专业资料一、,将代码中的单词符号分解出来,并对其进行检查,(1)文法分析器分析给定文法。求出文法的FIRST集,FOLLOW集,并构建分析表,对给定输入串进行分析。(0)文法分析器分析给定文法。用Ꜫ_CLOSURE方法构造文法的LR(0)项目集规范族,根据状态转换函数GO构造出文法的DFA,并转换为分析表,对给定输入串进行分析。二、。,FOLLOW集,构造LL(1)分析表。,状态转换函数GO,构造LR(0)分析表。三、:E->TRR->+TR|-TR|~T->FGG->*FG|/FG|~F->(E)|i代码:KEYWORD_LIST=['while','if','else','switch','case']SEPARATOR_LIST=[';',':',',','(',')','[',']','{','}']OPERATOR_LIST1=['+','-','*']OPERATOR_LIST2=['<=','<','==','=','>','>=']CATEGORY_DICT={#KEYWORD"while":{"while":""},"if":{"if":""},"else":{"else":""},"switch":{"switch":""},"case":{"case":""},#OPERATOR"+":{"+":""},"-":{"-":""},"*":{"*":""},"<=":{"relop":"LE"},"<":{"relop":"LT"},">=":{"relop":"GE"},">":{"relop":"GT"},"==":{"relop":"EQ"},"=":{"=":""},#SEPARATOR";":{";":""},":":{":":""},",":{",":""},"(":{"(":""},")":{")":""},"[":{"]":""},"]":{"]":""},"{":{"{":""},"}":{"}":""},}CONSTANTTABLE=[]TOKENTABLE=[]OPERATORTABLE=[]KEYWORDTABLE=[]SEPARATORTABLE=[]UNDEFINEDTABLE=[]#READFILEdefread_file(path,method):temp_str=""try:file=open(path,method)forlineinfile:line=('\n',"")temp_str+=emp_str=str(temp_str)exceptIOErrorase:print(e)exit()finally:()()+""#GETBEdefgetbe():globaltokengetchar()token=""return#GETCHARdefgetchar():globalcharactergloballocationwhileall_string[location]=="":location=location+1character=all_string[location]returncharacter#LINKTOKENdefconcatenation():globaltokenglobalcharactertoken=token+character#ISNUMBERdefdigit():if'0'<=character<='9':returnTruereturnFalse#ISALPHABETdefletter():if'A'<=character<='Z'or'a'<=character<='z':returnTruereturnFalse#ISIDENTIFIERdefreserve():iftokeninKEYWORD_LIST:returnCATEGORY_DICT[token]else:return0#RETRACTdefret