public override void Execute(AbstractMachineState state)
{
AMProgram program = (AMProgram)state.Program;
AMHeap heap = (AMHeap)state.DataArea;
AbstractTerm Yn = state.E[_yn].Dereference();
AbstractTerm Ai = (AbstractTerm)state[_ai];
if (!IsEnvironmentVariable(Yn, state))
{
Ai.Assign(Yn);
}
else
{
heap.Push(new AbstractTerm());
Yn.Bind((AbstractTerm)heap.Top());
Ai.Assign(Yn);
}
program.Next();
}