Commit | Line | Data |
---|---|---|
0fc6e47b KB |
1 | /*- |
2 | * Copyright (c) 1980 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
5 | * %sccs.include.redist.c% | |
252367af DF |
6 | */ |
7 | ||
8 | #ifndef lint | |
0fc6e47b KB |
9 | static char sccsid[] = "@(#)lab.c 5.2 (Berkeley) %G%"; |
10 | #endif /* not lint */ | |
252367af | 11 | |
a2db5017 PK |
12 | /* |
13 | * pxp - Pascal execution profiler | |
14 | * | |
15 | * Bill Joy UCB | |
16 | * Version 1.2 January 1979 | |
17 | */ | |
18 | ||
19 | #include "0.h" | |
20 | ||
21 | /* | |
22 | * Label declaration part | |
23 | */ | |
24 | label(r, l) | |
25 | int *r, l; | |
26 | { | |
27 | register *ll; | |
28 | ||
29 | if (nodecl) | |
30 | printoff(); | |
31 | puthedr(); | |
32 | setline(l); | |
33 | ppnl(); | |
34 | indent(); | |
35 | ppkw("label"); | |
36 | ppgoin(DECL); | |
37 | ppnl(); | |
38 | indent(); | |
39 | ppbra(NIL); | |
40 | ll = r; | |
41 | if (ll != NIL) | |
42 | for (;;) { | |
43 | pplab(ll[1]); | |
44 | ll = ll[2]; | |
45 | if (ll == NIL) | |
46 | break; | |
47 | ppsep(", "); | |
48 | } | |
49 | else | |
50 | ppid("{label list}"); | |
51 | ppket(";"); | |
52 | putcml(); | |
53 | ppgoout(DECL); | |
54 | } | |
55 | ||
56 | /* | |
57 | * Goto statement | |
58 | */ | |
59 | gotoop(s) | |
60 | char *s; | |
61 | { | |
62 | ||
63 | gocnt++; | |
64 | ppkw("goto"); | |
65 | ppspac(); | |
66 | pplab(s); | |
67 | } | |
68 | ||
69 | /* | |
70 | * A label on a statement | |
71 | */ | |
72 | labeled(s) | |
73 | char *s; | |
74 | { | |
75 | ||
76 | linopr(); | |
77 | indentlab(); | |
78 | pplab(s); | |
79 | ppsep(":"); | |
80 | } |