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
- WorkflowOperationBehavior.cs
- Label.cs
- EpmContentSerializer.cs
- QueueProcessor.cs
- BinaryCommonClasses.cs
- WebServiceMethodData.cs
- NamedElement.cs
- StructuredTypeEmitter.cs
- MarshalDirectiveException.cs
- ComplexPropertyEntry.cs
- Closure.cs
- HtmlInputControl.cs
- BaseAutoFormat.cs
- Timer.cs
- ActivityInfo.cs
- SkipQueryOptionExpression.cs
- HttpsChannelFactory.cs
- DispatcherObject.cs
- WinFormsSecurity.cs
- HeaderedItemsControl.cs
- TypePresenter.xaml.cs
- SafeNativeMethodsCLR.cs
- ResourcesChangeInfo.cs
- AssemblyContextControlItem.cs
- CodeTypeDeclarationCollection.cs
- SubclassTypeValidator.cs
- TreePrinter.cs
- EventProviderBase.cs
- PropertyMappingExceptionEventArgs.cs
- DynamicDocumentPaginator.cs
- HtmlTableCellCollection.cs
- VScrollBar.cs
- RoleBoolean.cs
- RelationshipEnd.cs
- JsonServiceDocumentSerializer.cs
- ZipIOCentralDirectoryFileHeader.cs
- ILGenerator.cs
- ContourSegment.cs
- DataProviderNameConverter.cs
- DataPagerFieldCollection.cs
- SystemBrushes.cs
- TableItemPatternIdentifiers.cs
- SoapProtocolReflector.cs
- Renderer.cs
- RuleSettings.cs
- RecommendedAsConfigurableAttribute.cs
- AttributeQuery.cs
- CommonObjectSecurity.cs
- ErrorFormatterPage.cs
- PagerSettings.cs
- ExpressionEditorAttribute.cs
- IISUnsafeMethods.cs
- XmlSerializerNamespaces.cs
- DetailsViewUpdateEventArgs.cs
- PropertyConverter.cs
- ISAPIApplicationHost.cs
- AdapterDictionary.cs
- DataSetUtil.cs
- GiveFeedbackEvent.cs
- DbReferenceCollection.cs
- ReaderContextStackData.cs
- XmlQueryRuntime.cs
- DocumentPageHost.cs
- EventData.cs
- StickyNoteContentControl.cs
- InputReport.cs
- SmtpReplyReaderFactory.cs
- Material.cs
- AccessibilityApplicationManager.cs
- IDReferencePropertyAttribute.cs
- NavigationHelper.cs
- RuntimeHelpers.cs
- RoleManagerSection.cs
- MarkerProperties.cs
- TdsParser.cs
- RefreshEventArgs.cs
- SequenceQuery.cs
- KeyValueConfigurationElement.cs
- AbstractSvcMapFileLoader.cs
- SupportsEventValidationAttribute.cs
- EFAssociationProvider.cs
- BinaryFormatterWriter.cs
- DecoderBestFitFallback.cs
- MethodRental.cs
- EventListenerClientSide.cs
- SemaphoreSecurity.cs
- ConnectionString.cs
- safex509handles.cs
- CommonProperties.cs
- Filter.cs
- DataObjectCopyingEventArgs.cs
- HttpListenerException.cs
- IndexingContentUnit.cs
- SqlRetyper.cs
- SchemaElementLookUpTableEnumerator.cs
- QueryOpeningEnumerator.cs
- ButtonBaseAutomationPeer.cs
- FontCacheLogic.cs
- XmlNodeChangedEventArgs.cs
- XmlSchemaAny.cs