new copyright; att/bsd/shared
[unix-history] / usr / src / usr.bin / pascal / pxp / lab.c
CommitLineData
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
9static 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 */
24label(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 */
59gotoop(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 */
72labeled(s)
73 char *s;
74{
75
76 linopr();
77 indentlab();
78 pplab(s);
79 ppsep(":");
80}