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

  • 大小: 762KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-18
  • 語言: 其他
  • 標簽:

資源簡介

東北大學軟件學院編譯原理課程的代碼及報告

資源截圖

代碼片段和文件信息

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

?char?ID[50][12];//符號表
?float?C[20];?//常數表
?int?c?=?0;

int?aut[10][7]={??2?0?0?0?8?9?15
??2?3?511?0?0?11
??4?0?0?0?0?0?0
??4?0?511?0?0?11
??7?0?0?6?0?0?0
??7?0?0?0?0?0?0
??7?0?011?0?0?11
??8?0?0?0?8?0?12
??0?0?0?0?0?10?14
??0?0?0?0?0?0?13};

char?keywords[28][12]={“program““begin““end““var““while““do“
“repeat““until““for““to““if““then““else“??
“;“?“:“?“(“?“)“?““?“:=“?“+“?“-“?“*“?“/“
“>“?“>=“?“==“?“<“?“<=“};

//code為0?代表為常數
//?code為1?代表為關鍵字
//code為2?代表為標識符
//?code為3?代表為界符
//value代表為該單詞在其各個表中的位置

struct?token
??????{?int?code;
???????int?value;};?//Token結構

//函數IsLetter()判斷字符ch是否為字母
int?IsLetter(char?ch)
{
if((ch?>=?‘A‘&&ch?<=?‘Z‘)?||?(ch?>=?‘a‘&&ch?<=?‘z‘))
{
return?1;
}else
{
return?0;
}
}
//函數IsDigit()判斷字符ch是否為數字
int?IsDigit(char?ch)
{
if(ch?>=?‘0‘&&ch?<=?‘9‘)
{
return?1;
}else
{
return?0;
}
}

//函數IsID()判斷字符ch是否為單界符
int?IsID(char?ch)
{
??if(ch?==‘;‘||ch?==‘:‘||ch?==‘(‘||ch?==‘)‘||ch?==‘‘||ch?==‘=‘
?||ch?==‘+‘||ch?==‘-‘||ch?==‘*‘||ch?==‘/‘||ch?==‘<‘||ch?==‘>‘)
??{
?return?1;
??}else
??{
??return?0;
??}
}

//查狀態變換表
int?find(int?schar?ch)??//s是當前狀態,ch是當前字符,返回值是轉換后狀態
{
//返回11狀態
//s?==?2
??if(s?==?2?&&?(ch!=‘.‘?&&?!IsDigit(ch)?&&?ch?!=?‘E‘?&&?ch!=?‘e‘))
??{
??return?11;
??}
??//s?==?4
????if(s?==?4?&&?(!IsDigit(ch)?&&?ch?!=?‘E‘?&&?ch!=?‘e‘))
??{
??return?11;
??}
?//s?==?7
??if(s?==?7?&&??!IsDigit(ch))
??{
??return?11;
??}

??//返回12狀態
??if(s?==?8?&&?!IsDigit(ch)?&&!IsLetter(ch))
??{
??return?12;
??}


???//返回13狀態
??if(s?==?10)
??{
??return?13;
??}

??//返回14狀態
??if(s?==?9?&&?!IsID(ch))
??{
??return?14;
??}

??//返回15狀態
??if(s?==?1?&&?!IsDigit(ch)?&&?!IsLetter(ch)?&&?!IsID(ch))
??{
return?15;
??}
??

//查狀態轉換矩陣aut[10][7];
?if(IsDigit(ch))
?{
?return?aut[s-1][0];
?}else
?{
?if(IsLetter(ch))
?{
?if(ch?==‘E‘||ch?==‘e‘?&&(s?==?2?||?s?==?4))
?{
return?aut[s-1][2];
?}
?return?aut[s-1][4];
?}else
?{
?if(ch?==‘.‘)
?{
return?aut[s-1][1];
?}else
?{
?if(IsID(ch))
?{
?if((ch?==‘+‘||ch?==‘-‘)&&(s!=1)?&&?(s!=9))
?{
return?aut[s-1][3];
?}
?return?aut[s-1][5];
?}else
?{
?return?aut[s-1][6];
?}
???
?}
?}
?}
??
}

