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
- LogLogRecordEnumerator.cs
- ModifierKeysValueSerializer.cs
- Connector.cs
- EventLog.cs
- BoundColumn.cs
- DotExpr.cs
- Atom10FormatterFactory.cs
- TargetInvocationException.cs
- TextStore.cs
- ProxyHwnd.cs
- SystemTcpStatistics.cs
- cookiecontainer.cs
- EntityClientCacheKey.cs
- RangeValidator.cs
- AutoCompleteStringCollection.cs
- ResourceProviderFactory.cs
- PerfCounterSection.cs
- SystemIdentity.cs
- ServiceHttpModule.cs
- ProfileModule.cs
- Model3D.cs
- While.cs
- MonikerBuilder.cs
- UdpSocketReceiveManager.cs
- InheritanceAttribute.cs
- CompiledQuery.cs
- RewritingProcessor.cs
- VirtualizingStackPanel.cs
- XmlSchemaSimpleTypeRestriction.cs
- JavaScriptString.cs
- WpfKnownTypeInvoker.cs
- ExceptionHandlersDesigner.cs
- Accessible.cs
- DrawListViewColumnHeaderEventArgs.cs
- MenuCommandService.cs
- HttpConfigurationContext.cs
- Color.cs
- TextServicesProperty.cs
- BindingNavigatorDesigner.cs
- StylusPointProperties.cs
- RsaSecurityTokenAuthenticator.cs
- DashStyles.cs
- XmlSiteMapProvider.cs
- TranslateTransform3D.cs
- XDRSchema.cs
- UmAlQuraCalendar.cs
- XMLDiffLoader.cs
- XmlMemberMapping.cs
- SHA256.cs
- ClientSettingsProvider.cs
- CodeSnippetExpression.cs
- Renderer.cs
- ListBoxItem.cs
- GrammarBuilder.cs
- CodeDOMUtility.cs
- SQLString.cs
- HttpValueCollection.cs
- ImageField.cs
- MarkupCompilePass2.cs
- Emitter.cs
- OdbcConnectionHandle.cs
- TagMapInfo.cs
- MatrixIndependentAnimationStorage.cs
- CompositionDesigner.cs
- MDIWindowDialog.cs
- MenuAutomationPeer.cs
- HtmlInputReset.cs
- SettingsPropertyValue.cs
- ContractNamespaceAttribute.cs
- RectangleHotSpot.cs
- XmlSortKey.cs
- SerTrace.cs
- HttpListener.cs
- BitmapEffect.cs
- AppSettingsExpressionBuilder.cs
- codemethodreferenceexpression.cs
- ListSortDescription.cs
- CultureSpecificCharacterBufferRange.cs
- PictureBox.cs
- SerializationFieldInfo.cs
- RadioButtonRenderer.cs
- __ComObject.cs
- PerformanceCounterLib.cs
- FindCriteria.cs
- DataGridDetailsPresenter.cs
- ProgressBar.cs
- GenericAuthenticationEventArgs.cs
- OleDbConnectionInternal.cs
- BuildManagerHost.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- SafeFileMapViewHandle.cs
- QueryGenerator.cs
- MSAAEventDispatcher.cs
- FontEditor.cs
- AddingNewEventArgs.cs
- XmlIlVisitor.cs
- NamespaceExpr.cs
- FlowDocumentReaderAutomationPeer.cs
- MenuCommands.cs
- TextTreeText.cs