static string GetBinaryOperationName(BinaryOperatorType operatorType) { switch (operatorType) { case BinaryOperatorType.Equal: return("=="); case BinaryOperatorType.Less: return("<"); case BinaryOperatorType.LessOrEqual: return("<="); case BinaryOperatorType.Greater: return(">"); case BinaryOperatorType.GreaterOrEqual: return(">="); case BinaryOperatorType.NotEqual: return("!="); default: return(operatorType.ToString()); } }
public override string ToString(int indent) { StringBuilder builder = new StringBuilder(); builder.Indent(indent).AppendLine("BinaryOperator:"); builder.Indent(indent + 1).AppendLine("Left:"); builder.AppendLine(left.ToString(indent + 2)); builder.Indent(indent + 1).AppendLine("Operator:"); builder.Indent(indent + 2).AppendLine(BinaryOperatorType.ToString()); builder.Indent(indent + 1).AppendLine("Right:"); builder.AppendLine(right.ToString(indent + 2)); return(builder.ToString()); }
/// <summary> /// 设计条件转换为数据库查询参数条件 /// </summary> /// <param name="operatorType"></param> /// <param name="isNot"></param> /// <returns></returns> public static MB.Util.DataFilterConditions ConvertToFilterCondition(BinaryOperatorType operatorType, bool isNot) { switch (operatorType) { case BinaryOperatorType.BitwiseAnd: case BinaryOperatorType.BitwiseOr: case BinaryOperatorType.BitwiseXor: case BinaryOperatorType.Divide: return(MB.Util.DataFilterConditions.Special); default: return((MB.Util.DataFilterConditions)Enum.Parse(typeof(MB.Util.DataFilterConditions), (isNot?"Not":"") + operatorType.ToString())); } }
static string GetBinaryOperationName(BinaryOperatorType operatorType) { switch (operatorType) { case BinaryOperatorType.Equal: return("equals"); case BinaryOperatorType.Less: return("is less"); case BinaryOperatorType.LessOrEqual: return("is less than or equals"); case BinaryOperatorType.Greater: return("is greater than"); case BinaryOperatorType.GreaterOrEqual: return("is greater than or equals"); default: return(operatorType.ToString()); } }
string GetBinaryOperator(BinaryOperatorType op) { switch (op) { case BinaryOperatorType.Assign: { return("="); } case BinaryOperatorType.Match: { return("=~"); } case BinaryOperatorType.Equality: { return("=="); } case BinaryOperatorType.Inequality: { return("!="); } case BinaryOperatorType.Add: { return("+"); } case BinaryOperatorType.InPlaceAdd: { return("+="); } case BinaryOperatorType.InPlaceSubtract: { return("-="); } case BinaryOperatorType.InPlaceMultiply: { return("*="); } case BinaryOperatorType.InPlaceDivide: { return("/="); } case BinaryOperatorType.Subtract: { return("-"); } case BinaryOperatorType.Multiply: { return("*"); } case BinaryOperatorType.Divide: { return("/"); } case BinaryOperatorType.GreaterThan: { return(">"); } case BinaryOperatorType.LessThan: { return("<"); } case BinaryOperatorType.Modulus: { return("%"); } case BinaryOperatorType.Member: { return("in"); } case BinaryOperatorType.NotMember: { return("not in"); } case BinaryOperatorType.ReferenceEquality: { return("is"); } case BinaryOperatorType.ReferenceInequality: { return("is not"); } } throw new NotImplementedException(op.ToString()); }
public static string GetBinaryOperatorText(BinaryOperatorType op) { switch (op) { case BinaryOperatorType.Assign: { return("="); } case BinaryOperatorType.Match: { return("=~"); } case BinaryOperatorType.Equality: { return("=="); } case BinaryOperatorType.Inequality: { return("!="); } case BinaryOperatorType.Addition: { return("+"); } case BinaryOperatorType.Exponentiation: { return("**"); } case BinaryOperatorType.InPlaceAddition: { return("+="); } case BinaryOperatorType.InPlaceBitwiseAnd: { return("&="); } case BinaryOperatorType.InPlaceBitwiseOr: { return("|="); } case BinaryOperatorType.InPlaceSubtraction: { return("-="); } case BinaryOperatorType.InPlaceMultiply: { return("*="); } case BinaryOperatorType.InPlaceExclusiveOr: { return("^="); } case BinaryOperatorType.InPlaceDivision: { return("/="); } case BinaryOperatorType.Subtraction: { return("-"); } case BinaryOperatorType.Multiply: { return("*"); } case BinaryOperatorType.Division: { return("/"); } case BinaryOperatorType.GreaterThan: { return(">"); } case BinaryOperatorType.GreaterThanOrEqual: { return(">="); } case BinaryOperatorType.LessThan: { return("<"); } case BinaryOperatorType.LessThanOrEqual: { return("<="); } case BinaryOperatorType.Modulus: { return("%"); } case BinaryOperatorType.Member: { return("in"); } case BinaryOperatorType.NotMember: { return("not in"); } case BinaryOperatorType.ReferenceEquality: { return("is"); } case BinaryOperatorType.ReferenceInequality: { return("is not"); } case BinaryOperatorType.TypeTest: { return("isa"); } case BinaryOperatorType.Or: { return("or"); } case BinaryOperatorType.And: { return("and"); } case BinaryOperatorType.BitwiseOr: { return("|"); } case BinaryOperatorType.BitwiseAnd: { return("&"); } case BinaryOperatorType.ExclusiveOr: { return("^"); } case BinaryOperatorType.ShiftLeft: { return("<<"); } case BinaryOperatorType.ShiftRight: { return(">>"); } case BinaryOperatorType.InPlaceShiftLeft: { return("<<="); } case BinaryOperatorType.InPlaceShiftRight: { return(">>="); } } throw new NotImplementedException(op.ToString()); }
public static string GetMethodNameForOperator(BinaryOperatorType op) { return("op_" + op.ToString()); }
internal static TypeCode GetBinaryNumericPromotionCode(Type left, Type right, BinaryOperatorType exceptionType, bool raiseException) { TypeCode leftTC = Type.GetTypeCode(left); TypeCode rightTC = Type.GetTypeCode(right); Dictionary<TypeCode, TypeCode> rights; if(!BinaryNumericPromotions.TryGetValue(leftTC, out rights)) { if(raiseException) throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, FilteringExceptionsText.ExpressionEvaluatorOperatorSubtypeNotSupportedForSpecificOperandType, typeof(BinaryOperator).Name, exceptionType.ToString(), left.FullName)); else return TypeCode.Object; } TypeCode result; if(!rights.TryGetValue(rightTC, out result)) { if(raiseException) throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, FilteringExceptionsText.ExpressionEvaluatorOperatorSubtypeNotSupportedForSpecificOperandType, typeof(BinaryOperator).Name, exceptionType.ToString(), right.FullName)); else return TypeCode.Object; } return result; }
public static string GetBinaryOperatorText(BinaryOperatorType op) { switch (op) { case BinaryOperatorType.Assign: { return "="; } case BinaryOperatorType.Match: { return "=~"; } case BinaryOperatorType.Equality: { return "=="; } case BinaryOperatorType.Inequality: { return "!="; } case BinaryOperatorType.Addition: { return "+"; } case BinaryOperatorType.Exponentiation: { return "**"; } case BinaryOperatorType.InPlaceAddition: { return "+="; } case BinaryOperatorType.InPlaceBitwiseAnd: { return "&="; } case BinaryOperatorType.InPlaceBitwiseOr: { return "|="; } case BinaryOperatorType.InPlaceSubtraction: { return "-="; } case BinaryOperatorType.InPlaceMultiply: { return "*="; } case BinaryOperatorType.InPlaceExclusiveOr: { return "^="; } case BinaryOperatorType.InPlaceDivision: { return "/="; } case BinaryOperatorType.Subtraction: { return "-"; } case BinaryOperatorType.Multiply: { return "*"; } case BinaryOperatorType.Division: { return "/"; } case BinaryOperatorType.GreaterThan: { return ">"; } case BinaryOperatorType.GreaterThanOrEqual: { return ">="; } case BinaryOperatorType.LessThan: { return "<"; } case BinaryOperatorType.LessThanOrEqual: { return "<="; } case BinaryOperatorType.Modulus: { return "%"; } case BinaryOperatorType.Member: { return "in"; } case BinaryOperatorType.NotMember: { return "not in"; } case BinaryOperatorType.ReferenceEquality: { return "is"; } case BinaryOperatorType.ReferenceInequality: { return "is not"; } case BinaryOperatorType.TypeTest: { return "isa"; } case BinaryOperatorType.Or: { return "or"; } case BinaryOperatorType.And: { return "and"; } case BinaryOperatorType.BitwiseOr: { return "|"; } case BinaryOperatorType.BitwiseAnd: { return "&"; } case BinaryOperatorType.ExclusiveOr: { return "^"; } case BinaryOperatorType.ShiftLeft: { return "<<"; } case BinaryOperatorType.ShiftRight: { return ">>"; } case BinaryOperatorType.InPlaceShiftLeft: { return "<<="; } case BinaryOperatorType.InPlaceShiftRight: { return ">>="; } } throw new NotImplementedException(op.ToString()); }
/// <summary> /// Returns a stringified representation of the Operator /// </summary> string OperName(BinaryOperatorType oper) { string s; switch (oper) { case BinaryOperatorType.Multiply: s = "*"; break; case BinaryOperatorType.Division: s = "/"; break; case BinaryOperatorType.Modulus: s = "%"; break; case BinaryOperatorType.Addition: s = "+"; break; case BinaryOperatorType.Subtraction: s = "-"; break; case BinaryOperatorType.LeftShift: s = "<<"; break; case BinaryOperatorType.RightShift: s = ">>"; break; case BinaryOperatorType.LessThan: s = "<"; break; case BinaryOperatorType.GreaterThan: s = ">"; break; case BinaryOperatorType.LessThanOrEqual: s = "<="; break; case BinaryOperatorType.GreaterThanOrEqual: s = ">="; break; case BinaryOperatorType.Equality: s = "=="; break; case BinaryOperatorType.Inequality: s = "!="; break; case BinaryOperatorType.BitwiseAnd: s = "&"; break; case BinaryOperatorType.BitwiseOr: s = "|"; break; case BinaryOperatorType.ExclusiveOr: s = "^"; break; case BinaryOperatorType.LogicalOr: s = "||"; break; case BinaryOperatorType.LogicalAnd: s = "&&"; break; default: s = oper.ToString(); break; } if (IsCompound) { return(s + "="); } return(s); }
public static string GetMethodNameForOperator(BinaryOperatorType op) { return "op_" + op.ToString(); }