首页 课程资源 C/C++     /    对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。

对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。

上传者: www888m | 上传时间:2023/9/19 0:58:21 | 文件大小:10KB | 文件类型:zip
对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。
第三次上机—语法分析1目的:熟练掌握自上而下的语法分析方法,并能用C++程序实现。
要求:1.使用的文法如下: E®TE¢ E¢®+TE¢|e T®FT¢ T¢®*FT¢|e F®(E)|id2.对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。
3.要有一定的错误处理功能。
即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。
可以参考书上介绍的同步记号集合来处理。
可能的出错情况:idid*id,id**id,(id+id,+id*+id……4.输入串以#结尾,输出推导过程中使用到的产生式。
例如:输入:id+id*id#输出:E®TE¢T®FT¢F®idE¢®+TE¢T®FT¢……如果输入串有错误,则在输出中要体现是跳过输入串的某些记号了,还是弹栈,弹出某个非终结符或者是终结符了,同时给出相应的出错提示信息。
比如:idid*id对应的出错信息是:“输入串跳过记号id,用户多输入了一个id”;
id**id对应的出错信息是:“弹栈,弹出非终结符F,用户少输入了一个id”(id+id对应的出错信息是:“弹栈,弹出终结符),用户少输入了一个右括号(或者说,括号不匹配)”有余力的同学可进一步考虑如下扩展:1. 将递归下降方法和非递归预测分析方法都实现2. 在语法分析的过程中调用第二次上机的结果,即利用词法分析器来返回一个记号给语法分析器。
3. 编写First和Follow函数,实现其求解过程。
测试文法:A->BCDEB->aBA|εC->F|εD->b|c|εE->e|εF->d|ε

文件下载

资源详情

[{"title":"(3个子文件10KB)对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。","children":[{"title":"test","children":[{"title":"digui.cpp <span style='color:#111;'>2.08KB</span>","children":null,"spread":false},{"title":"第三次上机作业-语法分析1.doc <span style='color:#111;'>31.50KB</span>","children":null,"spread":false},{"title":"feidigui.cpp <span style='color:#111;'>4.46KB</span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

  • KEVENGX:
    看来确实很好啊2015-04-20
  • v_____v:
    适用,功能完整,解释清晰,谢谢up主的分享2015-04-10
  • 小博-乐happy:
    简单实用,很好的算法2014-05-27
  • zzy33106:
    完全实现简单语法分析功能!2014-05-13
  • _susan:
    简短有用,易懂2014-04-30

免责申明

【好快吧下载】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【好快吧下载】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【好快吧下载】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,8686821#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明