case ' ': case '\t': case '\n': case '\f': case '\r': { for(i=1; isspace(z[i]); i++){}
case ' ': case '\t': case '\n': case '\f': case '\r': case '\r': { for(i=1; isspace(z[i]) || z[i] == '`'; i++){}
static int sqliteGetToken(const unsigned char *z, int *tokenType){  int i;  switch( *z ){    case ' ': case '\t': case '\n': case '\f': case '\r': {      for(i=1; isspace(z[i]); i++){}      *tokenType = TK_SPACE;      return i;    }    case '-': {      if( z[1]=='-' ){        for(i=2; z[i] && z[i]!='\n'; i++){}        *tokenType = TK_COMMENT;        return i;      }      *tokenType = TK_MINUS;      return 1;    }    case '(': {      *tokenType = TK_LP;      return 1;    }    case ')': {      *tokenType = TK_RP;      return 1;    }    case ';': {      *tokenType = TK_SEMI;      return 1;    }    case '+': {      *tokenType = TK_PLUS;      return 1;    }    case '*': {      *tokenType = TK_STAR;      return 1;    }    case '/': {      if( z[1]!='*' || z[2]==0 ){        *tokenType = TK_SLASH;        return 1;      }      for(i=3; z[i] && (z[i]!='/' || z[i-1]!='*'); i++){}      if( z[i] ) i++;      *tokenType = TK_COMMENT;      return i;    }    case '%': {      *tokenType = TK_REM;      return 1;    }    case '=': {      *tokenType = TK_EQ;      return 1 + (z[1]=='=');    }    case '<': {      if( z[1]=='=' ){        *tokenType = TK_LE;        return 2;      }else if( z[1]=='>' ){        *tokenType = TK_NE;        return 2;      }else if( z[1]=='<' ){        *tokenType = TK_LSHIFT;        return 2;      }else{        *tokenType = TK_LT;        return 1;      }    }    case '>': {      if( z[1]=='=' ){        *tokenType = TK_GE;        return 2;      }else if( z[1]=='>' ){        *tokenType = TK_RSHIFT;        return 2;      }else{        *tokenType = TK_GT;        return 1;      }    }    case '!': {      if( z[1]!='=' ){        *tokenType = TK_ILLEGAL;        return 2;      }else{        *tokenType = TK_NE;        return 2;      }    }    case '|': {      if( z[1]!='|' ){        *tokenType = TK_BITOR;        return 1;      }else{        *tokenType = TK_CONCAT;        return 2;      }    }    case ',': {      *tokenType = TK_COMMA;      return 1;    }    case '&': {      *tokenType = TK_BITAND;      return 1;    }    case '~': {      *tokenType = TK_BITNOT;      return 1;    }    case '\'': case '"': {      int delim = z[0];      for(i=1; z[i]; i++){        if( z[i]==delim ){          if( z[i+1]==delim ){            i++;          }else{            break;          }        }      }      if( z[i] ) i++;      *tokenType = TK_STRING;      return i;    }    case '.': {      *tokenType = TK_DOT;      return 1;    }    case '0': case '1': case '2': case '3': case '4':    case '5': case '6': case '7': case '8': case '9': {      *tokenType = TK_INTEGER;      for(i=1; isdigit(z[i]); i++){}      if( z[i]=='.' && isdigit(z[i+1]) ){        i += 2;        while( isdigit(z[i]) ){ i++; }        *tokenType = TK_FLOAT;      }      if( (z[i]=='e' || z[i]=='E') &&           ( isdigit(z[i+1])             || ((z[i+1]=='+' || z[i+1]=='-') && isdigit(z[i+2]))           )      ){        i += 2;        while( isdigit(z[i]) ){ i++; }        *tokenType = TK_FLOAT;      }      return i;    }    case '[': {      for(i=1; z[i] && z[i-1]!=']'; i++){}      *tokenType = TK_ID;      return i;    }    case '?': {      *tokenType = TK_VARIABLE;      return 1;    }    default: {      if( (*z&0x80)==0 && !isIdChar[*z] ){        break;      }      for(i=1; (z[i]&0x80)!=0 || isIdChar[z[i]]; i++){}      *tokenType = sqliteKeywordCode((char*)z, i);      return i;    }  }  *tokenType = TK_ILLEGAL;  return 1;}