|
|
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.