#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
void main()
{int estado=0;
unsigned char entrada[50];
char *p=entrada;
printf("Entrada: "); gets(entrada);
while(*p!='\0')
{ switch(estado)
{ case 0: if(isalpha(*p) || *p=='_') estado =1;
else if(isdigit(*p)) estado =3;
else if (*p== '+') estado=5;
else estado =6;
p++;
break;
case 1: if(isalpha(*p) || *p=='_' || isdigit(*p)) estado =1;
else estado=2;
p++;
break;
case 2: printf(" ID"); estado =0;
p--;
break;
case 3: if (isdigit(*p)) estado=3;
else estado=4;
p++;
break;
case 4: printf(" ENT"); estado=0;
p--;
break;
case 5: printf(" SUM"); estado=0;
break;
case 6: printf(" ERROR"); estado=0;
}//switch
}//while
switch(estado)
{ case 1:
case 2:printf(" ID"); break; case 3:
case 4: printf(" ENT"); break; case 5: printf(" SUM"); break; case 6: printf(" ERROR"); }
getch();
}