public override double VisitMultiplicativeExpression([NotNull] HelloParser.MultiplicativeExpressionContext context) { double startMul = VisitUnaryExpression(context.unaryExpression()[0]); for (int i = 1; i < context.unaryExpression().Length; i++) { switch (context.multiplyOperator()[i - 1].Start.Text) { case "*": startMul *= VisitUnaryExpression(context.unaryExpression()[i]); break; case "/": startMul /= VisitUnaryExpression(context.unaryExpression()[i]); break; } } return(startMul); }
/// <summary> /// Exit a parse tree produced by <see cref="HelloParser.multiplicativeExpression"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitMultiplicativeExpression([NotNull] HelloParser.MultiplicativeExpressionContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="HelloParser.multiplicativeExpression"/>. /// <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 VisitMultiplicativeExpression([NotNull] HelloParser.MultiplicativeExpressionContext context) { return(VisitChildren(context)); }