#include<stdio.h>
#include<string.h>
void main()
{
int i=0,j,k=0,state=1,f=0,linenum=1;
char a[11][10]={"const","var","call","begin","if","while","do","odd","end","then","procedure"};
char b,d[40]={"\0"};
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
b=getchar();
while(b!=EOF)/*判断所输入字符是否为结束符*/
{
if(b==' '||b=='\n'||b=='\t')/*滤过空格、换行等分隔符号*/
{
if(b='\n') linenum++;
b=getchar();
}
else if((b>='a'&&b<='z')||(b>='A'&&b<='Z'))/*识别标识符以及保留字*/
{
d[i++]=b;
b=getchar();
while((b>='a'&&b<='z')||(b>='A'&&b<='Z')||(b>='0'&&b<='9'))
{
d[i++]=b;
b=getchar();
}
for(j=0;j<11;j++)/*查询保留字表确定该单词是否是保留字*/
{
if(strcmp(d,a[j])==0)
{
printf("1,%s\n",d);
k=1;
break;
}
}
if(k==0)/*在保留字表中没有查到该单词,是标识符*/
printf("3,%s\n",d);
for(j=0;j<=i;j++)
d[j]='\0';
i=0;
k=0;
}
else if(b>='0'&&b<='9')/*识别常数*/
{
d[i++]=b;
b=getchar();
while(f!=1){
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;
}
}
}