private static bool ParseLiteralList(
IList<TSqlParserToken> tokens,
ref int nextToken,
ref List<Literal> result,
ref int farestError)
{
var currentToken = nextToken;
var literalList = new List<Literal>();
if (!ReadToken(tokens, "(", ref currentToken, ref farestError))
return false;
Literal literal = null;
if (ParseMaxLiteral(tokens, ref currentToken, ref literal, ref farestError) ||
ParseIntegerLiteral(tokens, ref currentToken, ref literal, ref farestError))
literalList.Add(literal);
else
return false;
if (ReadToken(tokens, ",", ref currentToken, ref farestError))
{
if (literalList.First().LiteralType == LiteralType.Integer &&
ParseIntegerLiteral(tokens, ref currentToken, ref literal, ref farestError))
literalList.Add(literal);
else
return false;
}
if (!ReadToken(tokens, ")", ref currentToken, ref farestError))
return false;
nextToken = currentToken;
result = literalList;
return true;
}