private static bool ParseMultiPartIdentifier( IList <TSqlParserToken> tokens, ref int nextToken, ref DMultiPartIdentifier 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 DMultiPartIdentifier { Identifiers = identifiers, }; nextToken = currentToken; return(true); }
public DMultiPartIdentifier ParseMultiPartIdentifier(string input) { var sr = new StringReader(input); IList <ParseError> errors; List <TSqlParserToken> tokens = new List <TSqlParserToken>(_parser.tsqlParser.GetTokenStream(sr, out errors)); if (errors.Count > 0) { return(null); } var currentToken = 0; var farestError = 0; DMultiPartIdentifier result = new DMultiPartIdentifier(); if (!ParseMultiPartIdentifier(tokens, ref currentToken, ref result, ref farestError)) { return(null); } return(result); }