// A loop may be either a for, while, or do.
Node * LoopPeelingChanger::peel_loop (loopNode *p) {
// call the appropriate peeling functions depending on the type of
// this node
switch (p->typ()) {
case While:
return peel_while_loop ((whileNode *) p);
case Do:
return peel_do_loop ((doNode *) p);
case For:
return peel_for_loop ((forNode *) p);
default:
fprintf (stderr, "unknown loop type!\n");
exit (0);
}
}