以下是实现返回一个整形的代码,但是总是返回不出来,帮忙看看哪里出错了,编译都没有问题的
public int scaner(char prog[])
{
  int m,i,n;
    for(m=0;m<20;m++)
    token[m++]=' ';
    m=0; 
    ch=prog[p++];
    while(ch==' ') ch=prog[p++];
if((ch>='a')&&(ch<='z'))
{
    while(((ch>='a')&&(ch<='z'))||((ch>='0')&&(ch<='9')))
 {token[m++]=ch;ch=prog[p++];} 
 token[m++]='\0'; 
 n=0;
   for(i=0;i<6;i++)
if(new String(token).equals(new String (numtab[i])));
  switch(i)
{
  case 0: syn=1;n++;break;
  case 1: syn=2;n++;break;
  case 2: syn=3;n++;break;
  case 3: syn=4;n++;break;
    case 4: syn=5;n++;break;
  case 5: syn=6;n++;break;
  }
     if(n==0) syn=10;p--;
}
else 
if(ch>='0'&&ch<='9')
{n=0;
while(ch>='0'&&ch<='9') 
{n=n*10+(ch-'0');ch=prog[p++];}
syn=11; p--;
}
else switch(ch)
   {
case'<': token[m++]=ch;ch=prog[p++];
if(ch=='>')
    {token[++m]=ch;syn=22;}
else if(ch=='=')
    {token[++m]=ch;syn=21;}
else{p--;syn=20;} break;
case'>': token[m]=ch;
ch=prog[p++]; 
if(ch=='='){token[++m]=ch;syn=24;}
else{p--;syn=23;} break;
case '+': token[m]=ch;syn=13;break;
case '-': token[m]=ch;syn=14;break;
case '*': token[m]=ch;syn=15;break;
case '/': token[m]=ch;syn=16;break;
case ':': token[m++]=ch;ch=prog[p++];
if(ch=='='){token[++m]=ch;syn=17;}
else{p--;syn=18;}break;
case '=': token[m]=ch;syn=25;break;
case ';': token[m]=ch;syn=26;break;
case '(': token[m]=ch;syn=27;break;
case ')': token[m]=ch;syn=28;break;
case '#': syn=0;token[0]='#';break;
default: syn=-1;}
return syn;
}
但是syn返回不出来,各位哥哥姐姐帮忙看看,