词法分析程序,关键字main后的int没法配对!也就是输出的编码不对,请指导指导

词法分析程序,关键字main后的int无法配对!也就是输出的编码不对,请指导指导
#include <stdio.h> 
#include <string.h>
#include <stdlib.h> 

FILE *fp1,*fp2; 
char prog[255],token[8],ch; 
int decode,p,m,n,i; 
char *KEY_WORDS[7]={"main","int","char","if","else","for","while"}; 
  
void Scaner(void);
void PrintError(void); 
 
int main() 
{
char Sourfile[10],Wfile[10];
char lbracket,rbracket,comma;
    lbracket = '(';
rbracket = ')';
comma = ',';
printf("请输入存放源程序的文件名:");
scanf("%s",Sourfile);
printf("\n");

if((fp1 = fopen(Sourfile,"r")) == NULL)
{
printf("无法打开此文件!\n");
exit(0);
}

printf("请输入输出数据文件的名字:");
scanf("%s",&Wfile);
printf("\n");

if((fp2 = fopen(Wfile,"w")) == NULL)
{
printf("无法打开此文件!\n");
exit(0);
}

    p=0; 
 
while(!feof(fp1))
 {
 ch = fgetc(fp1);
 prog[p++] = ch;
 };
prog[p] = '\0';
     
p = 0;

    do{ 
            Scaner(); 
            switch(decode) 
            { 
                case -1: 
                    //PrintError();
                    return 0;  
case 0:
break;
//case -2:
// continue;
                 
                default:
fputc(lbracket,fp2);
fprintf(fp2,"%d",decode);
fputc(comma,fp2);
fputs(token,fp2);
fputc(rbracket,fp2);
fputc(' ',fp2);
                break; 
            } 
        }while(decode != 0); 
fclose(fp1);
fclose(fp2);
return 0;
 } 
 
void Scaner(void) 
{   
   for(m = 0;m < 8;m++) 
        token[m++] = NULL; 
     
   ch = prog[p++]; 
   m=0; 
         
   while((ch == ' ')||(ch == '\n')||(ch == '\t')) 
        ch = prog[p++]; 
     
   if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch >= 'A'))) 
     {  
        while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))) 
        {