public Execute ( AbstractMachineState state ) : void | ||
state | AbstractMachineState | |
return | void |
public override void Execute(AbstractMachineState state)
{
AMProgram program = (AMProgram)state.Program;
AbstractTerm Vn = (AbstractTerm)state[_vn];
// Fix for Ticket #12, #4, had to dereference
AbstractTerm Ai = ((AbstractTerm)state[_ai]).Dereference();
if (!Vn.Unify(Ai))
{
state.Backtrack();
}
else
{
program.Next();
}
}
public void GetValue() { AbstractMachineState state = SetupMachine(); GetValueInstruction i = new GetValueInstruction(); object[] args = { "X1", "X0" }; i.Process(args); AbstractTerm X0 = (AbstractTerm)state["X0"]; AbstractTerm X1 = (AbstractTerm)state["X1"]; X0.Assign(new ConstantTerm("ali")); i.Execute(state); Assert.AreEqual("get_value", i.Name()); Assert.AreEqual(2, i.NumberOfArguments()); Assert.AreEqual(X1.Data(), "ali"); }