//將w[i]中的符號拼接到strTOKEN的尾部函數
char?*?mystrcmp(char?*str?char?w)?
{
int?i=0;?
while(str[i]!=?NULL)?
i++;?
if(w?!=‘\0‘?)
//要為下一個字符分配內存
str[i]?=?w;
return?str;
}
//將常數插入常數表返回常數表指針
int?InsertConst(float?num)
{
C[c]?=?num;
return?c++;
}

//如果strTOKEN為關鍵字或界符返回關鍵字表或界符表的序號否則為標識符返回0
int?Reserve(char?*strTOKEN)
{
bool?temp?=?0;
for(int?i?=?1;i?<=?28;i++)
{
if(strlen(keywords[i])?==?strlen(strTOKEN))
{

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

?????文件?????333824??2008-10-29?08:07??編譯原理張鏢20063506\編譯方法實驗報告張鏢.doc

?????文件???????2849??2008-10-29?10:52??編譯原理張鏢20063506\實驗二\translator.cpp

?????文件???????4343??2008-04-30?22:21??編譯原理張鏢20063506\實驗二\translation.dsp

?????文件????????545??2008-04-30?21:31??編譯原理張鏢20063506\實驗二\translation.dsw

?????文件??????50176??2008-10-28?22:21??編譯原理張鏢20063506\實驗二\translation.ncb

?????文件??????48640??2008-10-28?22:21??編譯原理張鏢20063506\實驗二\translation.opt

?????文件????????911??2008-10-28?22:20??編譯原理張鏢20063506\實驗二\translation.plg

?????文件?????548959??2008-10-28?22:20??編譯原理張鏢20063506\實驗二\Debug\translation.exe

?????文件????1123328??2008-10-28?22:20??編譯原理張鏢20063506\實驗二\Debug\translation.pdb

?????文件?????222200??2008-10-28?22:20??編譯原理張鏢20063506\實驗二\Debug\translator.obj

?????文件?????118784??2008-10-28?22:20??編譯原理張鏢20063506\實驗二\Debug\vc60.pdb

?????文件???????5827??2008-10-29?10:50??編譯原理張鏢20063506\實驗一\scaner.cpp

?????文件???????9295??2008-10-26?19:05??編譯原理張鏢20063506\scanComplier\complier.cpp

?????文件???????4350??2008-04-10?18:53??編譯原理張鏢20063506\scanComplier\scanComplier.dsp

?????文件????????549??2008-04-10?13:58??編譯原理張鏢20063506\scanComplier\scanComplier.dsw

?????文件??????50176??2008-10-26?19:09??編譯原理張鏢20063506\scanComplier\scanComplier.ncb

?????文件??????49664??2008-10-26?18:58??編譯原理張鏢20063506\scanComplier\scanComplier.opt

?????文件???????1506??2008-10-26?19:06??編譯原理張鏢20063506\scanComplier\scanComplier.plg

?????文件??????27631??2008-10-26?19:06??編譯原理張鏢20063506\scanComplier\Debug\complier.obj

?????文件??????????0??2008-10-26?19:06??編譯原理張鏢20063506\scanComplier\Debug\complier.sbr

?????文件?????262249??2008-10-26?19:06??編譯原理張鏢20063506\scanComplier\Debug\scanComplier.exe

?????文件?????590848??2008-10-26?19:06??編譯原理張鏢20063506\scanComplier\Debug\scanComplier.pdb

?????文件??????61440??2008-10-26?19:06??編譯原理張鏢20063506\scanComplier\Debug\vc60.pdb

?????目錄??????????0??2008-10-29?11:10??編譯原理張鏢20063506\實驗二\Debug

?????目錄??????????0??2008-10-29?11:09??編譯原理張鏢20063506\scanComplier\Debug

?????目錄??????????0??2008-10-29?10:53??編譯原理張鏢20063506\實驗二

?????目錄??????????0??2008-10-29?10:53??編譯原理張鏢20063506\實驗一

?????目錄??????????0??2008-10-29?11:09??編譯原理張鏢20063506\scanComplier

?????目錄??????????0??2008-10-29?10:53??編譯原理張鏢20063506

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

............此處省略2個文件信息

評論

共有 條評論

相關資源