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
- ColumnReorderedEventArgs.cs
- InputMethodStateTypeInfo.cs
- TemplateControlParser.cs
- RegexMatchCollection.cs
- TreeNodeCollection.cs
- MemoryStream.cs
- ToolStripTextBox.cs
- AutoResizedEvent.cs
- FileDialogPermission.cs
- MexTcpBindingCollectionElement.cs
- MouseEventArgs.cs
- WebControl.cs
- ProcessRequestArgs.cs
- SiteMembershipCondition.cs
- AQNBuilder.cs
- XmlSchemaSimpleTypeUnion.cs
- PlacementWorkspace.cs
- GridEntry.cs
- RegisteredDisposeScript.cs
- Memoizer.cs
- HuffmanTree.cs
- ReadOnlyNameValueCollection.cs
- ButtonBase.cs
- SplitterEvent.cs
- EventLogPropertySelector.cs
- Tool.cs
- XmlValueConverter.cs
- DataContractAttribute.cs
- ProtocolsConfigurationHandler.cs
- InvalidDocumentContentsException.cs
- EmptyStringExpandableObjectConverter.cs
- WebControlsSection.cs
- RegistryDataKey.cs
- Camera.cs
- Perspective.cs
- CryptoApi.cs
- QilName.cs
- Vector3DKeyFrameCollection.cs
- PickBranchDesigner.xaml.cs
- DiscreteKeyFrames.cs
- Visual.cs
- RootBrowserWindowAutomationPeer.cs
- KernelTypeValidation.cs
- ToolStripLocationCancelEventArgs.cs
- List.cs
- ChangeDirector.cs
- WebScriptClientGenerator.cs
- EmptyTextWriter.cs
- _ScatterGatherBuffers.cs
- DoubleIndependentAnimationStorage.cs
- GenericWebPart.cs
- ToolStripItem.cs
- DiscoveryServiceExtension.cs
- TemplateManager.cs
- ValidationSummaryDesigner.cs
- oledbconnectionstring.cs
- ResourceProperty.cs
- SEHException.cs
- SafeNativeMemoryHandle.cs
- _ListenerRequestStream.cs
- SpellerInterop.cs
- StringUtil.cs
- SizeChangedInfo.cs
- CloudCollection.cs
- NativeMethods.cs
- ScriptingJsonSerializationSection.cs
- DataGridViewCell.cs
- BulletedListEventArgs.cs
- DataContext.cs
- ConditionalAttribute.cs
- XmlUtilWriter.cs
- _BaseOverlappedAsyncResult.cs
- IsolatedStorageFile.cs
- SplitterPanelDesigner.cs
- TreeNodeCollection.cs
- Cell.cs
- RelationshipSet.cs
- URLMembershipCondition.cs
- PKCS1MaskGenerationMethod.cs
- FlowDocument.cs
- ProcessModelSection.cs
- MethodBuilderInstantiation.cs
- SecurityHelper.cs
- SqlExpressionNullability.cs
- Oci.cs
- StringReader.cs
- ValidationUtility.cs
- UtilityExtension.cs
- AuthenticationService.cs
- AnimationLayer.cs
- IODescriptionAttribute.cs
- TextParaLineResult.cs
- UpdateManifestForBrowserApplication.cs
- WebPartConnectionsCancelVerb.cs
- COM2IDispatchConverter.cs
- OleDbTransaction.cs
- CodeTypeOfExpression.cs
- SoapIgnoreAttribute.cs
- IPEndPoint.cs
- FormatControl.cs