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

資源簡介

選擇部分C語言的語法成分(可參考附錄C.5)或選擇附錄C.3的簡單語言,采用遞歸下降的語法制導翻譯技術,設計一個一遍掃描的詞法語法語義分析程序。 注意與實驗1、2的銜接。 ?內容:設計并實現一個一遍掃描的詞法語法語義分析程序,將多條簡單賦值語句翻譯成后綴式或三地址代碼,要求有一定的出錯提示和錯誤恢復功能。 實驗報告內容要求:要給出所分析簡單語言語法結構的詞法說明、上下文無關文法描述,單詞的種別編碼方案,詞法分析程序的主要算法思想,以及所采用的語法語義分析方法的算法思想的詳細描述,測試結果與分析,實驗總結等。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

#define?_KEY_WORD_END?“waiting?for?your?expanding“

typedef?struct
{
int?typenum;
char?*?word;

}WORD;

struct?
{
char?result[8];
char?agl[8];
char?op[8];
char?ag2[8];
}quad[20];

char?input[255];
char?token[255]=““;
int?p_input;
int?p_token;
char?ch;
char?*rwtab[]={“begin““if““then““while““do““end“_KEY_WORD_END};
WORD?*?scaner();
int?syn;
int?kk=0;
int?k=0;
int?sum=0;
WORD?*?oneword=new?WORD;
char*?expression();
void?lrparser();
char*?factor();
char?*newtemp();
void?emit(char?*resultchar?*ag1char?*opchar?*ag2);
/*void?main()
{
int?over=1;
//WORD?*?oneword=new?WORD;
printf(“ENTER?Your?words(end?with?#):“);
scanf(“%[^#]s“input);
p_input=0;

//printf(“Your?words:\n%s\n“input);
/*while(over<1000&&over!=-1)
{
oneword=?scaner();
if(oneword->typenum<999)
printf(“(%d%s)“oneword->typenumoneword->word);

over=oneword->typenum;
}
oneword=scaner();
syn=oneword->typenum;
lrparser();
// printf(“\npress?#?to?exit:“);

// scanf(“%[^#]s“input);
}
*/
void?main()
{
int?over=1;
//WORD?*?oneword=new?WORD;
printf(“ENTER?Your?words(end?with?#):“);
scanf(“%[^#]s“input);
p_input=0;
oneword=scaner();
syn=oneword->typenum;
lrparser();
}

char?m_getch()
{
ch=input[p_input];
p_input=p_input+1;
return(ch);
}

void?getbc()
{
while(ch==‘?‘||ch==10)
{
ch=input[p_input];
p_input=p_input+1;
}
}

void?concat()
{
token[p_token]=ch;
p_token=p_token+1;
token[p_token]=‘\0‘;
}

int?letter()
{
if(ch>=‘a‘&&ch<=‘z‘||ch>=‘A‘&&ch<=‘Z‘)?return?1;
else?return?0;
}
int?digit()
{
if(ch>=‘0‘&&ch<=‘9‘)?return?1;
else?return?0;
}

int?reserve()
{
int?i=0;
while(strcmp(rwtab[i]_KEY_WORD_END))
{
if(!strcmp(rwtab[i]token))
{
return?i+1;
}
i=i+1;
}
return?10;
}

void?retract()
{
p_input?=p_input-1;
}

//數字轉換二進制

char?*?dtb()
{
return?NULL;
}

WORD?*scaner()
{

WORD?*myword=new?WORD;
myword->typenum=10;
myword->word=““;
p_token=0;
m_getch();
getbc();
if(letter())
{
while(letter()||digit())
{
concat();
m_getch();
}
retract();
myword->typenum=reserve();
myword->word=token;
return(myword);

}
else
if(digit())
{
while(digit())
{
concat();
m_getch();
}

retract();
myword->typenum=11;
myword->word=token;
return(myword);
}
else?switch(ch)
{
case?‘=‘:m_getch();
if(ch==‘=‘)
{
myword->typenum=39;
myword->word=“==“;
return(myword);
}
retract();
myword->typenum=25;
myword->word=“=“;
return(myword);
break;
case?‘+‘:
myword->typenum=13;
myword->word=“+“;
return(myword);
break;
case?‘-‘:
myword->typenum=14;
myword->word=“-“;
return(myword);
break;
case?‘*‘:
myword->typenum=15;
myword->word=“*“;
return(myword);

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

?????文件???????8778??2014-05-10?02:10??編譯原理-語義分析\C3.cpp

?????文件?????200758??2014-05-10?13:04??編譯原理-語義分析\C3.exe

?????文件????????171??2014-05-10?13:48??編譯原理-語義分析\測試數據.txt

?????文件??????68608??2014-05-10?13:37??編譯原理-語義分析\測試文件.doc

?????文件??????81920??2014-05-10?13:36??編譯原理-語義分析\程序運行說明文件.doc

?????目錄??????????0??2014-05-11?16:46??編譯原理-語義分析

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

???????????????360235????????????????????6


評論

共有 條評論