LoopContext loopContext = new LoopContext(nextLabel, exitLabel);
factory.translateStatements(loopContext, body);
// increment the counter
factory.addLabel(nextLabel);
factory.addStatement(new Assignment(counter, new Increment(counter)));
factory.addStatement(new GotoStatement(counterLabel));
factory.addLabel(exitLabel);
}