LispEngine.Evaluation.LexicalEnvironment.findInFrame C# (CSharp) Метод

findInFrame() приватный Метод

private findInFrame ( int id ) : Binding
id int
Результат Binding
        private Binding findInFrame(int id)
        {
            var b = bindings;
            Binding binding;
            while( (binding = b.Peek()) != null)
            {
                if (binding.SymbolID == id)
                    return binding;
                b = b.Pop();
            }
            return null;
        }

Usage Example

        private static Binding findAndCache(LexicalEnvironment e, Symbol symbol)
        {
            if (e.statistics != null)
            {
                e.statistics.Lookups++;
            }
            var id = symbol.ID;

            while (e != null)
            {
                var b = e.findInFrame(id);
                if (b != null)
                {
                    symbol.Env = e;
                    return(symbol.CachedBinding = b);
                }
                e = e.parent;
            }
            throw undefined(symbol);
        }
All Usage Examples Of LispEngine.Evaluation.LexicalEnvironment::findInFrame