Esempio n. 1
0
        public override ExpressionNode VisitFactor([NotNull] mdxParser.FactorContext context)
        {
            if (context.children.Count > 1)
            {
                var            List          = context.children;
                DimensionNodes DimensionList = new DimensionNodes();
                DimensionList.List = new List <ExpressionNode>();

                for (int i = 1; i < List.Count; i = i + 2)
                {
                    Operator mul = new Operator();
                    var      k   = List[i - 1].Payload;

                    mul.Left = new NumberNode
                    {
                        Value = (string)k.GetType().GetProperty("Text").GetValue(k, null)
                    };
                    mul.Right     = Visit(List[i + 1]);
                    k             = List[i].Payload;
                    mul.Operation = (string)k.GetType().GetProperty("Text").GetValue(k, null);

                    DimensionList.List.Add(mul);
                }
                return(DimensionList);
            }
            else
            {
                var k = base.VisitFactor(context);
                return(k);
            }
        }
Esempio n. 2
0
        public override ExpressionNode VisitExp_list([NotNull] mdxParser.Exp_listContext context)
        {
            if (context.children.Count > 1)
            {
                var k = context.children;

                DimensionNodes DimensionList = new DimensionNodes();
                DimensionList.List = new List <ExpressionNode>();
                DimensionList.List.Add(Visit(k[0]));

                for (int i = 2; i < k.Count; i = i + 2)
                {
                    DimensionList.List.Add(Visit(k[i]));
                }

                return(DimensionList);
            }
            else
            {
                DimensionNodes DimensionList = new DimensionNodes();
                DimensionList.List = new List <ExpressionNode>();
                DimensionList.List.Add(base.VisitExp_list(context));

                return(DimensionList);
            }
        }
Esempio n. 3
0
        public override ExpressionNode VisitSelect_statement([NotNull] mdxParser.Select_statementContext context)
        {
            SelectNode selectNode = new SelectNode();

            selectNode.CubeNode    = Visit(context.cube_specification());
            selectNode.AxisNode    = Visit(context.axis_specification_list());
            selectNode.formulaNode = Visit(context.formula_specification());
            DimensionNodes dim = (DimensionNodes)Visit(context.slicer_specification());

            selectNode.WhereNode = dim;

            return(selectNode);
        }
Esempio n. 4
0
        public override ExpressionNode VisitTerm2([NotNull] mdxParser.Term2Context context)
        {
            if (context.children.Count > 1)
            {
                var            List          = context.children;
                DimensionNodes DimensionList = new DimensionNodes();
                DimensionList.List = new List <ExpressionNode>();

                for (int i = 0; i < List.Count; i = i + 2)
                {
                    DimensionList.List.Add(Visit(List[i]));
                }
                return(DimensionList);
            }
            else
            {
                var k = base.VisitTerm2(context);
                return(k);
            }
        }