private SeparatedSyntaxList <SelectColumnSyntax> ParseSelectColumnList() { var columnsWithCommas = new List <SyntaxNodeOrToken>(); while (true) { var oldIndex = _tokenIndex; var selectColumn = ParseSelectColumn(); columnsWithCommas.Add(selectColumn); if (_tokenIndex == oldIndex) { SkipTokens(t => SyntaxFacts.CanFollowSelectColumn(t.Kind)); } if (Current.Kind != SyntaxKind.CommaToken && !SyntaxFacts.CanStartExpression(Current.Kind)) { break; } var comma = Match(SyntaxKind.CommaToken); columnsWithCommas.Add(comma); } return(new SeparatedSyntaxList <SelectColumnSyntax>(columnsWithCommas)); }
private AliasSyntax ParseOptionalColumnAlias() { var isAlias = Peek(0).Kind == SyntaxKind.AsKeyword || Peek(0).Kind == SyntaxKind.IdentifierToken && SyntaxFacts.CanFollowSelectColumn(Peek(1).Kind); return(isAlias ? ParseAlias() : null); }