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.UnsaveRegisters(state, state.B.Arity);
state.E = state.B.CE;
program.CP = state.B.CP;
trail.Unwind(state.B.TR);
trail.TR = state.B.TR;
heap.H = state.B.H;
state.B = state.B.B;
program.Next();
}
public void TrustMe() { AbstractMachineState state = SetupMachine(); TrustMeInstruction i = new TrustMeInstruction(); i.Process(null); AMProgram program = (AMProgram)state.Program; AMTrail trail = (AMTrail)state.Trail; Choicepoint b = new Choicepoint(); b.CE = new EnvironmentFrame(); Choicepoint old = new Choicepoint(); b.B = old; b.CP = new ProgramNode(); b.TR = 1; b.NextClause = new ProgramClause(); state.B = b; i.Execute(state); Assert.AreEqual("trust_me", i.Name()); Assert.AreEqual(0, i.NumberOfArguments()); Assert.AreSame(state.E, b.CE); Assert.AreSame(program.CP, b.CP); Assert.AreEqual(b.TR, trail.TR); Assert.AreSame(state.B, old); }