实验4LR(k)分析器.doc

实验4LR(k)分析器.doc

ID:48200457

大小:502.50 KB

页数:10页

时间:2020-01-22

实验4LR(k)分析器.doc_第1页
实验4LR(k)分析器.doc_第2页
实验4LR(k)分析器.doc_第3页
实验4LR(k)分析器.doc_第4页
实验4LR(k)分析器.doc_第5页
资源描述:

《实验4LR(k)分析器.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、word格式实验四LR(k)分析器设计一、实验目的(1)掌握下推机这一数学模型的结构和理论,并深刻理解下推自动机在LR分析法中的应用(即LR分析器)。(2)掌握LR分析法的思想,学会特定分析表的构造方法,利用给出的分析表进行LR分析。二、实验内容根据课堂讲授的形式化算法,编制程序实现对以下语法进行自底向上语法分析的LR分析器,设计分析表,对给出的输入语句进行语法分析,判断是否符合相应的文法要求。Program®blockblock®{stmts}stmts®stmtstmts

2、estmt®id=E;

3、while(bool)stmt

4、blockbool®E<=E

5、

6、E>=EE®E+T

7、TT®id

8、num输入语句:三、实验要求要求实现以下功能:....word格式a)设计分析表和语句的输入;b)要实现通用的LR分析思想的源代码;c)输出对语句的语法分析判断结果,如果可能给出错误的信息提示。四、实现方法根据课本的LR分析器模型和LR分析算法,完成LR分析。对要求中的错误信息提示,指的是对应分析表中的空白处,每一个空白的地方都应该有对应的错误情况,因而有相应的错误信息。注意这里的语法分析,是在词法分析的基础上进行的。五、识别活前缀的DFA....word格式六、SLR(1)分析表①Program->block②Block->

9、{stmts}③Stmts->stmtstmts④Stmts->eps⑤Stmt->id=E;⑥Stmt->while(bool)stmt⑦Stmt->block⑧Bool->E<=E⑨Bool->E>=E⑩E->E+T⑪E->T⑫T->id⑬T->numFOLLOW(program)={‘#’}FOLLOW(block)={‘#’,‘}’,‘id’,‘while’,‘{’}FOLLOW(stmts)={‘}’}FOLLOW(stmt)={‘}’,‘id’,‘while’,‘{’}FOLLOW(bool)={‘)’}FOLLOW(E)={‘<=’,‘>=’,‘

10、+’,‘;’,‘)’}FOLLOW(T)={‘<=’,‘>=’,‘+’,‘;’,‘)’}....word格式七、主要代码#ifndefLRANALYZER_H#defineLRANALYZER_H#include#include#include#include#include"Automation.h"classLRAnalyzer:publicQObject{Q_OBJECTpublic:explicitLRAnalyzer(QObject*parent=0);boolbegin(QS

11、tring,QTableWidget*);boolloadTable(QString);private:Automation*lex;QStringtable[30][30];QMaptrans;QMaptrans2;intderiveArg[30];intderiveLeft[30];};#endif//LRANALYZER_H#include"LRAnalyzer.h"LRAnalyzer::LRAnalyzer(QObject*parent):QObject(parent){lex=newAutomation;

12、lex->addKeyword("while");//2000lex->addToken("+");//1000lex->addToken("=");//1001lex->addToken("<=");//1002lex->addToken(">=");//1003lex->addToken("{");//1004lex->addToken("}");//1005lex->addToken("(");//1006lex->addToken(")");//1007lex->addToken(";");//1008....word格式lex->addToken("

13、#");//1009trans.insert(1004,0);trans2.insert(1004,"{");trans.insert(1005,1);trans2.insert(1005,"}");trans.insert(1006,2);trans2.insert(1006,"(");trans.insert(1007,3);trans2.insert(1007,")");trans.insert(1000,4);trans2.insert(1000,"+");trans.insert(1001,5);trans2.insert(1001,"=");tra

14、ns.insert(1002,6);t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。