예제 #1
0
        protected ISExpression Continuation(Stack <IFrame> s, ISchemeVM vm)
        {
            var v = AtomHelper.SymbolFromString("v");

            return(Closure(new NuateInstruction(s, v), AtomHelper.CreateEnvironment(),
                           AtomHelper.CreateList(v)));
        }
        public override IInstruction Execute(ISchemeVM vm)
        {
            var e = AtomHelper.CreateEnvironment();

            if (Populate)
            {
                AtomHelper.PopulateEnvironment(e, vm);
            }

            SetA(vm, e);
            return(Next);
        }
예제 #3
0
        public void Reset(bool env = true)
        {
            A = AtomHelper.Nil;
            R = new Stack <ISExpression>();
            S = new Stack <IFrame>();

            if (env)
            {
                E = AtomHelper.CreateEnvironment();
                AtomHelper.PopulateEnvironment(E, this);
            }
        }