/// <summary> /// Visit a parse tree produced by <see cref="InvertedPolishCalculatorParser.operation"/>. /// <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 VisitOperation([NotNull] InvertedPolishCalculatorParser.OperationContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="InvertedPolishCalculatorParser.operation"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitOperation([NotNull] InvertedPolishCalculatorParser.OperationContext context) { }
public override decimal VisitOperation([NotNull] InvertedPolishCalculatorParser.OperationContext context) { var op = context.OPERATOR().GetText(); return(operations[op](VisitOperande(context.operande()), VisitExpression(context.expression()))); }