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