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

  • 大小: 1.36MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-26
  • 語言: 其他
  • 標簽: good??

資源簡介

完整的編譯原理語法分析器的全套,還有實驗報告。。。

資源截圖

代碼片段和文件信息

//提供一個編譯原理的語義分析程序??你可以直接復制?用TC進行調試
#include?“stdio.h“
#include?“string.h“
#include??
#include?
#include?“stdlib.h“

char?prog[100]token[8]ch;
char?*rwtab[6]={“begin““if““then““while““do““end“};
int?synpmnsumq;
int?kk;
//四元式表的結構如下:
struct?
{
char?result1[8];
char?ag11[8];
char?op1[8];
char?ag21[8];
}quad[20];


char?*factor();
char?*expression();
int?yucu();
char?*term();
int?statement();
int?lrparser();
char?*newtemp();
void?scaner();
void?emit(char?*resultchar?*ag1char?*opchar?*ag2);


void?main()
{?
FILE?*fp1*fp2;

if((fp1=fopen(“輸入.txt““rt“))==NULL)?
{?
printf(“Cannot?open?輸入.txt\n“);?
getch();?
exit(1);?
}?
if((fp2=fopen(“輸出.txt““wt+“))==NULL)?
{?
printf(“Cannot?create?輸出.txt?FILE.strike?any?key?exit“);?
getch();?
exit(1);?
}?

int?j;
q=p=kk=0;
p=0;
//printf(“Please?Input?a?String(end?with?‘#‘):\n“);
while(ch!=‘#‘)
{
????????ch?=?fgetc(fp1);
if(ch?==?EOF)
{
printf(“文件為空,請檢查后再嘗試!“);
return?;
}

prog[p++]=ch;
}
if(prog[p]==‘#‘)
{
printf(“輸入的待分析的串不是以‘#‘結尾請修改之后再嘗試!\n“);
return;
}
p=0;
????char?buffer1[200]?=?{0};
sprintf(buffer1“詞法分析結果如下:\n“);
fputs(buffer1fp2);
//printf(“詞法分析結果如下:\n“);
????do
{
scaner();
switch(syn)
{
case?11:
//printf(“(%d%d)\n“synsum);
????????????sprintf(buffer1“(%d?%d)?\n“synsum);
????fputs(buffer1fp2);
break;
default:
//printf(“(%d%s)\n“syntoken);
sprintf(buffer1“(%d?%s)\n“syntoken);
????fputs(buffer1fp2);
break;
}
}while(syn!=0);
printf(“\n“);
????
p=0;
char??buffer[200]={0};
sprintf(buffer“語法分析結果如下:(以四元式形式輸出)\n“);
fputs(bufferfp2);
?????//printf(“語法分析結果如下:(以四元式形式輸出)\n“);
scaner();//掃描函數
lrparser();
if(q>19)
printf(“?to?long?sentense!\n“);
else?
{

???????
for?(j=0;j {
//printf(“(?%s?%s?%s?%s)?\n\n“quad[j].op1quad[j].ag11quad[j].ag21quad[j].result1);
sprintf(buffer“(?%s?%s?%s?%s)?\n\n“quad[j].op1quad[j].ag11quad[j].ag21quad[j].result1);
????fputs(bufferfp2);
}
}
printf(“已把相應的詞法和語法的結果保存到相應的文件中,請查閱!\n“);
fclose(fp1);
fclose(fp2);
}
int?lrparser()
{
int?schain=0;
kk=0;
if?(syn==1)?//得到begin
{?
scaner();//掃描下個字符
schain=yucu();
if(syn==6)//得到end
{?
scaner();//掃描下個字符
if((syn==0)&&(kk==0))??//得到#
printf(“Success!\n“);
}
else?
{
if(kk!=1)
printf(“short?of?‘end‘?!\n“);
kk=1;
getch();
exit(0);
}
}
else?
{?
printf(“short?of?‘begin‘?!\n“);
kk=1;
getch();
exit(0);
}
return?(schain);
}
int?yucu()
{?
int?schain=0;
schain=statement();
while(syn==26)
{?
scaner();
schain=statement();
}
return?(schain);
}
int?statement()
{?
char?tt[8]eplace[8];
int?schain=0;
if?(syn==10)
{
strcpy(tttoken);?//tt中保存的是第一個字符
scaner();
if(syn==18)????//檢測到=號
{
scaner();
strcpy(eplaceexpression());
emit(tt

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

?????文件???????6695??2008-06-18?12:04??編譯原理課程設計\語法分析.cpp

?????文件????1394176??2008-06-19?17:31??編譯原理課程設計\課程設計.doc

?????文件??????41984??2008-06-19?10:55??編譯原理課程設計\語法分析.ncb

?????文件????????718??2008-06-19?10:37??編譯原理課程設計\語法分析.plg

?????文件?????????37??2008-06-19?10:26??編譯原理課程設計\輸入.txt

?????文件????????328??2008-06-19?10:36??編譯原理課程設計\輸出.txt

?????文件???????3427??2008-06-19?10:23??編譯原理課程設計\語法分析.dsp

?????文件??????27648??2008-06-19?11:36??編譯原理課程設計\編譯任務書.doc

?????文件??????25600??2008-06-19?10:41??編譯原理課程設計\封面.doc

?????文件??????48640??2008-06-19?10:55??編譯原理課程設計\語法分析.opt

?????文件????????541??2008-06-19?10:55??編譯原理課程設計\語法分析.dsw

?????文件??????41984??2008-06-19?10:37??編譯原理課程設計\Debug\vc60.idb

?????文件??????53248??2008-06-19?10:24??編譯原理課程設計\Debug\vc60.pdb

?????文件?????196680??2008-06-19?10:37??編譯原理課程設計\Debug\語法分析.exe

?????文件?????205004??2008-06-19?10:37??編譯原理課程設計\Debug\語法分析.ilk

?????文件?????484352??2008-06-19?10:24??編譯原理課程設計\Debug\語法分析.pdb

?????文件?????238324??2008-06-19?10:24??編譯原理課程設計\Debug\語法分析.pch

?????文件??????23104??2008-06-19?10:37??編譯原理課程設計\Debug\語法分析.obj

?????目錄??????????0??2008-06-22?10:16??編譯原理課程設計\Debug

?????目錄??????????0??2008-06-22?10:16??編譯原理課程設計

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

??????????????2792490????????????????????20


評論

共有 條評論