91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 180KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-07-16
  • 語言: 其他
  • 標簽:

資源簡介

編譯原理實驗 語義分析與中間代碼生成 Sample語言的語義和代碼生成規則,熟悉Sample語言的語義分析和代碼生成過

資源截圖

代碼片段和文件信息

/*
??文法G(S)
??S-->DGWE
??G-->c=R
??R-->dTe|d
??T-->+|-|*|/
??E-->aFb
??F-->?>|<
*/

#include?
#include
#include
#include

char?a[50]g[50][50];?//a[50]保存輸入串g[50][50]保存四元式
char?ch;
int?i1=0i2=0i3=0;?//i1通過自加來取得a[i1]輸入串中的字符?i2用來選擇用哪種四元式i3用來選擇用‘W‘的報錯
int?total=0;??

void?S();
void?D();
void?G();
void?W();
void?E();
void?R();
void?T();
void?F();



void?main()
{???
???int?pj=0;
???char?str[20];
???
??
????printf(“請輸入do-while語句(D代表doW代表while)并以#結束:\n“);
do{
??scanf(“%s“str);
??
??if(strcmp(str“do“)==0)
??{?
??a[j]=‘D‘;
??j++;
??}
??else?if(strcmp(str“while“)==0)
??{?
??a[j]=‘W‘;
??j++;
??}
??else?if(strcmp(str“c=d+e“)==0)
??{?
??a[j]=‘c‘;
??a[j+1]=‘=‘;
??a[j+2]=‘d‘;
??a[j+3]=‘+‘;
??a[j+4]=‘e‘;
??j=j+5;
??continue;
??}
??else?if(strcmp(str“c=d-e“)==0)
??{
??a[j]=‘c‘;
??a[j+1]=‘=‘;
??a[j+2]=‘d‘;
??a[j+3]=‘-‘;
??a[j+4]=‘e‘;
??j=j+5;
??continue;
??}
??else?if(strcmp(str“c=d*e“)==0)
??{
??a[j]=‘c‘;
??a[j+1]=‘=‘;
??a[j+2]=‘d‘;
??a[j+3]=‘*‘;
??a[j+4]=‘e‘;
??j=j+5;
??continue;
??}
??else?if(strcmp(str“c=d/e“)==0)
??{
??a[j]=‘c‘;
??a[j+1]=‘=‘;
??a[j+2]=‘d‘;
??a[j+3]=‘/‘;
??a[j+4]=‘e‘;
??j=j+5;
??continue;
??}
??else?if(strcmp(str“a>b“)==0)
??{
??a[j]=‘a‘;
??a[j+1]=‘>‘;
??a[j+2]=‘b‘; ?
??j=j+3;
??continue;
??}
??else?if(strcmp(str“a ??{
??a[j]=‘a‘;
??a[j+1]=‘>‘;
??a[j+2]=‘b‘; ?
??j=j+3;
??continue;
??}
??else?{
????????for(unsigned?int?i=0;i {
???a[j+i]=str[i];

}
?????j=j+strlen(str);
??
??}
?
}while(strcmp(str“#“)!=0);
?????printf(“\n“);
printf(“輸入串變為%s\n“a);
printf(“\n“);

ch=a[0];

??
???????S();
???????
??????
???if?(ch==‘#‘)??
???????{???printf(“accept\n“);
??????????????printf(“四元式為:\n“);
??????????????p=0;
??????????????for(;p ??{
????printf(“10%d?%s\n“pg[p]); ??

??}???????????????????????????????
??????????????

???????}

???????else?{

??????????????printf(“error\n“);

??????????????printf(“回車返回\n“);

??????????????getchar();getchar();?

??????????????return;?

???????}

???????printf(“\n“);

???????printf(“回車返回\n“);

???????getchar();
???????getchar();
}

void?S()
{
?
???printf(“%d\tS-->DGWE\n“total);total++;//total用來記數
?????
???D();
???G();
???
???
???
}

void?D()
{?
?if(ch!=‘D‘)
?{?printf(“第%d個字符%c為有非法字符請按回車返回!!“i1+1ch);
??getchar();
??????getchar();
??exit(1);}
???????ch=a[++i1];

}
?
void?G()
{??int?i=i1+1;
??
??if(ch!=‘c‘)
?{?printf(“第%d個字符%c為有非法字符請按回車返回!!“i1+1ch);
??getchar();
??????getchar();
??exit(1);}
??if(a[i]!=‘=‘)
?{?printf(“第%d個字符%c為有非法字符請按回車返回!!“i+1a[i]);
??getchar();
??????getchar();
??exit(1);}

??printf(“%d\tG-->c=R\n“total);total++;
??

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????33792??2010-06-27?17:09??語義分析\Debug\vc60.idb

?????文件??????45056??2010-06-27?16:58??語義分析\Debug\vc60.pdb

?????文件?????192626??2010-06-27?16:58??語義分析\Debug\語義.exe

?????文件?????189700??2010-06-27?16:58??語義分析\Debug\語義.ilk

?????文件??????23491??2010-06-27?16:58??語義分析\Debug\語義.obj

????I.A....????227508??2010-06-27?16:58??語義分析\Debug\語義.pch

?????文件?????369664??2010-06-27?16:58??語義分析\Debug\語義.pdb

????I.A....??????5729??2010-06-27?16:54??語義分析\語義.cpp

?????文件???????3379??2010-06-27?16:58??語義分析\語義.dsp

?????文件????????533??2010-06-27?17:11??語義分析\語義.dsw

?????文件??????41984??2010-06-27?17:39??語義分析\語義.ncb

?????文件??????48640??2010-06-27?17:39??語義分析\語義.opt

?????文件????????744??2010-06-27?16:58??語義分析\語義.plg

?????目錄??????????0??2010-06-27?16:58??語義分析\Debug

?????目錄??????????0??2010-06-27?17:39??語義分析

-----------?---------??----------?-----??----

??????????????1182846????????????????????15


評論

共有 條評論

相關資源