xref: /csrg-svn/usr.bin/pascal/pxp/var.c (revision 22241)
12867Speter /*
2*22241Sdist  * Copyright (c) 1980 Regents of the University of California.
3*22241Sdist  * All rights reserved.  The Berkeley software License Agreement
4*22241Sdist  * specifies the terms and conditions for redistribution.
5*22241Sdist  */
6*22241Sdist 
7*22241Sdist #ifndef lint
8*22241Sdist static char sccsid[] = "@(#)var.c	5.1 (Berkeley) 06/05/85";
9*22241Sdist #endif not lint
10*22241Sdist 
11*22241Sdist /*
122867Speter  * pxp - Pascal execution profiler
132867Speter  *
142867Speter  * Bill Joy UCB
152867Speter  * Version 1.2 January 1979
162867Speter  */
172867Speter 
182867Speter #include "0.h"
192867Speter #include "tree.h"
202867Speter 
213054Smckusic STATIC	int varcnt = -1;
222867Speter /*
232867Speter  * Var declaration part
242867Speter  */
252867Speter varbeg(l, vline)
262867Speter 	int l, vline;
272867Speter {
282867Speter 
292867Speter 	line = l;
302867Speter 	if (nodecl)
312867Speter 		printoff();
322867Speter 	puthedr();
332867Speter 	putcm();
342867Speter 	ppnl();
352867Speter 	indent();
362867Speter 	ppkw("var");
372867Speter 	ppgoin(DECL);
382867Speter 	varcnt = 0;
392867Speter 	setline(vline);
402867Speter }
412867Speter 
422867Speter var(vline, vidl, vtype)
432867Speter 	int vline;
442867Speter 	register int *vidl;
452867Speter 	int *vtype;
462867Speter {
472867Speter 
482867Speter 	if (varcnt)
492867Speter 		putcm();
502867Speter 	setline(vline);
512867Speter 	ppitem();
522867Speter 	if (vidl != NIL)
532867Speter 		for (;;) {
542867Speter 			ppid(vidl[1]);
552867Speter 			vidl = vidl[2];
562867Speter 			if (vidl == NIL)
572867Speter 				break;
582867Speter 			ppsep(", ");
592867Speter 		}
602867Speter 	else
612867Speter 		ppid("{identifier list}");
622867Speter 	ppsep(":");
632867Speter 	gtype(vtype);
642867Speter 	ppsep(";");
652867Speter 	setinfo(vline);
662867Speter 	putcml();
672867Speter 	varcnt++;
682867Speter }
692867Speter 
702867Speter varend()
712867Speter {
722867Speter 
732867Speter 	if (varcnt == -1)
742867Speter 		return;
752867Speter 	if (varcnt == 0)
762867Speter 		ppid("{variable decls}");
772867Speter 	ppgoout(DECL);
782867Speter 	varcnt = -1;
792867Speter }
80