private IExpression AnyAllExpression()
{
IQueryExpression subquery = null;
switch (lexer.Token())
{
case MySqlToken.KwAll:
{
lexer.NextToken();
Match(MySqlToken.PuncLeftParen);
subquery = SubQuery();
Match(MySqlToken.PuncRightParen);
return new SubqueryAllExpression(subquery).SetCacheEvalRst(cacheEvalRst);
}
default:
{
var matchIndex = EqualsIdentifier("SOME", "ANY");
if (matchIndex < 0)
{
return BitOrExpression(null, null);
}
var consumed = lexer.GetStringValue();
var consumedUp = lexer.GetStringValueUppercase();
if (lexer.NextToken() == MySqlToken.PuncLeftParen)
{
lexer.NextToken();
subquery = SubQuery();
Match(MySqlToken.PuncRightParen);
return new SubqueryAnyExpression(subquery).SetCacheEvalRst(cacheEvalRst);
}
return BitOrExpression(consumed, consumedUp);
}
}
}