protected void WriteValue(VfpConstantExpression c) { if (c != null) { WriteValue(c.Value); } }
public override VfpExpression Visit(VfpConstantExpression expression) { switch (expression.ResultType.ToPrimitiveTypeKind()) { case PrimitiveTypeKind.Binary: case PrimitiveTypeKind.Decimal: case PrimitiveTypeKind.Double: case PrimitiveTypeKind.Single: case PrimitiveTypeKind.String: return(new VfpParameterExpression(expression.ResultType, GetParameterName(), expression)); default: return(base.Visit(expression)); } }
public override VfpExpression Visit(VfpProjectExpression expression) { VfpProjectExpression innerProjectionExpression; bool hasNotExpression; if (GetInnerProjectionExpression(expression, out innerProjectionExpression, out hasNotExpression)) { var innerNewInstanceExpression = innerProjectionExpression.Projection as VfpNewInstanceExpression; if (innerNewInstanceExpression != null) { var innerConstExpression = innerNewInstanceExpression.Arguments[0] as VfpConstantExpression; if (innerConstExpression != null) { var countExpression = new VfpConstantExpression(innerConstExpression.ResultType, "COUNT(*)"); innerNewInstanceExpression = new VfpNewInstanceExpression(innerNewInstanceExpression.ResultType, new VfpExpressionList(new List <VfpExpression> { countExpression })); innerProjectionExpression = new VfpProjectExpression(innerProjectionExpression.ResultType, innerProjectionExpression.Input, innerNewInstanceExpression); VfpExpression comparison = new VfpComparisonExpression(VfpExpressionKind.LessThan, PrimitiveTypeKind.Boolean.ToTypeUsage(), new VfpConstantExpression( PrimitiveTypeKind.Int32.ToTypeUsage(), 0), innerProjectionExpression); if (!hasNotExpression) { comparison = new VfpNotExpression(comparison.ResultType, comparison); } innerNewInstanceExpression = new VfpNewInstanceExpression(innerNewInstanceExpression.ResultType, new VfpExpressionList(new List <VfpExpression> { comparison })); innerProjectionExpression = new VfpProjectExpression(expression.ResultType, expression.Input, innerNewInstanceExpression); return(innerProjectionExpression); } } } return(base.Visit(expression)); }
public override VfpExpression Visit(VfpConstantExpression expression) { WriteValue(expression.Value); return(expression); }
private static bool IsZero(VfpConstantExpression expression) { return(expression != null && expression.Value != null && expression.Value.ToString() == "0"); }
public override VfpExpression Visit(VfpConstantExpression expression) { _expressions.Add(expression); return(base.Visit(expression)); }
public virtual VfpExpression Visit(VfpConstantExpression expression) { return(expression); }