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
- DefaultPrintController.cs
- Evaluator.cs
- AttributeEmitter.cs
- DocumentReference.cs
- DefaultMemberAttribute.cs
- XmlSchemaResource.cs
- TdsParameterSetter.cs
- TabControlAutomationPeer.cs
- ComAdminWrapper.cs
- _SslState.cs
- GradientSpreadMethodValidation.cs
- TextTreeExtractElementUndoUnit.cs
- RectAnimationClockResource.cs
- ConnectionProviderAttribute.cs
- baseaxisquery.cs
- SAPICategories.cs
- CombinedGeometry.cs
- ProfileProvider.cs
- ControlCachePolicy.cs
- InitializerFacet.cs
- DataGridPagingPage.cs
- WebPartActionVerb.cs
- OrderPreservingSpoolingTask.cs
- ItemContainerGenerator.cs
- WaitHandle.cs
- CompilerInfo.cs
- BatchParser.cs
- TraceUtils.cs
- XmlSyndicationContent.cs
- CaseCqlBlock.cs
- PrintPreviewGraphics.cs
- IndexingContentUnit.cs
- TrackingValidationObjectDictionary.cs
- CodeTypeOfExpression.cs
- Page.cs
- DropDownList.cs
- AuthenticatingEventArgs.cs
- GridViewItemAutomationPeer.cs
- DataControlPagerLinkButton.cs
- CustomActivityDesigner.cs
- ApplicationSecurityManager.cs
- SID.cs
- EmptyStringExpandableObjectConverter.cs
- XmlSchemaNotation.cs
- WindowsAuthenticationModule.cs
- IDReferencePropertyAttribute.cs
- DesignTimeVisibleAttribute.cs
- Application.cs
- SimplePropertyEntry.cs
- PrincipalPermission.cs
- XmlChildNodes.cs
- State.cs
- SponsorHelper.cs
- Misc.cs
- DataSourceHelper.cs
- DesignTimeDataBinding.cs
- DataGridViewCellParsingEventArgs.cs
- ThreadAbortException.cs
- VScrollBar.cs
- HtmlTitle.cs
- XmlSecureResolver.cs
- PackagePartCollection.cs
- TextFormatterHost.cs
- FactoryRecord.cs
- ButtonRenderer.cs
- GetWinFXPath.cs
- ConfigsHelper.cs
- WebConfigurationManager.cs
- EntityDesignerUtils.cs
- DecoderFallback.cs
- DataErrorValidationRule.cs
- ValidatingReaderNodeData.cs
- ObjectDataSourceEventArgs.cs
- ProcessInfo.cs
- IsolatedStorageFilePermission.cs
- RadioButtonPopupAdapter.cs
- DataControlImageButton.cs
- CompModSwitches.cs
- ToolboxDataAttribute.cs
- String.cs
- XamlClipboardData.cs
- TableItemProviderWrapper.cs
- Path.cs
- MulticastNotSupportedException.cs
- AuthenticationModuleElementCollection.cs
- CompositeDataBoundControl.cs
- WsdlHelpGeneratorElement.cs
- Math.cs
- Range.cs
- DetailsViewUpdateEventArgs.cs
- BitmapEffectGeneralTransform.cs
- ExpressionBuilderCollection.cs
- SecurityElement.cs
- ActiveXHost.cs
- SourceLineInfo.cs
- DesignerOptions.cs
- ProfileGroupSettingsCollection.cs
- InitializingNewItemEventArgs.cs
- DesignSurface.cs
- Missing.cs