Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Data / System / Data / Filter / Operators.cs / 1 / Operators.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; internal sealed class Operators { private Operators() { /* prevent utility class from being insantiated*/ } internal const int Noop = 0; /* Unary operations */ internal const int Negative = 1; internal const int UnaryPlus = 2; internal const int Not = 3; /* Binary operations */ internal const int BetweenAnd = 4; internal const int In = 5; internal const int Between = 6; /* Beginning of Comparison (relationa) operators */ internal const int EqualTo = 7; // = internal const int GreaterThen = 8; // > internal const int LessThen = 9; // < internal const int GreaterOrEqual = 10;// >= internal const int LessOrEqual = 11; // <= internal const int NotEqual = 12; // <> /* End of Comparison (relational) operators */ internal const int Is = 13; internal const int Like = 14; /* Beginning of arithmetic operators */ internal const int Plus = 15; // + internal const int Minus = 16; // - internal const int Multiply = 17; // * internal const int Divide = 18; // / //internal final static int IntegerDiv = 19; // \ internal const int Modulo = 20; // % //internal final static int Exponent = 21; // ** /* End of arithmetic operators */ /* Beginning of bitwise operators */ internal const int BitwiseAnd = 22; // & internal const int BitwiseOr = 23; // | internal const int BitwiseXor = 24; // ^ internal const int BitwiseNot = 25; // ~ /* End of bitwise operators */ /* Beginning of logical operators */ internal const int And = 26; // AND internal const int Or = 27; // OR // internal final static int Not is in the unary ops /* End of logical operators */ /* Calls/multi-valued stuff */ internal const int Proc = 28; internal const int Iff = 29; internal const int Qual = 30; internal const int Dot = 31; /* 0-ary "operators" */ internal const int Null = 32; internal const int True = 33; internal const int False = 34; internal const int Date = 35; // Date constant internal const int GenUniqueId = 36; // Generate unique ID internal const int GenGUID = 37; // Generate GUID internal const int GUID = 38; // GUID constant internal const int IsNot = 39; internal static bool IsArithmetical(int op) { return(op == Plus || op == Minus || op == Multiply || op == Divide || op == Modulo); } internal static bool IsLogical(int op) { return(op == And || op == Or || op == Not || op == Is || op == IsNot); } internal static bool IsRelational(int op) { return((EqualTo <= op ) && (op <= NotEqual)); } ////// Operator priorities /// internal const int priStart = 0; internal const int priSubstr = 1; internal const int priParen = 2; internal const int priLow = 3; internal const int priImp = 4; internal const int priEqv = 5; internal const int priXor = 6; internal const int priOr = 7; internal const int priAnd = 8; internal const int priNot = 9; internal const int priIs = 10; internal const int priBetweenInLike = 11; internal const int priBetweenAnd = 12; internal const int priRelOp = 13; internal const int priConcat = 14; internal const int priContains = 15; internal const int priPlusMinus = 16; internal const int priMod = 17; internal const int priIDiv = 18; internal const int priMulDiv = 19; internal const int priNeg = 20; internal const int priExp = 21; internal const int priProc = 22; internal const int priDot = 23; internal const int priMax = 24; ////// Mapping from Operator to prioritys /// private static readonly int[] priority = new int[] { priStart, // Noop priNeg, priNeg, priNot, // Unary -, +, Not priBetweenAnd, priBetweenInLike, priBetweenInLike, priRelOp, priRelOp, priRelOp, priRelOp, priRelOp, priRelOp, priIs, priBetweenInLike, // Like priPlusMinus, priPlusMinus, // +, - priMulDiv, priMulDiv, priIDiv, priMod, // *, /, \, Mod priExp, // ** priAnd, priOr, priXor, priNot, priAnd, priOr, priParen, priProc, priDot, priDot, // Proc, Iff, Qula, Dot.. priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, }; internal static int Priority(int op) { if (op > priority.Length) return priMax; return priority[op]; } /// /// this is array used for error messages. /// static readonly string[] Looks = new string[] { "", //Noop = 0; /* Unary operations */ "-", //Negative = 1; "+", //UnaryPlus = 2; "Not", //Not = 3; /* Binary operations */ "BetweenAnd", //BetweenAnd = 4; "In", //In = 5; "Between", //Between = 6; /* Beginning of Comparison (relationa) operators */ "=", //EqualTo = 7; // = ">", //GreaterThen = 8; // > "<", //LessThen = 9; // < ">=", //GreaterOrEqual = 10;// >= "<=", //LessOrEqual = 11; // <= "<>", //NotEqual = 12; // <> /* End of Comparison (relational) operators */ "Is", //Is = 13; "Like", //Like = 14; /* Beginning of arithmetic operators */ "+", //Plus = 15; // + "-", //Minus = 16; // - "*", //Multiply = 17; // * "/", //Divide = 18; // / "\\", //IntegerDiv = 19; // \ "Mod", //Modulo = 20; // % "**", //Exponent = 21; // ** /* End of arithmetic operators */ /* Beginning of bitwise operators */ "&", //BitwiseAnd = 22; // & "|", //BitwiseOr = 23; // | "^", //BitwiseXor = 24; // ^ "~", //BitwiseNot = 25; // ~ /* End of bitwise operators */ /* Beginning of logical operators */ "And", //And = 26; // AND "Or", //Or = 27; // OR // Not is in the unary ops /* End of logical operators */ /* Calls/multi-valued stuff */ "Proc", //Proc = 28; "Iff", //Iff = 29; ".", //Qual = 30; ".", //Dot = 31; /* 0-ary "operators" */ "Null", //Null = 32; "True", //True = 33; "False", //False = 34; "Date", //Date = 35; // Date constant "GenUniqueId()", //GenUniqueId = 36; // Generate unique ID "GenGuid()", //GenGUID = 37; // Generate GUID "Guid {..}", //GUID = 38; // GUID constant "Is Not", //IsNot = 39; // internal only }; internal static string ToString(int op) { string st; if (op <= Looks.Length) st = Looks[op]; else st = "Unknown op"; return st; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; internal sealed class Operators { private Operators() { /* prevent utility class from being insantiated*/ } internal const int Noop = 0; /* Unary operations */ internal const int Negative = 1; internal const int UnaryPlus = 2; internal const int Not = 3; /* Binary operations */ internal const int BetweenAnd = 4; internal const int In = 5; internal const int Between = 6; /* Beginning of Comparison (relationa) operators */ internal const int EqualTo = 7; // = internal const int GreaterThen = 8; // > internal const int LessThen = 9; // < internal const int GreaterOrEqual = 10;// >= internal const int LessOrEqual = 11; // <= internal const int NotEqual = 12; // <> /* End of Comparison (relational) operators */ internal const int Is = 13; internal const int Like = 14; /* Beginning of arithmetic operators */ internal const int Plus = 15; // + internal const int Minus = 16; // - internal const int Multiply = 17; // * internal const int Divide = 18; // / //internal final static int IntegerDiv = 19; // \ internal const int Modulo = 20; // % //internal final static int Exponent = 21; // ** /* End of arithmetic operators */ /* Beginning of bitwise operators */ internal const int BitwiseAnd = 22; // & internal const int BitwiseOr = 23; // | internal const int BitwiseXor = 24; // ^ internal const int BitwiseNot = 25; // ~ /* End of bitwise operators */ /* Beginning of logical operators */ internal const int And = 26; // AND internal const int Or = 27; // OR // internal final static int Not is in the unary ops /* End of logical operators */ /* Calls/multi-valued stuff */ internal const int Proc = 28; internal const int Iff = 29; internal const int Qual = 30; internal const int Dot = 31; /* 0-ary "operators" */ internal const int Null = 32; internal const int True = 33; internal const int False = 34; internal const int Date = 35; // Date constant internal const int GenUniqueId = 36; // Generate unique ID internal const int GenGUID = 37; // Generate GUID internal const int GUID = 38; // GUID constant internal const int IsNot = 39; internal static bool IsArithmetical(int op) { return(op == Plus || op == Minus || op == Multiply || op == Divide || op == Modulo); } internal static bool IsLogical(int op) { return(op == And || op == Or || op == Not || op == Is || op == IsNot); } internal static bool IsRelational(int op) { return((EqualTo <= op ) && (op <= NotEqual)); } ////// Operator priorities /// internal const int priStart = 0; internal const int priSubstr = 1; internal const int priParen = 2; internal const int priLow = 3; internal const int priImp = 4; internal const int priEqv = 5; internal const int priXor = 6; internal const int priOr = 7; internal const int priAnd = 8; internal const int priNot = 9; internal const int priIs = 10; internal const int priBetweenInLike = 11; internal const int priBetweenAnd = 12; internal const int priRelOp = 13; internal const int priConcat = 14; internal const int priContains = 15; internal const int priPlusMinus = 16; internal const int priMod = 17; internal const int priIDiv = 18; internal const int priMulDiv = 19; internal const int priNeg = 20; internal const int priExp = 21; internal const int priProc = 22; internal const int priDot = 23; internal const int priMax = 24; ////// Mapping from Operator to prioritys /// private static readonly int[] priority = new int[] { priStart, // Noop priNeg, priNeg, priNot, // Unary -, +, Not priBetweenAnd, priBetweenInLike, priBetweenInLike, priRelOp, priRelOp, priRelOp, priRelOp, priRelOp, priRelOp, priIs, priBetweenInLike, // Like priPlusMinus, priPlusMinus, // +, - priMulDiv, priMulDiv, priIDiv, priMod, // *, /, \, Mod priExp, // ** priAnd, priOr, priXor, priNot, priAnd, priOr, priParen, priProc, priDot, priDot, // Proc, Iff, Qula, Dot.. priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, priMax, }; internal static int Priority(int op) { if (op > priority.Length) return priMax; return priority[op]; } /// /// this is array used for error messages. /// static readonly string[] Looks = new string[] { "", //Noop = 0; /* Unary operations */ "-", //Negative = 1; "+", //UnaryPlus = 2; "Not", //Not = 3; /* Binary operations */ "BetweenAnd", //BetweenAnd = 4; "In", //In = 5; "Between", //Between = 6; /* Beginning of Comparison (relationa) operators */ "=", //EqualTo = 7; // = ">", //GreaterThen = 8; // > "<", //LessThen = 9; // < ">=", //GreaterOrEqual = 10;// >= "<=", //LessOrEqual = 11; // <= "<>", //NotEqual = 12; // <> /* End of Comparison (relational) operators */ "Is", //Is = 13; "Like", //Like = 14; /* Beginning of arithmetic operators */ "+", //Plus = 15; // + "-", //Minus = 16; // - "*", //Multiply = 17; // * "/", //Divide = 18; // / "\\", //IntegerDiv = 19; // \ "Mod", //Modulo = 20; // % "**", //Exponent = 21; // ** /* End of arithmetic operators */ /* Beginning of bitwise operators */ "&", //BitwiseAnd = 22; // & "|", //BitwiseOr = 23; // | "^", //BitwiseXor = 24; // ^ "~", //BitwiseNot = 25; // ~ /* End of bitwise operators */ /* Beginning of logical operators */ "And", //And = 26; // AND "Or", //Or = 27; // OR // Not is in the unary ops /* End of logical operators */ /* Calls/multi-valued stuff */ "Proc", //Proc = 28; "Iff", //Iff = 29; ".", //Qual = 30; ".", //Dot = 31; /* 0-ary "operators" */ "Null", //Null = 32; "True", //True = 33; "False", //False = 34; "Date", //Date = 35; // Date constant "GenUniqueId()", //GenUniqueId = 36; // Generate unique ID "GenGuid()", //GenGUID = 37; // Generate GUID "Guid {..}", //GUID = 38; // GUID constant "Is Not", //IsNot = 39; // internal only }; internal static string ToString(int op) { string st; if (op <= Looks.Length) st = Looks[op]; else st = "Unknown op"; return st; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlSerializerUtil.cs
- RSAOAEPKeyExchangeFormatter.cs
- validationstate.cs
- HyperLink.cs
- MemberAccessException.cs
- QuaternionAnimationUsingKeyFrames.cs
- SerialReceived.cs
- BufferModesCollection.cs
- DataGridViewCellMouseEventArgs.cs
- TextTreeText.cs
- TimeIntervalCollection.cs
- SdlChannelSink.cs
- HyperLinkColumn.cs
- AuthenticationModulesSection.cs
- PageCache.cs
- ArrayTypeMismatchException.cs
- ResXFileRef.cs
- RequestStatusBarUpdateEventArgs.cs
- SqlStream.cs
- SubpageParaClient.cs
- XPathDescendantIterator.cs
- XmlSchemaAll.cs
- XmlSchemaValidator.cs
- PersistenceTypeAttribute.cs
- PolyBezierSegment.cs
- HttpDictionary.cs
- CacheHelper.cs
- HttpValueCollection.cs
- TypeDelegator.cs
- StrongNameUtility.cs
- httpserverutility.cs
- BitmapMetadataEnumerator.cs
- NullableDoubleSumAggregationOperator.cs
- QilFactory.cs
- CodeDomDesignerLoader.cs
- ArrayListCollectionBase.cs
- HtmlElementEventArgs.cs
- ProfilePropertySettings.cs
- TextAction.cs
- MenuItemCollection.cs
- ThicknessConverter.cs
- CmsInterop.cs
- CommandEventArgs.cs
- HtmlForm.cs
- MtomMessageEncoder.cs
- DocumentCollection.cs
- PartialList.cs
- BindToObject.cs
- Single.cs
- MenuDesigner.cs
- ListView.cs
- XmlAtomicValue.cs
- ScaleTransform.cs
- BrowserTree.cs
- RouteValueExpressionBuilder.cs
- ToolStripDesignerAvailabilityAttribute.cs
- OracleColumn.cs
- XmlSerializationGeneratedCode.cs
- MultitargetUtil.cs
- CodeCompileUnit.cs
- NetworkInterface.cs
- Utils.cs
- HMAC.cs
- IImplicitResourceProvider.cs
- TextTreeObjectNode.cs
- Effect.cs
- ToolStripSettings.cs
- coordinator.cs
- NavigationFailedEventArgs.cs
- InfiniteTimeSpanConverter.cs
- PropertyTabChangedEvent.cs
- InkCollectionBehavior.cs
- InplaceBitmapMetadataWriter.cs
- TextDecorationCollection.cs
- IdleTimeoutMonitor.cs
- WebServiceReceiveDesigner.cs
- ApplicationFileCodeDomTreeGenerator.cs
- Track.cs
- ContextConfiguration.cs
- RelationshipDetailsRow.cs
- NamedElement.cs
- grammarelement.cs
- SynchronousChannel.cs
- ZipIOLocalFileBlock.cs
- SizeChangedEventArgs.cs
- DataSet.cs
- WebPartDisplayModeCollection.cs
- MetadataArtifactLoaderCompositeResource.cs
- SizeIndependentAnimationStorage.cs
- HostingEnvironmentSection.cs
- AsyncOperationManager.cs
- FormViewCommandEventArgs.cs
- SourceFileBuildProvider.cs
- ToolStripItemGlyph.cs
- TraceHandler.cs
- CacheAxisQuery.cs
- ExcludeFromCodeCoverageAttribute.cs
- CheckBoxFlatAdapter.cs
- RijndaelManaged.cs
- PersonalizationDictionary.cs