编译原理词法分析器实验报告 联系客服

发布时间 : 星期三 文章编译原理词法分析器实验报告更新完毕开始阅读1747d08bb94cf7ec4afe04a1b0717fd5360cb295

switch (state) {

case 1:

if(b>='0'&&b<='9') {

state=1;

d[i++]=b;

b=getchar();}

else if(b=='.') { state=2;d[i++]=b;b=getchar();} else if(b=='E') { state=4;d[i++]=b;b=getchar();} else state=7;

break;

case 2:

if(b>='0'&&b<='9') { state=3;

d[i++]=b;

b=getchar();}

else state=8;

break;

case 3:

if(b>='0'&&b<='9') {

state=3;

d[i++]=b;

b=getchar();}

else if(b=='E') { state=4;d[i++]=b;b=getchar();}

else state=7;

break;

case 4:

if(b=='+'||b=='-') { state=5;d[i++]=b;b=getchar();}

else

if(b>='0'&&b<='9'){ state=6;d[i++]=b;b=getchar();}

else state=8;

break;

case 5:

if(b>='0'&&b<='9'){ state=6;d[i++]=b;b=getchar();}

else state=8;

break;

case 6:

if(b>='0'&&b<='9'){ state=6;d[i++]=b;b=getchar();}

else state=7;

break;

case 7: f=1;break;

case 8: f=1;break;

}

}

if(state==7&&(b<'a'||b>'z')&&(b<'A'||b>'Z'))

printf(\

else if(state==7&&(b>='a'&&b<='z')||(b>='A'&&b<='Z'))/*数字后接字

母的出错控制*/

{

while((b>='a'&&b<='z')||(b>='A'&&b<='Z'))

{ d[i++]=b;

b=getchar();

}

printf(\

}

else printf(\

for(j=0;j<=i;j++)

d[j]='\\0';

i=0;

f=0;

state=1;