示例#1
0
        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());
            }
        }
示例#2
0
        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()));
            }
        }
示例#4
0
        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());
            }
        }
示例#5
0
        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());
        }
示例#6
0
        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());
        }
示例#7
0
文件: AstUtil.cs 项目: codehaus/boo
 public static string GetMethodNameForOperator(BinaryOperatorType op)
 {
     return("op_" + op.ToString());
 }
示例#8
0
 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;
 }
示例#9
0
        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());
        }
示例#10
0
        /// <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);
        }
示例#11
0
 public static string GetMethodNameForOperator(BinaryOperatorType op)
 {
     return "op_" + op.ToString();
 }