Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Parsing / Token.cs / 1305376 / Token.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a type to represent a parsed token. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Parsing { using System; using System.Diagnostics; ///Use this class to represent a lexical token. [DebuggerDisplay("{Id} @ {Position}: [{Text}]")] internal struct Token { ///Token representing gt keyword internal static readonly Token GreaterThan = new Token { Text = ExpressionConstants.KeywordGreaterThan, Id = TokenId.Identifier, Position = 0 }; ///Token representing eq keyword internal static readonly Token EqualsTo = new Token { Text = ExpressionConstants.KeywordEqual, Id = TokenId.Identifier, Position = 0 }; ///Token representing lt keyword internal static readonly Token LessThan = new Token { Text = ExpressionConstants.KeywordLessThan, Id = TokenId.Identifier, Position = 0 }; ///Kind of token. internal TokenId Id; ///Token text. internal string Text; ///Position of token. internal int Position; ///Checks whether this token is a comparison operator. internal bool IsComparisonOperator { get { if (this.Id != TokenId.Identifier) { return false; } return this.Text == ExpressionConstants.KeywordEqual || this.Text == ExpressionConstants.KeywordNotEqual || this.Text == ExpressionConstants.KeywordLessThan || this.Text == ExpressionConstants.KeywordGreaterThan || this.Text == ExpressionConstants.KeywordLessThanOrEqual || this.Text == ExpressionConstants.KeywordGreaterThanOrEqual; } } ///Checks whether this token is an equality operator. internal bool IsEqualityOperator { get { return this.Id == TokenId.Identifier && (this.Text == ExpressionConstants.KeywordEqual || this.Text == ExpressionConstants.KeywordNotEqual); } } ///Checks whether this token is a valid token for a key value. internal bool IsKeyValueToken { get { return this.Id == TokenId.BinaryLiteral || this.Id == TokenId.BooleanLiteral || this.Id == TokenId.DateTimeLiteral || this.Id == TokenId.GuidLiteral || this.Id == TokenId.StringLiteral || ExpressionLexer.IsNumeric(this.Id); } } ///Provides a string representation of this token. ///String representation of this token. public override string ToString() { return String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0} @ {1}: [{2}]", this.Id, this.Position, this.Text); } ///Gets the current identifier text. ///The current identifier text. internal string GetIdentifier() { if (this.Id != TokenId.Identifier) { throw DataServiceException.CreateSyntaxError(Strings.RequestQueryParser_IdentifierExpected(this.Position)); } return this.Text; } ///Checks that this token has the specified identifier. /// Identifier to check. ///true if this is an identifier with the specified text. internal bool IdentifierIs(string id) { return this.Id == TokenId.Identifier && this.Text == id; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a type to represent a parsed token. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Parsing { using System; using System.Diagnostics; ///Use this class to represent a lexical token. [DebuggerDisplay("{Id} @ {Position}: [{Text}]")] internal struct Token { ///Token representing gt keyword internal static readonly Token GreaterThan = new Token { Text = ExpressionConstants.KeywordGreaterThan, Id = TokenId.Identifier, Position = 0 }; ///Token representing eq keyword internal static readonly Token EqualsTo = new Token { Text = ExpressionConstants.KeywordEqual, Id = TokenId.Identifier, Position = 0 }; ///Token representing lt keyword internal static readonly Token LessThan = new Token { Text = ExpressionConstants.KeywordLessThan, Id = TokenId.Identifier, Position = 0 }; ///Kind of token. internal TokenId Id; ///Token text. internal string Text; ///Position of token. internal int Position; ///Checks whether this token is a comparison operator. internal bool IsComparisonOperator { get { if (this.Id != TokenId.Identifier) { return false; } return this.Text == ExpressionConstants.KeywordEqual || this.Text == ExpressionConstants.KeywordNotEqual || this.Text == ExpressionConstants.KeywordLessThan || this.Text == ExpressionConstants.KeywordGreaterThan || this.Text == ExpressionConstants.KeywordLessThanOrEqual || this.Text == ExpressionConstants.KeywordGreaterThanOrEqual; } } ///Checks whether this token is an equality operator. internal bool IsEqualityOperator { get { return this.Id == TokenId.Identifier && (this.Text == ExpressionConstants.KeywordEqual || this.Text == ExpressionConstants.KeywordNotEqual); } } ///Checks whether this token is a valid token for a key value. internal bool IsKeyValueToken { get { return this.Id == TokenId.BinaryLiteral || this.Id == TokenId.BooleanLiteral || this.Id == TokenId.DateTimeLiteral || this.Id == TokenId.GuidLiteral || this.Id == TokenId.StringLiteral || ExpressionLexer.IsNumeric(this.Id); } } ///Provides a string representation of this token. ///String representation of this token. public override string ToString() { return String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0} @ {1}: [{2}]", this.Id, this.Position, this.Text); } ///Gets the current identifier text. ///The current identifier text. internal string GetIdentifier() { if (this.Id != TokenId.Identifier) { throw DataServiceException.CreateSyntaxError(Strings.RequestQueryParser_IdentifierExpected(this.Position)); } return this.Text; } ///Checks that this token has the specified identifier. /// Identifier to check. ///true if this is an identifier with the specified text. internal bool IdentifierIs(string id) { return this.Id == TokenId.Identifier && this.Text == id; } } } // 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
- DoubleCollectionValueSerializer.cs
- CharAnimationUsingKeyFrames.cs
- BuilderPropertyEntry.cs
- FlagsAttribute.cs
- PageMediaType.cs
- GeneralTransform.cs
- RevocationPoint.cs
- mda.cs
- UsernameTokenFactoryCredential.cs
- EncoderExceptionFallback.cs
- HtmlEmptyTagControlBuilder.cs
- SequentialOutput.cs
- XhtmlBasicLinkAdapter.cs
- Propagator.Evaluator.cs
- TextStore.cs
- TemplateColumn.cs
- WebResourceAttribute.cs
- WithStatement.cs
- DescendantBaseQuery.cs
- ResourcePool.cs
- ResourceSet.cs
- WhitespaceRuleLookup.cs
- SystemInfo.cs
- PopupControlService.cs
- BrowserCapabilitiesCodeGenerator.cs
- RequiredFieldValidator.cs
- ObjectSecurity.cs
- PagesSection.cs
- DataServiceProviderMethods.cs
- UncommonField.cs
- ColumnMapProcessor.cs
- AncestorChangedEventArgs.cs
- Polyline.cs
- ChoiceConverter.cs
- TextFormatterImp.cs
- ProgressBarRenderer.cs
- CommentEmitter.cs
- HeaderedItemsControl.cs
- PersonalizableAttribute.cs
- PropertyKey.cs
- Invariant.cs
- SchemaImporterExtension.cs
- TextParaLineResult.cs
- ColumnBinding.cs
- BitmapCodecInfoInternal.cs
- BeginCreateSecurityTokenRequest.cs
- ActivityTypeResolver.xaml.cs
- Transform3D.cs
- COSERVERINFO.cs
- FragmentQueryKB.cs
- embossbitmapeffect.cs
- XmlNotation.cs
- OracleConnectionString.cs
- DispatchOperation.cs
- LessThanOrEqual.cs
- VBIdentifierName.cs
- SessionStateSection.cs
- InvalidAsynchronousStateException.cs
- XmlHierarchicalEnumerable.cs
- ObjectToken.cs
- ToolStripContainerDesigner.cs
- latinshape.cs
- HtmlValidationSummaryAdapter.cs
- Double.cs
- SeekStoryboard.cs
- MiniModule.cs
- CompressedStack.cs
- QuaternionRotation3D.cs
- XmlBinaryReader.cs
- TextServicesProperty.cs
- EncoderExceptionFallback.cs
- ExeConfigurationFileMap.cs
- Quad.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- TypeUtil.cs
- FullTrustAssemblyCollection.cs
- HtmlContainerControl.cs
- TTSEvent.cs
- ProtectedConfigurationSection.cs
- SchemaInfo.cs
- dataobject.cs
- RawKeyboardInputReport.cs
- TransformPattern.cs
- FormsAuthenticationUser.cs
- AssemblyAttributesGoHere.cs
- AnimationTimeline.cs
- StringFreezingAttribute.cs
- Vector3DKeyFrameCollection.cs
- NavigationCommands.cs
- ProfileProvider.cs
- FreezableCollection.cs
- Visitor.cs
- List.cs
- ConnectionPoint.cs
- NameTable.cs
- ClientSettingsStore.cs
- CapabilitiesRule.cs
- SqlFormatter.cs
- DoWorkEventArgs.cs
- DropShadowEffect.cs