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

  • 大小: 1.19 KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2024-08-07
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: 編譯原理??詞法分析??

資源簡(jiǎn)介

編譯原理實(shí)驗(yàn)-詞法分析<br>用C語(yǔ)言寫的

資源截圖

代碼片段和文件信息

#include?“stdio.h“
#include“string.h“
#include?“stdlib.h“

FILE?*fp;

char?filename[20];
char?token[100];
int?m=0;


char?getch()
{
?????char?ch;
ch=fgetc(fp);
return?ch;
}


char?getbc(char?ch)
{
while(ch==‘?‘)?ch=getch();?
?????return?ch;
}


?void?concat(char?ch)
{
??token[m]=ch;
}


int?letter(char?ch)
{?if?(ch>=‘A‘&&ch<=‘Z‘)?return?1;
else?if(ch>=‘a(chǎn)‘&&ch<=‘z‘)?return?1;

else?return?0;
}


int?digit(char?ch)
{
????if(ch>=‘0‘&&ch<=‘9‘)?return?1;
else?return?0;
}

int?reserve()

{???int?g;
????if(??strcmp(token“begin“)==0)??g=1;
else?if(??strcmp(token“end“)==0)???g=2;
????else?if(??strcmp(token“if“)==0)???g=3;
????else?if(??strcmp(token“then“)==0)???g=4;
????else?if(??strcmp(token“else“)==0)???g=5;
????else?if(??strcmp(token“while“)==0)???g=6;
????else?if(??strcmp(token“do“)==0)???g=7;
else?g=10;
return?g;
}

void?dtb()//十進(jìn)制轉(zhuǎn)換函數(shù)
{
int?ij=0n=0a=0b[100];
n=0;
for(i=0;token[i]!=‘\0‘;i++)
{
a=a*10+((int)token[i]-48);
}

while(a!=0)
{
n=a%2;
b[j]=n;

j++;
a=a/2;

}

for(i=j-1;i>=0;i--)
printf(“%d“b[i]);

}



void?scaner(char?ch)
{ int?c;
??if(ch!=EOF)
??{ ch=getbc(ch);
if(letter(ch))
{
while(letter(ch)||digit(ch))
{
concat(ch);
m++;
ch=getch();
}
c=reserve();
if(c!=10)?printf(“%d??????%s\n“ctoken);
else?printf(“10?????%s\n“token);
}
else?if(digit(ch))
{
while(digit(ch))
{
????????????concat(ch);
m++;
ch=getch();
}
printf(“11?????“);
dtb();
printf(“\n“);
}
else
switch(ch)
{
case‘+‘:?printf(“13?????+\n“);break;
????????case‘-‘:?printf(“14?????-\n“);break;
????????case‘*‘:printf(“15?????*\n“);break;
????????case‘/‘:printf(“16?????/\n“);break;
case‘<‘:ch=getch();
if(ch==‘=‘)??printf(“17?????<=\n“);
else?if?(ch==‘>‘)?printf(“18?????<>\n“);
else?printf(“19?????<\n“);
break;
case‘:‘:ch=getch();
????????????if(ch==‘=‘)??printf(“22?????:=\n“);?????????
????????????else?printf(“21?????:\n“);
????????????break;
case‘;‘:?printf(“23?????;\n“);?break;
default:?printf(“error??%c\n“ch);
break;
}
??}
}

?void?main()
{char?ch;int?l;
printf(“input?filename:“);
scanf(“%s“filename);
fp=fopen(filename“r+“);
??do
{?
for(l=m;l>=0;l--)
{
token[l]=‘\0‘;
}
m=0;
??????ch=fgetc(fp);
???scaner(ch);
}while(ch!=EOF);
}


?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????????64??2008-04-15?15:30??編譯原理\a.txt

?????文件???????2431??2008-04-15?15:28??編譯原理\詞法分析.cpp

?????目錄??????????0??2008-04-15?22:36??編譯原理

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

?????????????????2495????????????????????3


評(píng)論

共有 條評(píng)論

相關(guān)資源