BSD 3 development
[unix-history] / usr / src / cmd / pxp / var.c
CommitLineData
8f06731d
BJ
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#include "tree.h"
12
13STATIC int varcnt -1;
14/*
15 * Var declaration part
16 */
17varbeg(l, vline)
18 int l, vline;
19{
20
21 line = l;
22 if (nodecl)
23 printoff();
24 puthedr();
25 putcm();
26 ppnl();
27 indent();
28 ppkw("var");
29 ppgoin(DECL);
30 varcnt = 0;
31 setline(vline);
32}
33
34var(vline, vidl, vtype)
35 int vline;
36 register int *vidl;
37 int *vtype;
38{
39
40 if (varcnt)
41 putcm();
42 setline(vline);
43 ppitem();
44 if (vidl != NIL)
45 for (;;) {
46 ppid(vidl[1]);
47 vidl = vidl[2];
48 if (vidl == NIL)
49 break;
50 ppsep(", ");
51 }
52 else
53 ppid("{identifier list}");
54 ppsep(":");
55 gtype(vtype);
56 ppsep(";");
57 setinfo(vline);
58 putcml();
59 varcnt++;
60}
61
62varend()
63{
64
65 if (varcnt == -1)
66 return;
67 if (varcnt == 0)
68 ppid("{variable decls}");
69 ppgoout(DECL);
70 varcnt = -1;
71}