Token.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Server / System / Data / Services / Parsing / Token.cs / 1 / 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 
    {
        /// 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 
    {
        /// 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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK