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

資源簡介

這是編譯原理語義分析程序 c++實現(xiàn),運用優(yōu)先表的方法實現(xiàn),簡單,實用

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
using?namespace?std;
/*在輸出文件save.txt中,相應數(shù)字意義如下
關鍵字--1
標示符--2
數(shù)字--3
界限符--4
運算符--5
錯誤--0
*/
void?alpha(ifstream?&?infileofstream?&?outfilechar?s);
int?punct(ifstream?&?infileofstream?&?outfilechar?sbool?nocout);
void?digit(ifstream?&?infileofstream?&?outfilechar?s);
void?cifa();

int?cmpoper(string?astring?b);
int?main()
{
cifa();

system(“pause“);
return?0;
}

void?cifa()//此法分析子程序
{
ifstream?infile;
ofstream?outfile;
char?s;
infile.open(“biaodashi.txt“);
outfile.open(“save.txt“ofstream::out);
while(!infile.eof())
{
infile.read(&ssizeof(char));
if(infile.eof())break;
while(isspace(s))//是空格就讀下一個
infile.read(&ssizeof(char));
if(isalpha(s)?||?s==‘_‘)?alpha(infileoutfiles);//是字母就調(diào)用關鍵字或標識符子程序
else?if(isdigit(s))?digit(infileoutfiles);//是數(shù)字就調(diào)用數(shù)字分析子程序
else?if(ispunct(s))?punct(infileoutfiles0);//是符號就調(diào)用界限符或運算符子程序
else?{cout< }
infile.close();
outfile.close();
}


void?alpha(ifstream?&?infileofstream?&?outfilechar?s)
{
char?buff[40];
int?i=0;
bool?label=truenocout=true;
char?*?key[]={“include““iostream““using““namespace““std““int““main““cout““return“};
int?n=9;
while(?!isspace(s)?)//如果下一個字符不是空格或其他符號就把字母或數(shù)字或下劃線讀入數(shù)字儲存起來
{
if(punct(infileoutfilesnocout)==0?||?punct(infileoutfilesnocout)==1)?{infile.seekg(-1ios_base::cur);break;}
if(?!((s==‘_‘)?||?(isalpha(s)?)?||?(isdigit(s)?))?)?label=false;
cout< outfile< buff[i]=s;
i=i+1;
infile.read(&ssizeof(char));
}
if(label==false)?{cout<<“ wrongA“< else
{//把讀取的字符串與關鍵字比較,判斷其是關鍵字還是標識符
buff[i]=‘\0‘;
for(i=0;i {
if(strcmp(buffkey[i])==0)?{cout<<“ 關鍵字“< else?label=false;
}
if(label==false)?{cout<<“ 標識符“< }
}

int?punct(ifstream?&?infileofstream?&?outfilechar?sbool?nocout)
{//界限符判斷
int?in=8;
char?bound[]={‘“‘‘{‘??‘}‘??‘‘??‘;‘??‘<‘??‘>‘??‘\‘‘};
for(i=0;i {
if(s==bound[i])
if?(nocout)?return?0;
else?{cout< }
if(i
else?if(i==0)
{
infile.read(&ssizeof(char));//若連著兩個‘“‘則輸出第二個‘“‘后退出本函數(shù)
if(s==‘“‘)?{cout< else?infile.seekg(-1ios_base::cur);

while((!infile.eof()))//判斷字符串
{
infile.read(&ssizeof(char));
if(s!=‘“‘)?cout< else?
{
cout<<“ 字符串“< outfile<<“ 6“< break;
}
}
cout< outfile< }
//運算符判斷
int?m=9;
char?operat[]={?‘=‘??‘+‘??‘-‘??‘*‘??‘/‘??‘#‘??‘(‘??‘)‘?‘.‘};
for(i=0;i {
if(s==operat[i])
if?(nocout)?return?1;
else?{cout< }

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

?????文件?????????22??2009-05-20?15:52??taoeryuyi60\biaodashi.txt

?????文件????????201??2009-05-18?10:14??taoeryuyi60\compile.txt

?????文件?????585781??2009-06-15?21:08??taoeryuyi60\Debug\taoeryuyi60.exe

?????文件?????843944??2009-06-15?21:08??taoeryuyi60\Debug\taoeryuyi60.ilk

?????文件????2547872??2009-06-15?21:08??taoeryuyi60\Debug\taoeryuyi60.pch

?????文件????1197056??2009-06-15?21:08??taoeryuyi60\Debug\taoeryuyi60.pdb

?????文件?????132096??2009-06-15?21:08??taoeryuyi60\Debug\vc60.idb

?????文件?????118784??2009-06-15?21:08??taoeryuyi60\Debug\vc60.pdb

?????文件?????297266??2009-06-15?21:08??taoeryuyi60\Debug\yuyi.obj

?????文件????????110??2009-06-15?21:08??taoeryuyi60\save.txt

?????文件???????4337??2009-05-20?15:21??taoeryuyi60\taoeryuyi60.dsp

?????文件????????530??2009-05-20?14:45??taoeryuyi60\taoeryuyi60.dsw

?????文件??????50176??2009-06-15?21:08??taoeryuyi60\taoeryuyi60.ncb

?????文件??????53760??2009-06-15?21:08??taoeryuyi60\taoeryuyi60.opt

?????文件????????903??2009-06-15?21:08??taoeryuyi60\taoeryuyi60.plg

?????文件???????3923??2009-06-16?16:31??taoeryuyi60\yuyi.cpp

?????文件?????????15??2009-06-15?21:08??taoeryuyi60\yuyi.txt

?????文件??????28672??2009-06-24?00:47??編譯課設_FINAL_報告\任務書.doc

?????文件?????401408??2009-06-24?00:47??編譯課設_FINAL_報告\編譯課程設計報告_劉濤.doc

?????文件??????98816??2009-06-24?00:48??編譯課設_FINAL_報告\課程設計封面.doc

?????目錄??????????0??2009-07-04?16:09??taoeryuyi60\Debug

?????目錄??????????0??2009-07-04?16:09??taoeryuyi60

?????目錄??????????0??2009-07-04?16:09??編譯課設_FINAL_報告

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

??????????????6365672????????????????????23


評論

共有 條評論