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
- PersistenceProvider.cs
- DataGridAutoFormat.cs
- FreeIndexList.cs
- DataServiceEntityAttribute.cs
- AccessViolationException.cs
- ClosableStream.cs
- StyleModeStack.cs
- SystemFonts.cs
- DataView.cs
- FileDialogCustomPlaces.cs
- ProgressiveCrcCalculatingStream.cs
- TrackingServices.cs
- EventRouteFactory.cs
- MsmqHostedTransportManager.cs
- _Rfc2616CacheValidators.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- WarningException.cs
- DataSourceXmlAttributeAttribute.cs
- updatecommandorderer.cs
- SqlLiftIndependentRowExpressions.cs
- IxmlLineInfo.cs
- XmlParserContext.cs
- BitmapEffectInput.cs
- InputLanguageProfileNotifySink.cs
- _ServiceNameStore.cs
- RegexBoyerMoore.cs
- XmlILModule.cs
- SqlRemoveConstantOrderBy.cs
- FigureParagraph.cs
- QilXmlWriter.cs
- GradientStop.cs
- BookmarkEventArgs.cs
- ExtensionElementCollection.cs
- QueryAsyncResult.cs
- ResXFileRef.cs
- FamilyTypefaceCollection.cs
- MimePart.cs
- EditorResources.cs
- ByteAnimationBase.cs
- WebPartTracker.cs
- PaginationProgressEventArgs.cs
- InputLanguageProfileNotifySink.cs
- ProfileSettingsCollection.cs
- InvokeMemberBinder.cs
- TransformConverter.cs
- DesigntimeLicenseContext.cs
- InputReportEventArgs.cs
- TextHidden.cs
- Condition.cs
- Msec.cs
- BitmapCodecInfo.cs
- EDesignUtil.cs
- TemplateBindingExtension.cs
- ComponentConverter.cs
- CodeAttachEventStatement.cs
- Color.cs
- MessageSmuggler.cs
- WmpBitmapDecoder.cs
- ClassHandlersStore.cs
- ButtonFlatAdapter.cs
- XPathNavigator.cs
- ControlTemplate.cs
- LocalizedNameDescriptionPair.cs
- Positioning.cs
- WebPartDescription.cs
- Font.cs
- VirtualizingPanel.cs
- ConstraintCollection.cs
- DropAnimation.xaml.cs
- TextServicesLoader.cs
- ContentValidator.cs
- GridViewColumnHeaderAutomationPeer.cs
- EnumValAlphaComparer.cs
- X509Chain.cs
- SemaphoreFullException.cs
- AppDomainUnloadedException.cs
- StringConcat.cs
- EntitySqlQueryState.cs
- DataControlFieldCollection.cs
- NamedObject.cs
- TypeValidationEventArgs.cs
- ShaderRenderModeValidation.cs
- ListViewItem.cs
- AssertFilter.cs
- ComponentChangingEvent.cs
- CombinedGeometry.cs
- DeleteIndexBinder.cs
- Icon.cs
- ObjectTag.cs
- SynchronizedKeyedCollection.cs
- SignatureToken.cs
- SqlFactory.cs
- Fault.cs
- DSASignatureFormatter.cs
- safemediahandle.cs
- ElementMarkupObject.cs
- RSAProtectedConfigurationProvider.cs
- TextSelectionHelper.cs
- SortedDictionary.cs
- OdbcConnectionStringbuilder.cs