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