예제 #1
0
    public override void Execute(ref mdr.DValue result, ref mdr.CallFrame callFrame, Interpreter interpreter)
    {
      var temp = interpreter.Declare(this);
      if (temp.Node == null)
      {
        //This is the very first visit
        //We need to regenerate results
        temp.Node = this;

        interpreter.PushLocation(this);
        Value.Execute(ref result, ref callFrame, interpreter);
        temp.Value = result;
        interpreter.PopLocation(this, ref result);
      }
      else
        result = temp.Value;
    }