Ejemplo n.º 1
0
        private QilNode CompileSingleKey(List <Key> defList, QilNode key, IFocus env)
        {
            Debug.Assert(defList != null && defList.Count > 0);
            if (defList.Count == 1)
            {
                return(_f.Invoke(defList[0].Function, _f.ActualParameterList(env.GetCurrent(), key)));
            }

            QilIterator i      = _f.Let(key);
            QilNode     result = _f.Sequence();

            foreach (Key keyDef in defList)
            {
                result.Add(_f.Invoke(keyDef.Function, _f.ActualParameterList(env.GetCurrent(), i)));
            }
            return(_f.Loop(i, result));
        }