第一范文网 - 专业文章范例文档资料分享平台

LL(1)语法分析实验报告

来源:用户分享 时间:2025/9/5 11:21:56 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

if(flag==1)/*如果是终结符*/ { if(x=='#') { finish=1;/*结束标记*/ printf(\接受 */ getchar(); getchar(); exit(1); }/*if*/ if(x==ch) { print(); print1(); printf(\匹配\\n\ ch=B[++b];/*下一个输入字符*/ flag=0;/*恢复标记*/ }/*if*/ else/*出错处理*/ { print(); print1(); printf(\出错\\n\输出出错终结符*/ exit(1); }/*else*/ }/*if*/

else/*非终结符处理*/ { for(j=0;j<=4;j++) if(x==v2[j]) { m=j;/*行号*/ break; } for(j=0;j<=5;j++) if(ch==v1[j]) { n=j;/*列号*/ break; } cha=C[m][n]; if(cha.origin!='N')/*判断是否为空*/ { print();

print1(); printf(\输出产生式*/ for(j=0;j=0;j--)/*产生式逆序入栈*/ A[++top]=cha.array[j]; if(A[top]=='^')/*为空则不进栈*/ top--; }/*if*/ else/*出错处理*/ { print(); print1(); printf(\出错\\n\输出出错非终结符*/ exit(1); }/*else*/ }/*else*/ }while(finish==0); }/*main*/

三、实验过程记录:

实验截图:

当输入内容不匹配或输入内容非法时要退出程序,此时若不关闭已经打开的文件可能导致文件内容受到破坏;解决方法是给error()函数设置一个文件指针变量参数FILE* fp,在退出程序之前通过fp关闭文件

四、实验总结:

通过本次实验我锻炼了自己的上机操作能力及编程能力,并对理论知识有了进一步的了解。老师提供的LL(1)分析法的流程图给了我很大的帮助,使得本实验基本思路变得很清晰,用较为简单的算法就能实现,程序的难点是产生式结构体的构造、分析表的构造、解决实验中遇到的问题也花费了一部分时间,我增长了处理关于文件错误的能力

搜索更多关于: LL(1)语法分析实验报告 的文档
LL(1)语法分析实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9578r9490q86wqu5roq73pebe0io3700lon_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top