private void SelectItemList(SelectClause currentClause) { while (true) { SelectItem(currentClause); if (_parser.CurrentTokenKind == QueryExpressionTokenKind.Comma) { _parser.NextToken(); } else { break; } } }
private void OrderByItemList() { while (true) { var expression = _parser.CommonExpr(); var direction = OrderByDirection.Acending; if (_parser.CurrentTokenKind == QueryExpressionTokenKind.Keyword) { var order = (string)_parser.TokenData; switch (order) { case "asc": direction = OrderByDirection.Acending; _parser.NextToken(); break; case "desc": direction = OrderByDirection.Descending; _parser.NextToken(); break; default: _parser.ReportError( $"Invalid token '{order}' after sort expression, expecting 'asc' or 'desc'"); return; } } var item = new OrderByClause(expression, direction); _clauses.Add(item); if (_parser.CurrentTokenKind == QueryExpressionTokenKind.Comma) { _parser.NextToken(); } else { break; } } }
private void ExpandItemList() { while (true) { ExpandItem(); if (_parser.CurrentTokenKind == QueryExpressionTokenKind.Comma) { _parser.NextToken(); } else { break; } } }