keil编译时的小错误

    xc2.c(95): error C141: syntax error near 'flag'

这是程序,小白一枚求指点

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
typedef unsigned int u8;  


sbit ENA = P2^0;   //右点机使能
sbit IN1 = P2^1;   //为0右轮正转
sbit IN2 = P2^2;   //为0右轮反转
sbit IN3 = P2^3;   //为0左轮正转
sbit IN4 = P2^4;   //为0左轮反转
sbit ENB = P2^5;   //左电机使能

sbit left1= P1^0;
sbit left2=P1^1;
sbit right1=P1^2;
sbit right2 = P1^3;
u8 i=1;
uchar m=0;
uchar n=0;
uchar cnt1=0;

void Timer0Init();
void XunJi();
void Delay(uint z);

void Timer0Init()
{
    TH0 = 0xFF;
    TL0 = 0xA3;
    TMOD &= 0xF0;
    TMOD |= 0x01;
                EA = 1;//总中断
    ET0 = 1;//打开定时器0使能
    TR0 = 1;//定时器0启动器
}


void TurnRight1()           //右转
{
    IN1 = 0;    //右轮反转
    IN2 = 1;

    IN3 = 1;    //左轮正转
    IN4 = 0;
    m = 70;
    n    = 60;
}

void TurnLeft1()                //左转
{
    IN1 = 1;
    IN2 = 0;       //右轮正转

    IN3 = 0;
    IN4 = 1;       //左轮反转
    m = 60;
    n    = 70;
}                  


void Forward()                 //直走
{
    IN1 = 1;
    IN2 = 0;       //右轮正转

    IN3 = 1;       //左轮正转
    IN4 = 0;

    m= 40;
    n    = 40;
}

void Stop()                      //停止
{
    IN1 = 1;
    IN2 = 1;

    IN3 = 1;
    IN4 = 1;
}
void Delay(uint z)
{
        uint x,y;
      for(x=z;x>0;x--)
         for(y=114;y>0;y--);
}

void XunJi()

{
    unsigned char flag = 0;

    if((left1 == 0)&&(left2 == 0&&(right1 == 0)&&(right2 == 0))   //0 0 1 0 0  直走
     flag = 0;
     if((left1 == 0)&&(left2 == 0)&&(right1 == 1)||(right2 == 1))   //0 0 1 1 1  右转
     flag = 1;
    if((left1 == 1)||(left2 == 1)&&(right1 == 0)&&(right2 == 0))   //1 1 1 0 0  左转
     flag = 2;
    if((left1 == 1)&&(left2 == 1)&&(right1 == 1)&&(right2 == 1)&&(i==1))  //1 1 1 1 黑线1
     flag = 3;
    if((left1 == 1)&&(left2 == 1)&&(right1 == 1)&&(right2 == 1)&&(i==2)) //1 1 1 1 1 黑线2
     flag = 4;
    if((left1 == 1)&&(left2 == 1)&&(right1 == 1)&&(right2 == 1)&&(i==3))   //1 1 1 1 1 黑线3
     flag = 5;
    
    switch(flag)
    
{
        case 0:Forward();break;
        
        case 1:TurnRight1();break;
        
        case 2:TurnLeft1();break;

        case 3:i++;Forward();break;
    
      case 4:i++;Forward();break;
    
      case 5:Stop();break;
    }
}

void InterruptTime0() interrupt 1
{
            TH0=(65536-800)/256;
            TL0=(65536-800)%256;
            cnt1++;
            while(cnt1>100)//周期为80ms
            {
                    cnt1=0;
            }
            if(cnt1<m)
            {
                ENA=1;
            }
            else
            {
                ENA=0;
            }
     if(cnt1<n)
     {
     ENB=1;
     }
     else
     {
     ENB=0;
     }
}
void main()
{
 
     Timer0Init();
    while(1)    
    {
        XunJi();
    }
 
}