private SqlGroupBy AddGroupBy(Token[] tokens, ref int i, SqlQuery parent) { var section = new SqlGroupBy(parent); section.Sections.Add(new SqlSection(section, new SqlToken(true, tokens[i]))); parent.Sections.Add(section); for (i++; i < tokens.Length; i++) { if (IsMatch(tokens, i, "ORDER", "BY")) { AddOrderBy(tokens, ref i, parent); break; } else if (tokens[i].Type == TokenType.EndOfQuery || tokens[i].Type == TokenType.EndParenthesis) { AddTokenSection(parent, tokens[i]); break; } else if (IsQueryStart(tokens[i])) { i--; break; } AddTokenSection(section, tokens[i]); } return(section); }
private SqlGroupBy AddGroupBy(Token[] tokens, ref int i, SqlQuery parent) { var section = new SqlGroupBy(parent); section.Sections.Add(new SqlSection(section, new SqlToken(true, tokens[i]))); parent.Sections.Add(section); for (i++; i < tokens.Length; i++) { if (IsMatch(tokens, i, "ORDER", "BY")) { AddOrderBy(tokens, ref i, parent); break; } else if (tokens[i].Type == TokenType.EndOfQuery || tokens[i].Type == TokenType.EndParenthesis) { AddTokenSection(parent, tokens[i]); break; } else if (IsQueryStart(tokens[i])) { i--; break; } AddTokenSection(section, tokens[i]); } return section; }