自动机

#include<stdio.h>
main()
{
p=0;
printf("\n 请输入源程序段");
do{
ch=getchar();
prog(p++)=ch;

}while(ch!='#');
p=0;
do{
scaner();
switch(syn)
{
case 11:printf("\n(%d,%d)",syn,sum); break;
case -1:printf("\n(%s,出错!),token); break;
default:printf("\n(%d,%s)",syn,token);
}

} while(syn!=0);
}system("pause");

scaner()
{
for(n=0;n<20;n++)
token[n]=NULL;
n=0;
sum=0;
ch=prog[p++];
while(ch=='')
{
ch=prog[p++];
}
if(ch>='a'&&ch<='z')
{
while(ch>='a'&&ch<='z'||ch>='0'&&ch<='9')
{
token[n++]=ch;
ch=prog[p++];
}
syn=10;
p--;
for(n=0;n<6;n++)
if(strcmp(token,rwtab[n])==0)
{
syn=n+1;
break;
}
}

}

posted @ 2016-12-01 11:32  233覃伟业  阅读(133)  评论(0编辑  收藏  举报