public override void Execute(AbstractMachineState state)
{
AMProgram prog = (AMProgram)state.Program;
AbstractTerm X0 = ((AbstractTerm)state["X0"]).Dereference();
AbstractTerm X1 = ((AbstractTerm)state["X1"]).Dereference();
if (!X0.IsConstant)
{
Console.WriteLine("Invalid class type of object/2");
state.Backtrack();
}
if (X1.IsConstant)
{
Console.WriteLine("object/2: object instantiation error.");
state.Backtrack();
}
if (CreateObject(X0.Data() as string, X1, state))
{
prog.Next();
}
else
{
state.Backtrack();
}
}