コード例 #1
0
        public virtual void Visiting(SqlMathExpression mathExpression)
        {
            mathExpression.LeftOperand.Accept(this) ;

            switch(mathExpression.SqlMathOperator)
            {
                case SqlMathOperatorType.Add:
                {
                    sqlBuilder.Append("+");
                    break;
                }
                case SqlMathOperatorType.Divide:
                {
                    sqlBuilder.Append("/");
                    break;
                }
                case SqlMathOperatorType.Multiply:
                {
                    sqlBuilder.Append("*");
                    break;
                }
                case SqlMathOperatorType.Subtract:
                {
                    sqlBuilder.Append("-");
                    break;
                }

            }
            mathExpression.RightOperand.Accept(this) ;
        }
コード例 #2
0
 public virtual void Visited(SqlMathExpression mathExpression)
 {
 }
コード例 #3
0
		private SqlExpression EvalMath(NPathMathExpression mathExpression)
		{
			SqlExpression leftExpression = EvalExpression(mathExpression.LeftOperand);
			SqlExpression rightExpression = EvalExpression(mathExpression.RightOperand);

			SqlMathOperatorType mathOperator ;
			switch(mathExpression.Operator)
			{
				case "add":
					mathOperator = SqlMathOperatorType.Add;
					break;

				case "minus":
					mathOperator = SqlMathOperatorType.Subtract;
					break;

				case "div":
					mathOperator = SqlMathOperatorType.Divide;
					break;

				case "mul":
					mathOperator = SqlMathOperatorType.Multiply;
					break;
				default:
					throw new IAmOpenSourcePleaseImplementMeException("Operator not implemented");
			}

			

			SqlMathExpression predicate = new SqlMathExpression(leftExpression,mathOperator,rightExpression);
			
			return predicate;
		}