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

编译原理课设

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

“编译原理”课程设计报告 CPR-1206010231 struct start {

//表达式文法的预测分析表

//建立预测分析表

// // // // // //

+ * m ( ) #

char a1[10]; char a2[10]; char a3[10]; char a4[10]; char a5[10]; char a6[10]; };

struct start S={\struct start A={\struct start B={\struct start U={\struct start T={\

函数模块: bool pipei(int& b)

{

if(d=='+'||d=='*'||d=='m'||d=='('||d==')') { }

else if(d=='S') { }

else if(d=='A') { }

else if(d=='B') { }

else if(d=='U') { }

else if(d=='T') { }

else if(d=='#')

//栈顶元素为# //栈顶元素为T

//栈顶元素为U //栈顶元素为B

//栈顶元素为A //栈顶元素为S

//栈顶元素为+、*、m、(或)

//匹配

Page 13 of 24

“编译原理”课程设计报告 CPR-1206010231

{ } Else { } }

详细的流程图如下图所示:

【注:因为流程图过大,所以流程图采用VISIO绘制,图片过大导致下图不清晰,故附上一份词法分析流程图的vsd文件和一份jpg文件,望老师谅解】

//栈顶元素不满足以上条件时

Page 14 of 24

“编译原理”课程设计报告 CPR-1206010231

图2 语法分析程序流程图

【实验4.3】主要源代码

Page 15 of 24

“编译原理”课程设计报告 CPR-1206010231

该程序的主要部分如下: bool pipei(int& b)

//匹配,对输入串进行逐一匹配 {

char d; //定义栈顶元素

d=sc.top();

if(d=='+'||d=='*'||d=='m'||d=='('||d==')') //当栈顶元素为+、*、m、(或)时

{

if(s[b]==d)

//若输入串与栈顶元素相同

{

css[0]=s[b];

strcpy(css+1,\匹配\b++;

//字符串向前推进

sc.pop();

//栈顶元素出栈

return true; } else {

cout<<\return false; } }

else if(d=='S') //当栈顶元素为S时

{

if(s[b]=='m')

//若输入串为m

{

strcpy(css,\sc.pop();

Page 16 of 24

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