public Frame(Frame frame, StackOperation operation, Label label)
 {
     this.operation = operation;
     this.label = label;
     if (frame != null)
     {
         frame.nextFrame(this);
     }
 }
 public void addOp(StackOperation operation)
 {
     lastFrame = new Frame(lastFrame, operation, lastLabel);
     if (operation is Return || operation is Throw)
     {
         lastFrame.terminal = true;
         lastFrame.blockEndsHere = true;
     }
     if (firstFrame == null)
     {
         firstFrame = lastFrame;
     }
     applyLastLabel();
 }
예제 #3
0
 public void addOp(StackOperation operation)
 {
     operations.Add(operation);
 }