private static Expression DeserializeInternal(IPredyExpression predy) { if (predy is PredyParameterExpression parameterPredy) { return(DeserializeParameter(parameterPredy)); } if (predy is PredyMemberExpression memberPredy) { return(DeserializeMember(memberPredy)); } if (predy is PredyConstantExpression constantPredy) { return(DeserializeConstant(constantPredy)); } if (predy is PredyBinaryExpression binaryPredy) { return(DeserializeBinary(binaryPredy)); } if (predy is PredyMethodCallExpression methodCallPredy) { return(DeserializeMethodCall(methodCallPredy)); } if (predy is PredyLambdaExpression predyLambda) { return(DeserializeLambda(predyLambda)); } if (predy is PredyUnaryExpression unaryPredy) { return(DeserializeUnary(unaryPredy)); } return(Expression.Constant(false)); }
private static PredyBinaryExpression SerializeBinary(BinaryExpression exp) { IPredyExpression left = SerializeInternal(exp.Left); IPredyExpression right = SerializeInternal(exp.Right); return(new PredyBinaryExpression { Left = left, Right = right, NodeType = exp.NodeType }); }