Exemplo n.º 1
0
 /** opens a scope in the current scope */
 public Scope openScope(String scopeName, bool isTypeScope)
 {
     if (m_currentScope.containsChildScope(scopeName))
     {
         m_currentScope = m_currentScope.getChildScope(scopeName);
     }
     else
     {
         Scope newScope = new Scope(scopeName, m_currentScope, isTypeScope);
         m_currentScope = newScope;
     }
     return(m_currentScope);
 }
Exemplo n.º 2
0
        private Scope getChildScopeInPragmaScope(String scopeName)
        {
            Scope       result     = null;
            IEnumerator enumerator = getChildScopeEnumeration();

            while ((enumerator.MoveNext()) && (result == null))
            {
                Scope thisScope = (Scope)enumerator.Current;
                if (thisScope is PragmaScope)
                {
                    result = thisScope.getChildScope(scopeName);
                }
            }
            return(result);
        }
Exemplo n.º 3
0
        /// <summary>search starting from serachScope for a scope with name scopeNameParts
        private Scope ResolveScopedNameToScopeFromScope(Scope searchScope, IList parts)
        {
            if ((parts == null) || (parts.Count == 0))
            {
                return(null);
            }
            Scope currentScope = searchScope;

            for (int i = 0; i < parts.Count; i++)
            {
                // resolve scopes
                currentScope = currentScope.getChildScope((String)parts[i]);
                if (currentScope == null)
                {
                    return(null); // not found within this searchScope
                }
            }
            return(currentScope);
        }
Exemplo n.º 4
0
        /// <summary>
        /// resolve a scoped name to a symbol starting in searchScope
        /// </summary>
        private Symbol ResolveScopedNameToSymbolFromScope(Scope searchScope, IList parts)
        {
            if ((parts == null) || (parts.Count == 0))
            {
                return(null);
            }
            Scope currentScope = searchScope;

            for (int i = 0; i < parts.Count - 1; i++)
            {
                // resolve scopes
                currentScope = currentScope.getChildScope((String)parts[i]);
                if (currentScope == null)
                {
                    return(null); // not found within this searchScope
                }
            }
            // resolve symbol
            Symbol sym = currentScope.getSymbol((String)parts[parts.Count - 1]);

            return(sym);
        }