Axiom.Runtime.Instructions.CutInstruction.Execute C# (CSharp) Method

Execute() public method

public Execute ( AbstractMachineState state ) : void
state AbstractMachineState
return void
        public override void Execute(AbstractMachineState state)
        {
            AMProgram program = (AMProgram)state.Program;
            AMHeap heap = (AMHeap)state.DataArea;
            AMTrail trail = (AMTrail)state.Trail;

            state.B = state.E.B0;

            // tidy trail here?

            program.Next();
        }

Usage Example

        public void Cut()
        {
            AbstractMachineState state = SetupMachine();

            Choicepoint old = new Choicepoint();

            state.E = new EnvironmentFrame(null, null, old, 0);

            CutInstruction i = new CutInstruction();

            i.Process(null);

            i.Execute(state);

            Assert.AreEqual("cut", i.Name());
            Assert.AreEqual(0, i.NumberOfArguments());
            Assert.AreSame(state.B, old);
        }