semantic analyze ok