云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > FOR循环语句的翻译程序设计(递归下降法、输出四元式表示)

FOR循环语句的翻译程序设计(递归下降法、输出四元式表示)

  • 62 次阅读
  • 3 次下载
  • 2026/1/9 12:59:46

武汉理工大学《编译原理》课程设计说明书

#include #include #include #include

char a[50] ,b[50],d[200],e[10]; char ch;

int n1,i1=0,flag=1,n=5; int total=0;/*步骤计数器*/

int E(); int E1(); int T();

int G();/*E’*/ int S();/*T’*/ int F();

void input(); void input1(); void output();

void main() /*递归分析*/ {

int f,p,j=0; char x; d[0]='E'; d[1]='='; d[2]='>'; d[3]='T'; d[4]='G'; d[5]='#';

printf(\请输入字符串(长度<50,以#号结束)\\n\ do{

scanf(\ a[j]=ch; j++; }while(ch!='#'); n1=j;

ch=b[0]=a[0];

printf(\步骤\\t文法\\t分析串\\t\\t分析字符\\t剩余串\\n\ f=E1();

if (f==0) return; if (ch=='#')

- 9 -

武汉理工大学《编译原理》课程设计说明书

{

printf(\ p=0; x=d[p];

while(x!='#') {

printf(\ /*输出推导式*/ } }else {

printf(\ printf(\回车返回\\n\ getchar(); getchar(); return; }

printf(\

printf(\回车返回\\n\ getchar(); getchar(); }

int E1() {

int f,t;

printf(\ flag=1; input(); input1(); f=T();

if (f==0) return(0); t=G();

if (t==0) return(0); else return(1); }

int E() {

int f,t;

printf(\

e[0]='E';e[1]='=';e[2]='>';e[3]='T';e[4]='G';e[5]='#'; output(); flag=1; input();

- 10 -

武汉理工大学《编译原理》课程设计说明书

input1(); f=T();

if (f==0) return(0); t=G();

if (t==0) return(0); else return(1); }

int T() {

int f,t;

printf(\

e[0]='T';e[1]='=';e[2]='>';e[3]='F';e[4]='S';e[5]='#'; output(); flag=1; input(); input1(); f=F();

if (f==0) return(0); t=S();

if (t==0) return(0); else return(1); }

int G() {

int f;

if(ch=='+') { b[i1]=ch;

printf(\

e[0]='G';e[1]='=';e[2]='>';e[3]='+';e[4]='T';e[5]='G';e[6]='#'; output(); flag=0;

input();input1(); ch=a[++i1]; f=T();

if (f==0) return(0); G();

return(1); }

printf(\

e[0]='G';e[1]='=';e[2]='>';e[3]='^';e[4]='#'; output();

- 11 -

武汉理工大学《编译原理》课程设计说明书

flag=1;

input();input1(); return(1); }

int S() {

int f,t;

if(ch=='*') {

b[i1]=ch;printf(\

e[0]='S';e[1]='=';e[2]='>';e[3]='*';e[4]='F';e[5]='S';e[6]='#'; output(); flag=0;

input();input1(); ch=a[++i1]; f=F();

if (f==0) return(0); t=S();

if (t==0) return(0); else return(1);} printf(\

e[0]='S';e[1]='=';e[2]='>';e[3]='^';e[4]='#'; output(); flag=1; a[i1]=ch;

input();input1(); return(1); }

int F() {

int f;

if(ch=='(') {

b[i1]=ch;printf(\

e[0]='F';e[1]='=';e[2]='>';e[3]='(';e[4]='E';e[5]=')';e[6]='#'; output(); flag=0;

input();input1(); ch=a[++i1]; f=E();

if (f==0) return(0);

- 12 -

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

武汉理工大学《编译原理》课程设计说明书 #include #include #include #include char a[50] ,b[50],d[200],e[10]; char ch; int n1,i1=0,flag=1,n=5; int total=0;/*步骤计数器*/ int E(); int E1(); int T(); int G();/*E’*/ int S();/*T’*/ int F(); void input(); void input1(); void output(); void main() /*递归分析*/ {

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com