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

資源簡介

編譯原理課程設計代碼 賦值語句的遞歸下降翻譯程序設計編譯原理課程設計代碼 賦值語句的遞歸下降翻譯程序設計編譯原理課程設計代碼 賦值語句的遞歸下降翻譯程序設計

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
using?namespace?std;
char?prog[80]token[8];
char?ch;
int?synpq=0k=0kk=0mnsum;
char?temp[5];
string?rwtab[6]={“begin““if““then““while““do““end“};
void?scaner();
string?expression();
string?factor();
string?lrparser();
string?statement();
string?term();
string?yucu();
int?str2int(?string?str);
string?int2str(?int?num);

string?newtemp()
{
sprintf(temp“T%d“++k);
return?(string)temp;
}

int?main(int?argcchar?**?argv)
{
if(argc<3)
{
cout<<“\t\t本軟件在dos環境下使用!\n?使用方法:tzcompile?源文件名?中間代碼文件名\n“< exit(1);
}
p=0;
q=0k=0kk=0;
string?result=““;
ifstream?fin(argv[1]);
ofstream?fout(argv[2]);
q=0;
cout< cout<<“開始讀取文件“< do
{
?ch=fin.get();
?prog[p++]=ch;
}while(ch!=‘#‘);
cout<<“文件的內容為:“< cout< p=0;
q=0;
result=lrparser();
cout<<“文件的逆波蘭式為:\n“< fout< fin.close();
fout.close();
cout<<“press?any?key?to?continue...“;
cin.get();
}
void?scaner()
{
for(n=0;n<8;n++)?token[n]=NULL;
ch=prog[p++];
while(ch==‘?‘?||?ch==‘\n‘||?ch==‘\t‘)ch=prog[p++];
if((ch>=‘A‘?&&?ch<=‘Z‘)?||?(ch>=‘a‘?&&?ch<=‘z‘))//ch?是字母字符
{
m=0;
do
{
token[m++]=ch;/*ch->token;*/
ch=prog[p++];
}while((ch>=‘A‘?&&?ch<=‘Z‘)?||?(ch>=‘a‘?&&?ch<=‘z‘)?||?(ch>=‘0‘?&&?ch<=‘9‘));/*ch為字母字符或數字字符*/
token[m++]=‘\0‘;
p--;//回退一個字符;
syn=10;
for(n=0;n<6;n++)
if(token==rwtab[n])
{
syn=n+1;
break;
}
}
else
{
if(ch>=‘0‘?&&?ch<=‘9‘/*ch是數字字符*/)
{
sum=0;
m=0;
while(ch>=‘0‘?&&?ch<=‘9‘/*ch是數字字符*/)
{
sum=sum*10+ch-‘0‘;

ch=prog[p++];
}

p--;//回退一個字符;
syn=11;
}
else
{
switch(ch)
{
case?‘<‘:
m=0;
token[m++]=ch;
ch=prog[p++];
if(ch==‘>‘)
{
syn=21;
token[m++]=ch;
}
else?if(ch==‘=‘)
{
syn=22;
token[m++]=ch;
}
else
{
syn=20;
p--;//回退一個字符
}
break;
case?‘>‘:
m=0;
token[m++]=ch;//ch->token;
ch=prog[p++];
if(ch==‘=‘)
{
syn=24;//將>=的種別碼->syn;
token[m++]=ch;//ch->token;
}
else
{
syn=23;//將>的種別碼->syn;
p--;//回退一個字符
}
break;
case?‘:‘:
????m=0;
token[m++]=ch;//ch->token;
//cout<<“when?read?:ch=??“< ch=prog[p++];
if(ch==‘=‘)
{
token[m++]=ch;
//cout<<“when?read?=token=??“< syn=18;//將:=的種別碼->syn;

}
else
{
syn=17;//將>的種別碼->syn;
p--;//回退一個字符
}
break;
case?‘+‘:

syn=13;
token[0]=ch;
break;
case?‘-‘:
syn=14;
token[0]=ch;
break;
case?‘*‘:
syn=15;
token[0]=ch;
break;
case?‘/‘:
syn=16;
token[0]=ch;
break;
case?‘=‘:
syn=25;
token[0]=ch;
break;
case?‘;‘:
syn=26;

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

?????文件?????????54??2009-06-19?01:55??代碼-飛\test\run.bat

?????文件?????573440??2009-06-19?01:38??代碼-飛\test\tzcompile.exe

?????文件?????593920??2009-06-19?01:15??代碼-飛\test\tzvm.exe

?????文件?????????73??2009-06-19?12:11??代碼-飛\test\out.txt

?????文件??????????0??2009-06-19?12:12??代碼-飛\test\result.txt

?????文件?????????76??2009-06-19?01:45??代碼-飛\test\code2.txt

?????文件?????????36??2009-06-19?01:46??代碼-飛\test\code0.txt

?????文件?????????65??2009-06-19?02:00??代碼-飛\test\code3.txt

?????文件?????????40??2009-06-19?01:46??代碼-飛\test\code1.txt

?????文件???????3428??2009-06-19?01:15??代碼-飛\tzvm.cpp

?????文件???????6055??2009-06-19?01:38??代碼-飛\tzcompile.cpp

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

??????????????1177187????????????????????11


評論

共有 條評論