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

  • 大小: 1.67MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-16
  • 語言: 其他
  • 標(biāo)簽:

資源簡介

這是一個簡單的自頂向下語法分析器,其中的預(yù)測分析表是固定給出的,而分析過程嚴(yán)格按照教材的流程圖走,輸出的結(jié)果是表達(dá)式的分析棧。

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include
#include
#include
#include
char?A[20];/*分析棧*/
char?B[20];/*剩余串*/
char?Vt[20]={‘i‘‘+‘‘*‘‘(‘‘)‘‘#‘};/*終結(jié)符??*/
char?Vn[20]={‘E‘‘X‘‘T‘‘Y‘‘F‘};/*非終結(jié)符???*/
int?j=0b=0top=0l;/*L為輸入串長度?*/
typedef?struct?type/*產(chǎn)生式類型定義?*/
{
char?origin;/*產(chǎn)生式左式??*/
char?array[5];/*產(chǎn)生式右式?*/
int?length;/*右式字符個數(shù)??????*/
}type;
type?ee1e2tt1t2ff1;/*結(jié)構(gòu)體變量??*/
type?C[10][10];/*預(yù)測分析表??????*/
void?print()/*輸出分析棧??*/
{
int?a;/*指針*/
for(a=0;a<=top+1;a++)//top+1=top+“#”+X中的非終結(jié)符
printf(“%c“A[a]);
printf(“\t\t“);
}/*print*/
void?print1()/*輸出剩余串*/
{
int?j;
for(j=0;j printf(“?“);
for(j=b;j<=l;j++)
printf(“%c“B[j]);
printf(“\t\t\t“);
}/*print1*/
void?main()
{
int?mnk=0flag=0finish=0;
char?chx;
type?cha;/*用來接受C[m][n]*/
/*把文法產(chǎn)生式賦值結(jié)構(gòu)體*/
e.origin=‘E‘;
strcpy(e.array“TX“);
e.length=2;
e1.origin=‘X‘;
strcpy(e1.array“+TX“);
e1.length=3;
e2.origin=‘X‘;
strcpy(e2.array“?“);
e2.length=1;
t.origin=‘T‘;
strcpy(t.array“FY“);
t.length=2;
t1.origin=‘Y‘;
strcpy(t1.array“*FY“);
t1.length=3;
t2.origin=‘Y‘;
strcpy(t2.array“?“);
t2.length=1;
f.origin=‘F‘;
strcpy(f.array“i“);
f.length=1;
f1.origin=‘F‘;
strcpy(f1.array“(E)“);
f1.length=3;
for(m=0;m<=4;m++)/*初始化分析表*/
for(n=0;n<=5;n++)
C[m][n].origin=‘N‘;/*全部賦為空*/
???/*填充分析表*/
C[0][0]=e;C[0][3]=e;
C[1][1]=e1;C[1][4]=e2;C[1][5]=e2;
????C[2][0]=t;C[2][3]=t;
????C[3][1]=t2;C[3][2]=t1;C[3][4]=t2;C[3][5]=t2;
????C[4][0]=f;C[4][3]=f1;
???printf(“請輸入要分析的字符串(只包含i+*()#其中以#結(jié)束):“);
???do/*讀入分析串*/
???{
???scanf(“%c“&ch);
???if?((ch!=‘i‘)&&(ch!=‘+‘)&&(ch!=‘*‘)&&(ch!=‘(‘)&&(ch!=‘)‘)&&(ch!=‘#‘))
???{
???printf(“輸入串中有非法字符\n“);
???exit(1);
???}
???B[j]=ch;
???j++;
???}while(ch!=‘#‘);
???l=j;/*分析串長度*/
???ch=B[0];/*當(dāng)前分析字符*/
???A[top]=‘#‘;?A[++top]=‘E‘;/*‘#‘‘E‘進(jìn)棧*/
???printf(“步驟\t\t分析棧?\t\t剩余字符?\t\t所用產(chǎn)生式?\n“);
???do
???{
??x=A[top--];/*x為當(dāng)前棧頂字符*/
??????printf(“%d“k++);
??????printf(“\t\t“);
??????for(j=0;j<=5;j++)/*判斷是否為終結(jié)符*/
??{
??if(x==Vt[j])?
??{
??flag=1;
??}
??}
??if(flag==1)/*如果是終結(jié)符*/
??{?
??if(x==‘#‘)//“#“被定義在終結(jié)符中
??{
??finish=1;/*結(jié)束標(biāo)記*/
??printf(“acc!\n“);/*接受?*/
??getchar();
??getchar();
??exit(1);
??}
??else?if(x==ch)
??{
??print();
??print1();
??printf(“%c匹配\n“ch);
??ch=B[++b];/*下一個輸入字符*/
??flag=0;/*恢復(fù)標(biāo)記*/
??}
??else/*出錯處理*/
??{
??print();
??print1();
??printf(“%c出錯\n“ch);/*輸出出錯終結(jié)符*/
??exit(1);
??}
??}
??else/*非終結(jié)符處理*/
??{
??for(j=0;j<=4;j++)
if(x==Vn[j])
{
m=j;/*行號*/
break;
}
??for(j=0;j<=5;j++)
if(ch==Vt[j])
{
n=j;/*列號*/
break;
}
??cha=C[m][n];
??if(cha.origin!=‘N‘)/*判斷是否為空*/
??{
print();
print1();
printf(“%c->“cha.origin);/*輸出產(chǎn)生式*/
for(j=0;j????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-06-03?20:23??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\
?????目錄???????????0??2015-06-03?20:23??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\Debug\
?????文件???????32256??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\Debug\lab2.exe
?????文件??????330292??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\Debug\lab2.ilk
?????文件??????486400??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\Debug\lab2.pdb
?????目錄???????????0??2015-06-03?20:23??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\ipch\
?????目錄???????????0??2015-06-03?20:23??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\ipch\lab2-26acea89\
?????文件?????2359296??2015-05-28?18:53??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\ipch\lab2-26acea89\lab2-61eb272d.ipch
?????文件?????2772992??2015-05-28?18:54??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2.sdf
?????文件?????????879??2015-05-17?15:55??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2.sln
?????文件???????13312??2015-05-28?18:54??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2.suo
?????目錄???????????0??2015-06-03?20:23??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\
?????目錄???????????0??2015-06-03?20:23??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\
?????文件????????1554??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\cl.command.1.tlog
?????文件????????3036??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\CL.read.1.tlog
?????文件?????????988??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\CL.write.1.tlog
?????文件?????????406??2015-05-17?17:02??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.exe.embed.manifest
?????文件?????????472??2015-05-17?17:02??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.exe.embed.manifest.res
?????文件?????????381??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.exe.intermediate.manifest
?????文件??????????91??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.lastbuildstate
?????文件????????5713??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.log
?????文件???????16748??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.obj
?????文件?????1179648??2015-05-17?15:55??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.pch
?????文件?????????713??2015-05-17?15:55??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.vcxprojResolveAssemblyReference.cache
?????文件???????????0??2015-05-17?15:55??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2.write.1.tlog
?????文件?????????198??2015-05-17?17:02??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\lab2_manifest.rc
?????文件???????????2??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\link.12100.read.1.tlog
?????文件???????????2??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\link.12100.write.1.tlog
?????文件???????????2??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\link.12100-cvtres.read.1.tlog
?????文件???????????2??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\link.12100-cvtres.write.1.tlog
?????文件???????????2??2015-05-26?08:32??自頂向下語法分析器的設(shè)計與實現(xiàn)\lab2\lab2\Debug\link.5328.read.1.tlog
............此處省略26個文件信息

評論

共有 條評論