mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
32a08516c9
BitKeeper/etc/ignore: Added myisam/rt_test myisam/sp_test to the ignore list
137 lines
2 KiB
C++
137 lines
2 KiB
C++
#include "mysql_priv.h"
|
|
|
|
int GTextReadStream::get_next_toc_type() const
|
|
{
|
|
const char *cur = m_cur;
|
|
while((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
if(!(*cur))
|
|
{
|
|
return eostream;
|
|
}
|
|
|
|
if(((*cur>='a') && (*cur<='z')) || ((*cur>='A') && (*cur<='Z')) || (*cur=='_'))
|
|
{
|
|
return word;
|
|
}
|
|
|
|
if(((*cur>='0') && (*cur<='9')) || (*cur=='-') || (*cur=='+') || (*cur=='.'))
|
|
{
|
|
return numeric;
|
|
}
|
|
|
|
if(*cur == '(')
|
|
{
|
|
return l_bra;
|
|
}
|
|
|
|
if(*cur == ')')
|
|
{
|
|
return r_bra;
|
|
}
|
|
|
|
if(*cur == ',')
|
|
{
|
|
return comma;
|
|
}
|
|
|
|
return unknown;
|
|
}
|
|
|
|
const char *GTextReadStream::get_next_word(int *word_len)
|
|
{
|
|
const char *cur = m_cur;
|
|
while((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
m_last_text_position = cur;
|
|
|
|
if(!(*cur))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
const char *wd_start = cur;
|
|
|
|
if(((*cur<'a') || (*cur>'z')) && ((*cur<'A') || (*cur>'Z')) && (*cur!='_'))
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
++cur;
|
|
|
|
while(((*cur>='a') && (*cur<='z')) || ((*cur>='A') && (*cur<='Z')) || (*cur=='_') ||
|
|
((*cur>='0') && (*cur<='9')))
|
|
{
|
|
++cur;
|
|
}
|
|
|
|
*word_len = cur - wd_start;
|
|
|
|
m_cur = cur;
|
|
|
|
return wd_start;
|
|
}
|
|
|
|
int GTextReadStream::get_next_number(double *d)
|
|
{
|
|
const char *cur = m_cur;
|
|
while((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
|
|
m_last_text_position = cur;
|
|
if(!(*cur))
|
|
{
|
|
set_error_msg("Numeric constant expected");
|
|
return 1;
|
|
}
|
|
|
|
if(((*cur<'0') || (*cur>'9')) && (*cur!='-') && (*cur!='+') && (*cur!='.'))
|
|
{
|
|
set_error_msg("Numeric constant expected");
|
|
return 1;
|
|
}
|
|
|
|
char *endptr;
|
|
|
|
*d = strtod(cur, &endptr);
|
|
|
|
if(endptr)
|
|
{
|
|
m_cur = endptr;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
char GTextReadStream::get_next_symbol()
|
|
{
|
|
const char *cur = m_cur;
|
|
while((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
if(!(*cur))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
m_cur = cur + 1;
|
|
m_last_text_position = cur;
|
|
|
|
return *cur;
|
|
}
|
|
|
|
void GTextReadStream::set_error_msg(const char *msg)
|
|
{
|
|
size_t len = strlen(msg);
|
|
m_err_msg = (char *)my_realloc(m_err_msg, len + 1, MYF(MY_ALLOW_ZERO_PTR));
|
|
memcpy(m_err_msg, msg, len + 1);
|
|
}
|
|
|
|
|