public override VfpExpression Visit(VfpArithmeticExpression expression) { switch (expression.ExpressionKind) { case VfpExpressionKind.Divide: case VfpExpressionKind.Minus: case VfpExpressionKind.Modulo: case VfpExpressionKind.Multiply: case VfpExpressionKind.Plus: return(Visit(new VfpBinaryExpression(expression.ExpressionKind, expression.ResultType, expression.Arguments[0], expression.Arguments[1]))); case VfpExpressionKind.UnaryMinus: Write(" -("); expression.Arguments[0].Accept(this); Write(")"); break; default: throw new InvalidOperationException(expression.ExpressionKind.ToString()); } return(expression); }
public virtual VfpExpression Visit(VfpArithmeticExpression expression) { return(new VfpArithmeticExpression(expression.ExpressionKind, expression.ResultType, VisitVfpExpressionList(expression.Arguments))); }