예제 #1
0
 public void Accept(DoWhileNode node)
 {
 }
예제 #2
0
 public void Accept(DoWhileNode node)
 {
     var doLabel = nextLabel();
     var endLabel = nextLabel();
     method.ContinueLabels.Push(doLabel);
     method.BreakLabels.Push(endLabel);
     method.EmitLabel(node.SourceLocation, doLabel);
     node.Body.Visit(this);
     node.Expression.Visit(this);
     method.Emit(node.SourceLocation, InstructionType.JumpIfTrue, doLabel);
     method.EmitLabel(node.SourceLocation, endLabel);
 }