示例#1
0
        public Value Bottom()
        {
            if (expandedFunction == null)
            {
                expandedFunction = makeNewFunction();
                if (expandedFunction == null)
                {
                    return(Value.Finished);
                }
                inputsSet = false;
            }

            EnsureInputsSet();

            Value v = expandedFunction.Bottom();

            if (v.Done)
            {
                expandedFunction = makeNewFunction();
                if (expandedFunction == null)
                {
                    return(Value.Finished);
                }
                inputsSet = false;
                EnsureInputsSet();
                v = expandedFunction.Bottom();
            }
            return(v);
        }
示例#2
0
        public Value Top()
        {
            if (expandedFunction == null)
            {
                expandedFunction = makeNewFunction();
                if (expandedFunction == null)
                {
                    return(Value.Finished);
                }
                inputsSet = false;
            }

            EnsureInputsSet();

            Value v = expandedFunction.Top();

            if (v.Done)
            {
                topArgumentBuffer.Clear();
                expandedFunction = makeNewFunction();
                if (expandedFunction == null)
                {
                    return(Value.Finished);
                }
                inputsSet = false;
                EnsureInputsSet();
                v = expandedFunction.Top();
            }
            return(v);
        }