private DdlDropTableStatement DropTable(bool temp)
{
var ifExists = false;
if (lexer.Token() == MySqlToken.KwIf)
{
lexer.NextToken();
Match(MySqlToken.KwExists);
ifExists = true;
}
var tb = Identifier();
IList<Identifier> list;
if (lexer.Token() != MySqlToken.PuncComma)
{
list = new List<Identifier>(1);
list.Add(tb);
}
else
{
list = new List<Identifier>();
list.Add(tb);
for (; lexer.Token() == MySqlToken.PuncComma;)
{
lexer.NextToken();
tb = Identifier();
list.Add(tb);
}
}
var mode = DropTableMode.Undef;
switch (lexer.Token())
{
case MySqlToken.KwRestrict:
{
lexer.NextToken();
mode = DropTableMode.Restrict;
break;
}
case MySqlToken.KwCascade:
{
lexer.NextToken();
mode = DropTableMode.Cascade;
break;
}
}
return new DdlDropTableStatement(list, temp, ifExists, mode);
}