資源簡介
編譯原理的課后附錄實驗,是源程序哦!運行好的!

代碼片段和文件信息
#?include?
#?include?
char?prog[80]token[8];
char?ch;
int?synp=0mnsum=0;
char?*rwtab[6]={“begin““if““then““while““do““end“};
void?scaner();
main()
{
?p=0;
?printf(“********************詞法分析程序***************\n“);
?printf(“\n?please?input?string:\n“);
?do{
???ch=getchar();//scanf(“%c“&ch);?
???????prog[p++]=ch;
???}while(ch!=‘#‘);
p=0;
?do{
??scaner();
??switch(syn)
??{
??case?11:printf(“(11%d)“sum);break;
??case?-1:printf(“error!“);break;
??default:printf(“(%d%s)“syntoken);
??}
?}while(syn!=0);
}
void?scaner()
{
?for(n=0;n<8;n++)?token[n]=NULL;
?ch=prog[p++];
?while(ch==‘?‘)?ch=prog[p++];
?if((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘))
?{
??m=0;
??while((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘)||(ch>=‘0‘&&ch<=‘9‘))
??{
???token[m++]=ch;
???ch=prog[p++];
??}
??token[m++]=‘\0‘;
??--p;
??syn=10;
??for(n=0;n<6;n++)
???if(strcmp(tokenrwtab[n])==0)
???{
????syn=n+1;
????break;
???}
?}
?else
?{
??if(ch>=‘0‘&&ch<=‘9‘)
??{
???while(ch>=‘0‘&&ch<=‘9‘)
???{
????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?‘>‘:token[m++]=ch;
ch=prog[p++];
????????????????if(ch==‘=‘)
???????? {
????? syn=24;
????? token[m++]=ch;
???? }
???? else
???? {
????? syn=23;
????? --p;
???? }
???? break;
??? case?‘:‘:?token[m++]=ch;
???? ch=prog[p++];
???? if(ch==‘=‘)
???? {
???? ?syn=18;
????? token[m++]=ch;
???? }
???? else
???? {
????? syn=17;
????? --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;token[0]=ch;break;
??? case‘(‘:syn=27;token[0]=ch;break;
??? case‘)‘:syn=28;token[0]=ch;break;
??? case‘#‘:syn=0;token[0]=ch;break;
??? default:syn=-1;
??}
??}
?}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5381??2011-06-09?10:25??詞法,語法,語義分析\語義分析.c
?????文件???????2170??2011-06-09?23:11??詞法,語法,語義分析\詞法分析.c
?????文件???????3155??2011-06-09?23:12??詞法,語法,語義分析\語法分析.c
?????目錄??????????0??2011-06-10?23:39??詞法,語法,語義分析
-----------?---------??----------?-----??----
????????????????10706????????????????????4
評論
共有 條評論