Esempio n. 1
0
        public override ExpressionNode VisitValue_expression_primary([NotNull] mdxParser.Value_expression_primaryContext context)
        {
            if (context.children.Count > 1)
            {
                var k          = context.children;
                var Dimensions = new DimensionNode();

                Dimensions.Measures = Visit(k[0]);
                NumberNode Values = new NumberNode();
                Values.Value = "";
                for (int i = 2; i < k.Count; i = i + 2)
                {
                    NumberNode TempNode = (NumberNode)Visit(k[i]);
                    Values.Value += TempNode.Value + ".";
                }
                Values.Value            = Values.Value.Substring(0, Values.Value.Length - 1);
                Dimensions.MeasureValue = Values;
                return(Dimensions);
            }
            else
            {
                var k = base.VisitValue_expression_primary(context);
                return(k);
            }
        }
Esempio n. 2
0
        public override ExpressionNode VisitMember_specification([NotNull] mdxParser.Member_specificationContext context)
        {
            MembersNode node = new MembersNode();

            NumberNode k = (NumberNode)Visit(context.member_name());

            node.MemberName = k.Value;
            node.Dimensions = Visit(context.value_expression());
            return(node);
        }
Esempio n. 3
0
        public override ExpressionNode VisitCompound_id([NotNull] mdxParser.Compound_idContext context)
        {
            if (context.children.Count > 1)
            {
                var List      = context.children;
                var Dimension = new NumberNode();
                Dimension.Value = "";
                for (int i = 0; i < List.Count; i = i + 2)
                {
                    NumberNode node = (NumberNode)Visit(List[i]);
                    Dimension.Value += node.Value;
                }


                return(Dimension);
            }
            else
            {
                return(new CubeNode
                {
                    CubeName = context.Start.Text
                });
            }
        }