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

  • 大小: 107KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-09-11
  • 語言: 其他
  • 標(biāo)簽: 編譯原理??c++??

資源簡介

根據(jù)某一文法編制調(diào)試LL(1)分析程序,以便對任意輸入的符號串進(jìn)行分析。

資源截圖

代碼片段和文件信息

/*LL(1)分析法源程序,只能在VC++中運(yùn)行??*/

#include
#include
#include
#include
char?A[20]; /*分析棧*/
char?B[20]; /*剩余串*/
char?v1[20]={‘i‘‘+‘‘*‘‘(‘‘)‘‘#‘}; /*終結(jié)符??*/
char?v2[20]={‘E‘‘G‘‘T‘‘S‘‘F‘}; /*非終結(jié)符???*/

int?j=0b=0top=0l; /*L為輸入串長度?*/

typedef?struct?type /*產(chǎn)生式類型定義??*/
{
char?origin; /*大寫字符??*/
char?array[5]; /*產(chǎn)生式右邊字符?*/
int?length; /*字符個數(shù)??????*/
}type;

type?etgg1ss1ff1; /*結(jié)構(gòu)體變量??*/
type?C[10][10]; /*預(yù)測分析表??*/


/*--------------------------------*/
/*輸出分析棧??*/
void?print()
{
int?a; /*指針*/
for(a=0;a<=top+1;a++)
printf(“%c“A[a]);
printf(“\t\t“);
}


/*--------------------------------*/
/*輸出剩余串*/
void?print1()
{
int?j;
for(j=0;j printf(“?“);
for(j=b;j<=l;j++)
printf(“%c“B[j]);
printf(“\t\t\t“);
}


/*--------------------------------*/
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“TG“); e.length=2;
t.origin=‘T‘; strcpy(t.array“FS“); t.length=2;
g.origin=‘G‘; strcpy(g.array“+TG“); g.length=3;
g1.origin=‘G‘; g1.array[0]=‘^‘; g1.length=1;
????s.origin=‘S‘; strcpy(s.array“*FS“); s.length=3;
s1.origin=‘S‘; s1.array[0]=‘^‘; s1.length=1;
f.origin=‘F‘; strcpy(f.array“(E)“); f.length=3;
f1.origin=‘F‘; f1.array[0]=‘i‘; f1.length=1;

/*初始化分析表*/
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]=g; C[1][4]=g1; C[1][5]=g1;
C[2][0]=t; C[2][3]=t;
C[3][1]=s1; C[3][2]=s; C[3][4]=C[3][5]=s1;
C[4][0]=f1; C[4][3]=f;
???
printf(“提示:本程序只能對由‘i‘‘+‘‘*‘‘(‘‘)‘構(gòu)成的以‘#‘結(jié)束的字符串進(jìn)行分析\n“);
printf(“請輸入要分析的字符串:“);
???
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==v1[j])?
{
??flag=1;
??break;
}

if(flag==1)/*如果是終結(jié)符*/
{
??if(x==‘#‘)
??{
??finish=1; /*結(jié)束標(biāo)記*/
??printf(“acc!\n“); /*接受?*/
??getchar();
??getchar();
??exit(1);
??}
??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==v2[j])
{
m=j; /*?m:?分析表行號*/
break;
}

for(j=0;j<=5;j++)
if(ch==v1[j])
{
n=j; /*n:?分析表列號*/
break;
}

cha=C[m][n];
if(cha.origin!=‘N‘)/*判斷是否為空*/

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

?????文件??????36352??2008-10-26?20:43??LL(1)分析\實(shí)驗(yàn)05-LL(1)分析.doc

?????文件?????????47??2008-10-05?19:47??LL(1)分析\t1-lower2Upper.lex

?????文件?????????57??2008-10-13?13:51??LL(1)分析\t2-printIdentifier.lex

?????文件?????????15??2008-10-13?15:46??LL(1)分析\t3-printEverything.lex

?????文件????????113??2008-11-05?15:59??LL(1)分析\t4-dividedBy7.lex

?????文件??????53248??2008-11-18?20:36??LL(1)分析\Debug\vc60.pdb

?????文件??????12463??2008-11-18?20:36??LL(1)分析\Debug\3-LL1-v2.obj

?????文件?????168003??2008-11-18?20:36??LL(1)分析\Debug\3-LL1-v2.exe

?????文件?????427008??2008-11-18?20:36??LL(1)分析\Debug\3-LL1-v2.pdb

?????文件??????41984??2008-11-18?20:37??LL(1)分析\3-LL1-v2.ncb

?????文件????????744??2008-11-18?20:36??LL(1)分析\3-LL1-v2.plg

?????文件???????3425??2008-11-18?20:13??LL(1)分析\3-LL1-v2.dsp

?????文件???????3747??2008-11-18?20:35??LL(1)分析\3-LL1-v2.c

?????文件??????48640??2008-11-18?20:37??LL(1)分析\3-LL1-v2.opt

?????文件????????541??2008-11-18?20:37??LL(1)分析\3-LL1-v2.dsw

?????目錄??????????0??2008-11-17?11:20??LL(1)分析\Debug

?????目錄??????????0??2008-11-17?10:36??LL(1)分析

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

???????????????796387????????????????????17


評論

共有 條評論