public override object VisitInput(CurrencyComputerParser.InputContext context) { var conversion = (string)VisitConversion(context.conversion()); _targetCurrency = _conversionToCurrencyConventions[conversion]; var resultAmount = (AmountSigned)VisitExpression(context.expression()); var resultAmountConverted = ConvertTo(resultAmount, _targetCurrency); return(resultAmountConverted.Sign == "-" ? -resultAmountConverted.Amount.Value : resultAmountConverted.Amount.Value); }
public override object VisitInput(CurrencyComputerParser.InputContext context) { _targetCurrency = null; _operationsLogger = 0; var conversion = (string)VisitConversion(context.conversion()); _targetCurrency = _conversionToCurrencyConventions[conversion]; var resultAmount = (AmountSigned)VisitExpression(context.expression()); var resultAmountConverted = ConvertTo(resultAmount, _targetCurrency); var val = resultAmountConverted.Sign == "-" ? -resultAmountConverted.Amount.Value : resultAmountConverted.Amount.Value; return(new Tuple <decimal, string>(val, resultAmountConverted.Amount.Currency)); }
/// <summary> /// Visit a parse tree produced by <see cref="CurrencyComputerParser.input"/>. /// <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 VisitInput([NotNull] CurrencyComputerParser.InputContext context) { return(VisitChildren(context)); }