// 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); } }