提交 7304bad5 编写于 作者: A Alexey Milovidov

Support for nested multiline comments

上级 9acb8fe1
......@@ -253,15 +253,27 @@ Token Lexer::nextTokenImpl()
else
{
++pos;
/// Nested multiline comments are supported according to the SQL standard.
size_t nesting_level = 1;
while (pos + 2 <= end)
{
/// This means that nested multiline comments are not supported.
if (pos[0] == '*' && pos[1] == '/')
if (pos[0] == '/' && pos[1] == '*')
{
pos += 2;
return Token(TokenType::Comment, token_begin, pos);
++nesting_level;
}
++pos;
else if (pos[0] == '*' && pos[1] == '/')
{
pos += 2;
--nesting_level;
if (nesting_level == 0)
return Token(TokenType::Comment, token_begin, pos);
}
else
++pos;
}
return Token(TokenType::ErrorMultilineCommentIsNotClosed, token_begin, end);
}
......
SELECT /*/**/*/ 1;
SELECT /*a/*b*/c*/ 1;
SELECT /*ab/*cd*/ef*/ 1;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册