|
|
1.1 ! root 1: static char *sccsid = "@(#)lab.c 1.1 (Berkeley) 3/2/81"; ! 2: /* Copyright (c) 1979 Regents of the University of California */ ! 3: # ! 4: /* ! 5: * pxp - Pascal execution profiler ! 6: * ! 7: * Bill Joy UCB ! 8: * Version 1.2 January 1979 ! 9: */ ! 10: ! 11: #include "0.h" ! 12: ! 13: /* ! 14: * Label declaration part ! 15: */ ! 16: label(r, l) ! 17: int *r, l; ! 18: { ! 19: register *ll; ! 20: ! 21: if (nodecl) ! 22: printoff(); ! 23: puthedr(); ! 24: setline(l); ! 25: ppnl(); ! 26: indent(); ! 27: ppkw("label"); ! 28: ppgoin(DECL); ! 29: ppnl(); ! 30: indent(); ! 31: ppbra(NIL); ! 32: ll = r; ! 33: if (ll != NIL) ! 34: for (;;) { ! 35: pplab(ll[1]); ! 36: ll = ll[2]; ! 37: if (ll == NIL) ! 38: break; ! 39: ppsep(", "); ! 40: } ! 41: else ! 42: ppid("{label list}"); ! 43: ppket(";"); ! 44: putcml(); ! 45: ppgoout(DECL); ! 46: } ! 47: ! 48: /* ! 49: * Goto statement ! 50: */ ! 51: gotoop(s) ! 52: char *s; ! 53: { ! 54: ! 55: gocnt++; ! 56: ppkw("goto"); ! 57: ppspac(); ! 58: pplab(s); ! 59: } ! 60: ! 61: /* ! 62: * A label on a statement ! 63: */ ! 64: labeled(s) ! 65: char *s; ! 66: { ! 67: ! 68: linopr(); ! 69: indentlab(); ! 70: pplab(s); ! 71: ppsep(":"); ! 72: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.