private static bool ParseMultiPartIdentifier(
IList<TSqlParserToken> tokens,
ref int nextToken,
ref WMultiPartIdentifier result,
ref int farestError)
{
var firstToken = nextToken;
var currentToken = nextToken;
var identifiers = new List<Identifier>();
Identifier identifier = null;
if (!ParseIdentifier(tokens, ref currentToken, ref identifier, ref farestError))
return false;
identifiers.Add(identifier);
while (ReadToken(tokens, ".", ref currentToken, ref farestError))
{
ParseIdentifier(tokens, ref currentToken, ref identifier, ref farestError);
identifiers.Add(identifier);
}
result = new WMultiPartIdentifier
{
Identifiers = identifiers,
FirstTokenIndex = firstToken,
LastTokenIndex = currentToken - 1,
};
nextToken = currentToken;
return true;
}