Example #1
0
        /// <summary>
        /// Gets a symbol based on its name, returns null if the symbol is not defined
        /// </summary>
        /// <returns>A symbol.</returns>
        /// <param name="name">The symbol name.</param>
        public Symbol GetSymbol(string name)
        {
            Scope curr = CurrentScope;

            while (curr != null)
            {
                Symbol sym;
                if (curr.GetSymbol(name, out sym))
                {
                    return(sym);
                }
                curr = curr.ParentScope;
            }
            return(null);
        }
Example #2
0
        /// <summary>
        /// Determines whether this scope has a definition for a specified symbol name.
        /// </summary>
        /// <returns><c>true</c> if this instance name is defined; otherwise, <c>false</c>.</returns>
        /// <param name="name">Name.</param>
        public bool IsSymbolDefined(string name)
        {
            Scope curr = CurrentScope;

            while (curr != null)
            {
                Symbol sym;
                if (curr.GetSymbol(name, out sym))
                {
                    return(true);
                }
                curr = curr.ParentScope;
            }
            return(false);
        }