AstNode.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / EntitySql / AST / AstNode.cs / 1305376 / AstNode.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner  [....]
// @backupOwner [....] 
//--------------------------------------------------------------------- 

namespace System.Data.Common.EntitySql.AST 
{
    using System;
    using System.Globalization;
    using System.Collections; 
    using System.Collections.Generic;
 
    ///  
    /// Represents base class for nodes in the eSQL abstract syntax tree OM.
    ///  
    internal abstract class Node
    {
        private ErrorContext _errCtx = new ErrorContext();
 
        internal Node() { }
 
        internal Node(string commandText, int inputPosition) 
        {
            _errCtx.CommandText = commandText; 
            _errCtx.InputPosition = inputPosition;
        }

        ///  
        /// Ast Node error context.
        ///  
        internal ErrorContext ErrCtx 
        {
            get { return _errCtx; } 
            set { _errCtx = value; }
        }
    }
 
    /// 
    /// An ast node represents a generic list of ast nodes. 
    ///  
    internal sealed class NodeList : Node, System.Collections.Generic.IEnumerable
        where T : Node 
    {
        private readonly List _list = new List();

        ///  
        /// Default constructor.
        ///  
        internal NodeList() 
        {
        } 

        /// 
        /// Initializes adding one item to the list.
        ///  
        /// expression
        internal NodeList(T item) 
        { 
            _list.Add(item);
        } 

        /// 
        /// Add an item to the list, return the updated list.
        ///  
        internal NodeList Add(T item)
        { 
            _list.Add(item); 
            return this;
        } 

        /// 
        /// Returns the number of elements in the list.
        ///  
        internal int Count
        { 
            get { return _list.Count; } 
        }
 
        /// 
        /// Indexer to the list entries.
        /// 
        /// integer position of the element in the list 
        internal T this[int index]
        { 
            get { return _list[index]; } 
        }
 
        #region GetEnumerator
        System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator()
        {
            return _list.GetEnumerator(); 
        }
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() 
        {
            return _list.GetEnumerator(); 
        }
        #endregion
    }
} 

// 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