private static void GroupByAddRollup(GroupByClauseElementRollupOrCube spec, GroupByRollupNodeBase parent, IList <ExprNode> exprNodes)
 {
     foreach (var rolledUp in spec.RollupExpressions)
     {
         if (rolledUp is GroupByClauseElementExpr)
         {
             var expr = (GroupByClauseElementExpr)rolledUp;
             exprNodes.Add(expr.Expr);
             parent.Add(new GroupByRollupNodeSingleExpr(expr.Expr));
         }
         else
         {
             var combined = (GroupByClauseElementCombinedExpr)rolledUp;
             exprNodes.AddAll(combined.Expressions);
             parent.Add(new GroupByRollupNodeCombinedExpr(combined.Expressions));
         }
     }
 }
 public void Add(GroupByRollupNodeBase child)
 {
     _childNodes.Add(child);
 }