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

  • 大小: 378.55 KB
    文件類型: .rar
    金幣: 1
    下載: 1 次
    發布日期: 2024-10-09
  • 語言: C/C++
  • 標簽:

資源簡介

這是一個由C語言編寫的語法分析器,采用算符優先算法,source文件中讀取算符優先分法后構造FIRSTVT和LASTVT集,并構造優先關系表,最有打印詳細規約過程。

資源截圖

代碼片段和文件信息

#include?
#include??
#include??
#include?
#include?
#include?

#define??M?20
#define??N?20
#define?SIZE??50
#define?NUM?10



typedef?struct{
char?E;
char?e;
}Element;


typedef?struct{
Element?*base;
Element?*top;
int?stacksize;
}SqStack;

int?Line;
char?F[M];
char?f[N];
char?FT[M][N];
char?FV[M][N];
SqStack?s;

void?InitStack(SqStack?&s){
s.base=(Element*)malloc(SIZE*sizeof(Element));
if(!s.base)
exit(0);
s.top=s.base;
s.stacksize=SIZE;
}

void?Push(SqStack?&sElement?&e){
if(s.top-s.base>=s.stacksize){
s.base=(Element*)realloc(s.base(s.stacksize+NUM)*sizeof(Element));
if(!s.base)
exit(0);
s.top=s.base+s.stacksize;
s.stacksize+=NUM;
}

s.top->E=e.E;
s.top->e=e.e;
s.top++;
}

void?Pop(SqStack?&sElement?&f)
{
if(s.top==s.base)
printf(“棧以空!“);
s.top--;
f.e=s.top->e;
f.E=s.top->E;
}

int??IsEmpty(SqStack?s)
{
if(s.top==s.base)
return?1;
else
return?0;
}



int?IsF(char?ch)
{?
if(ch!=‘-‘&&ch!=‘>‘&&ch!=‘|‘)
{
if(ch>=‘A‘&&ch<=‘Z‘)?
return?1;
else
return?0;
????}
else
return?2;
??

}

int?Judge(char?*pchar?ch)
{
??int?i;
??for(i=0;i??{
????if(p[i]==ch)
???????return?0;
??}
??return?1;
}


int??Choose(char?ch)
{
if(ch==‘-‘||ch==‘>‘)
return?0;
????if(ch==‘|‘)
????????return?1;
????else
return?2;
}
void?Init(char?T[][N])
{
int?ij;
for(i=0;i for(j=0;j T[i][j]=0;
}



void?GetBC()
{
FILE?*fp;
????char?ch;
????int?i=0j=0;

????if((fp=fopen(“d:\\source.txt““r“))==NULL)
{

printf(“open?file?error!“);
????????exit(0);
????}


????while(!feof(fp))
????{
ch=fgetc(fp);
if(ch==‘\n‘)
continue;
????????if(IsF(ch)==1)
{
if(Judge(Fch))
???????????????F[i++]=ch;

}
????????if(IsF(ch)==0)
{
if(Judge(fch))
????????????????f[j++]=ch;
}
????}

????F[i]=‘\0‘;
????f[--j]=‘\0‘;
????fclose(fp);
}

void?GetPro(char?p[][N]?)
{
FILE?*fp;
????char?ch;
????int?i=0j=0;
????int?k=0flag=0;
????if((fp=fopen(“d:\\source.txt““r“))==NULL)
{
printf(“Open?error!“);
????????exit(1);
}

????for(i=0;flag==0;i++)
????{
??????
???????for(j=0;j????????{?
????if(k!=0)
{
k=0;
????????????????p[i][j]=p[i-1][j];
continue;
}

???ch=fgetc(fp);
???if(ch==‘\n‘)
???break;
???????????if(feof(fp)>0)
???{
???flag=1;
???????break;
???}
???????????if(Choose(ch)!=0)
???{
???if(ch!=‘|‘)
???????????????????p[i][j]=ch;
???????????????else
???{
???k++;
???????break;

???}???
???}
???else
???j--;
???????}
???????p[i][j]=‘\0‘;
???????
???

??}
???Line=i;
???printf(“已從文件source.txt中讀取你的文法!\n\n“);
???fclose(fp);

}

void?Insert(char?Pchar?achar?T[][N])
{
int?ij;
Element?W;
for(i=0;i if(F[i]==P)
break;
fo

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

?????文件??????58368??2009-05-17?22:57??language\language.ncb

?????文件??????66560??2009-05-17?22:56??language\Debug\vc60.idb

?????文件??????61440??2009-05-17?22:53??language\Debug\vc60.pdb

?????文件?????196659??2009-05-17?22:53??language\Debug\language.exe

?????文件?????549888??2009-05-17?22:53??language\Debug\language.pdb

?????文件??????22331??2009-05-17?20:01??language\Debug\Test.obj

?????文件?????290832??2009-05-17?20:02??language\Debug\Test.pch

?????文件?????451584??2009-05-17?20:09??language\Debug\Test.pdb

?????文件?????290832??2009-05-17?21:29??language\Debug\language.pch

?????文件?????253668??2009-05-17?22:53??language\Debug\language.ilk

?????文件??????31258??2009-05-17?22:53??language\Debug\language.obj

?????文件????????752??2009-05-17?22:53??language\language.plg

?????文件???????3425??2009-05-17?22:53??language\language.dsp

?????文件??????10060??2009-05-17?22:57??language\language.cpp

?????文件??????48640??2009-05-17?22:57??language\language.opt

?????文件????????522??2009-05-17?22:57??language\language.dsw

?????目錄??????????0??2009-05-15?23:04??language\Debug

?????目錄??????????0??2009-05-15?23:04??language

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

??????????????2336819????????????????????18


評論

共有 條評論

相關資源