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); } }
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); } }
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); }
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); } }