public override ExpressionNode VisitTerm([NotNull] mdxParser.TermContext 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(); mul.Left = Visit(List[i - 1]); mul.Right = Visit(List[i + 1]); var k = List[i].Payload; mul.Operation = (string)k.GetType().GetProperty("Text").GetValue(k, null); DimensionList.List.Add(mul); } return(DimensionList); } else { var k = base.VisitTerm(context); return(k); } }
/// <summary> /// Exit a parse tree produced by <see cref="mdxParser.term"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitTerm([NotNull] mdxParser.TermContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="mdxParser.term"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitTerm([NotNull] mdxParser.TermContext context) { return(VisitChildren(context)); }