Take modutil_MySQL_bypass_whitespace into use

This commit is contained in:
Johan Wikman
2017-03-17 11:54:00 +02:00
parent 7469c5be52
commit b52cc4e56b

View File

@ -608,106 +608,7 @@ private:
void bypass_whitespace() void bypass_whitespace()
{ {
while (m_pI != m_pEnd) m_pI = modutil_MySQL_bypass_whitespace(const_cast<char*>(m_pI), m_pEnd - m_pI);
{
if (isspace(*m_pI))
{
++m_pI;
}
else if (*m_pI == '/') // Might be a comment
{
if ((m_pI + 1 != m_pEnd) && (*(m_pI + 1) == '*')) // Indeed it was
{
m_pI += 2;
while (m_pI != m_pEnd)
{
if (*m_pI == '*') // Might be the end of the comment
{
++m_pI;
if (m_pI != m_pEnd)
{
if (*m_pI == '/') // Indeed it was
{
++m_pI;
break; // Out of this inner while.
}
}
}
else
{
// It was not the end of the comment.
++m_pI;
}
}
}
else
{
// Was not a comment, so we'll bail out.
break;
}
}
else if (*m_pI == '-') // Might be the start of a comment to the end of line
{
bool is_comment = false;
if (m_pI + 1 != m_pEnd)
{
if (*(m_pI + 1) == '-') // Might be, yes.
{
if (m_pI + 2 != m_pEnd)
{
if (isspace(*(m_pI + 2))) // Yes, it is.
{
is_comment = true;
m_pI += 3;
while ((m_pI != m_pEnd) && (*m_pI != '\n'))
{
++m_pI;
}
if (m_pI != m_pEnd)
{
ss_dassert(*m_pI == '\n');
++m_pI;
}
}
}
}
}
if (!is_comment)
{
break;
}
}
else if (*m_pI == '#')
{
++m_pI;
while ((m_pI != m_pEnd) && (*m_pI != '\n'))
{
++m_pI;
}
if (m_pI != m_pEnd)
{
ss_dassert(*m_pI == '\n');
++m_pI;
}
m_pI = m_pEnd;
break;
}
else
{
// Neither whitespace not start of a comment, so we bail out.
break;
}
}
} }
token_t next_token(token_required_t required = TOKEN_NOT_REQUIRED) token_t next_token(token_required_t required = TOKEN_NOT_REQUIRED)