void GroupByField(DimensionExpression expression) { if (la.kind == 24 || la.kind == 26) { if (la.kind == 24) { Get(); expression.OrderDescending = true; } else { Get(); expression.OrderDescending = false; } Expect(1); expression.Take = Int32.Parse(t.val); } SelectField(null, expression); if (la.kind == 25) { var inClause = new InExpression(); expression.InClause = inClause; InClause(inClause); } if (la.kind == 27) { Get(); var dim = new DimensionExpression(); Primary(dim, false); expression.Ordering = dim; } }
void InClause(InExpression inExpression) { Expect(25); Expect(7); ExpressionTreeBase lit = null; LiteralExpression(ref lit); inExpression.AddItem(lit); while (la.kind == 18) { Get(); ExpressionTreeBase lit2 = null; LiteralExpression(ref lit2); inExpression.AddItem(lit2); } Expect(8); }