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

資源簡介

編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先編譯原理語法分析中的算符優先

資源截圖

代碼片段和文件信息

/*	對于書證p110頁例6.3中的文法
?* 該文法服從算符優先文法的定義
?* 該文法多對應的算符優先關系系數關系表在書中p111頁
?* 該算法在書中117頁
?*/

#include?“stdio.h“
#include?“string.h“
#include?“malloc.h“
#define?maxsize?128


FILE?*fp;
char?check?(char?a[])
{
?if(strcmp(a“E+E“)==0)
?return?‘E‘;
?else?if(strcmp(a“E-E“)==0)
?return?‘E‘;
?else?if(strcmp(a“E*E“)==0)
?return?‘E‘;
?else?if(strcmp(a“E/E“)==0)
?return?‘E‘;
?else?if(strcmp(a“E^E“)==0)
?return?‘E‘;
?else?if(strcmp(a“(E)“)==0)
?return?‘E‘;
?else?if(strcmp(a“i“)==0)
?return?‘E‘;
?else?return?‘G‘; //錯誤控制
}

typedef?struct?node?
{
char?data[maxsize];
int?top;
}seqstack;

void?setnull(seqstack?*s) //置空棧
{
s->top=-1;
}

seqstack?*?push?(seqstack?*schar?x) //進棧
{
if(s->top==maxsize-1)
{
printf(“overflow!\n“);
return?NULL;
}
else
{
s->top++;
s->data[s->top]=x;
return?s;
}
}

void?pop?(seqstack?*s) //出棧
{
if(s->top<0)
printf(“underflow!\n“);
else
s->top--;
}

char?top(seqstack?*s) //取棧頂元素
{
if(s->top==-1)
{
printf(“stack?is?empty!\n“);
return?NULL;
}
else
return?(s->data[s->top]);
}


int?myequal?(char?a)
{
if(a==‘+‘)
return?0;
else?if(a==‘-‘)
return?1;
else?if(a==‘*‘)
return?2;
else?if(a==‘/‘)
return?3;
else?if(a==‘^‘)
return?4;
else?if(a==‘(‘)
return?5;
else?if(a==‘)‘)
return?6;
else?if(a==‘i‘)
return?7;
else?if(a==‘#‘)
return?8;
else
return?-1;
}

void?printseqstack(seqstack?*s) //打印出路徑
{
int?temp;
temp=s->top;
while?(temp>=0)
{
printf(“%c“s->data[temp]);
fputc(s->data[temp]fp);
temp--;
}
}

int?isvt(char?a[]int?nchar?x)
{
int?i;
for(i=0;i {
if(x==a[i])
break;
}
if(i>=n)
return?0; //不是該集合中的元素
else
return?1; //是該集合中的元素
}
void?main(void)
{

if((fp=fopen(“sign-frist.txt““w“))==NULL)
{
printf(“File?open?fail!\n“);
return;
}
printf(“\t\t**************算符優先關系矩陣*****************\n“);
fputs(“\t\t**************算符優先關系矩陣*****************\n“fp);
int?ijsum=0ktempa[9][9]={{11-1-1-1-11-11}{11-1-1-1-11-11}{1111-1-11-11}{1111-1-11-11}{1111-1-11-11}{-1-1-1-1-1-10-12}{111112121}{111112121}{-1-1-1-1-1-12-10}};
char?input[maxsize]ch1ch2VT[9]={‘+‘‘-‘‘*‘‘/‘‘^‘‘(‘‘)‘‘i‘‘#‘}Q;
char?V[10]={‘+‘‘-‘‘*‘‘/‘‘^‘‘(‘‘)‘‘i‘‘#‘‘E‘}; //定義所有的終結符和非終結符的集合
seqstack?*s1*s2;
for?(i=0;i<9;i++)
{
printf(“\t“);
fputs(“\t“fp);
for?(j=0;j<9;j++)
{
if(a[i][j]==2)
{
printf?(“\t“);
fputs(“\t“fp);
}
else?if(a[i][j]==0)
{
fputs(“=\t“fp);
printf(“=\t“);
}
else?if(a[i][j]==-1)
{
printf(“<\t“);
fputs(“<\t“fp);
}
else?if(a[i][j]==1)
{
printf(“>\t“);
fputs(“>\t“fp);
}
}
printf(“\n“);
fputs(“\n“fp);
}
printf(“Please?input?the?string?that?you?want?to?check:\n“);
gets(i

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

?????文件???????4937??2010-04-23?19:43??sign_frist.cpp

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

?????????????????4937????????????????????1


評論

共有 條評論