Axiom.Runtime.Instructions.UnifyVoidInstruction.Execute C# (CSharp) Метод

Execute() публичный Метод

public Execute ( AbstractMachineState state ) : void
state AbstractMachineState
Результат void
        public override void Execute(AbstractMachineState state)
        {
            AMProgram program = (AMProgram)state.Program;
            AMHeap heap = (AMHeap)state.DataArea;

            if (state.IsReadMode)
            {
                for (int i = 0; i < _n; i++)
                {
                    state.S = state.S.Next;
                }
            }
            else
            {
                for (int j = 0; j < _n; j++)
                {
                    heap.Push(new AbstractTerm());
                }
            }

            program.Next();
        }

Usage Example

        public void UnifyVoid()
        {
            AbstractMachineState state = SetupMachine();
            AMHeap heap = (AMHeap)state.DataArea;

            UnifyVoidInstruction i = new UnifyVoidInstruction();

            state.IsWriteMode = true;

            object[] args = { "3" };

            i.Process(args);
            i.Execute(state);

            Assert.AreEqual("unify_void", i.Name());
            Assert.AreEqual(1, i.NumberOfArguments());
            Assert.IsTrue(((AbstractTerm)heap.Pop()).IsReference);
            Assert.IsTrue(((AbstractTerm)heap.Pop()).IsReference);
            Assert.IsTrue(((AbstractTerm)heap.Pop()).IsReference);
        }