自动机

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

}while(ch!='#');
p=0;
do{
scaner();
switch(syn)
{
case 11:printf(" (%d,%d)",syn,sum); break;
case -1:printf(" (%s,出错!),token); break;
default:printf(" (%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;
}
}

}

原文地址:https://www.cnblogs.com/qq412158152/p/6121226.html