xref: /csrg-svn/usr.bin/pascal/pxp/var.c (revision 62193)
148112Sbostic /*-
2*62193Sbostic  * Copyright (c) 1980, 1993
3*62193Sbostic  *	The Regents of the University of California.  All rights reserved.
448112Sbostic  *
548112Sbostic  * %sccs.include.redist.c%
622241Sdist  */
722241Sdist 
822241Sdist #ifndef lint
9*62193Sbostic static char sccsid[] = "@(#)var.c	8.1 (Berkeley) 06/06/93";
1048112Sbostic #endif /* not lint */
1122241Sdist 
1222241Sdist /*
132867Speter  * pxp - Pascal execution profiler
142867Speter  *
152867Speter  * Bill Joy UCB
162867Speter  * Version 1.2 January 1979
172867Speter  */
182867Speter 
192867Speter #include "0.h"
202867Speter #include "tree.h"
212867Speter 
223054Smckusic STATIC	int varcnt = -1;
232867Speter /*
242867Speter  * Var declaration part
252867Speter  */
varbeg(l,vline)262867Speter varbeg(l, vline)
272867Speter 	int l, vline;
282867Speter {
292867Speter 
302867Speter 	line = l;
312867Speter 	if (nodecl)
322867Speter 		printoff();
332867Speter 	puthedr();
342867Speter 	putcm();
352867Speter 	ppnl();
362867Speter 	indent();
372867Speter 	ppkw("var");
382867Speter 	ppgoin(DECL);
392867Speter 	varcnt = 0;
402867Speter 	setline(vline);
412867Speter }
422867Speter 
var(vline,vidl,vtype)432867Speter var(vline, vidl, vtype)
442867Speter 	int vline;
452867Speter 	register int *vidl;
462867Speter 	int *vtype;
472867Speter {
482867Speter 
492867Speter 	if (varcnt)
502867Speter 		putcm();
512867Speter 	setline(vline);
522867Speter 	ppitem();
532867Speter 	if (vidl != NIL)
542867Speter 		for (;;) {
552867Speter 			ppid(vidl[1]);
562867Speter 			vidl = vidl[2];
572867Speter 			if (vidl == NIL)
582867Speter 				break;
592867Speter 			ppsep(", ");
602867Speter 		}
612867Speter 	else
622867Speter 		ppid("{identifier list}");
632867Speter 	ppsep(":");
642867Speter 	gtype(vtype);
652867Speter 	ppsep(";");
662867Speter 	setinfo(vline);
672867Speter 	putcml();
682867Speter 	varcnt++;
692867Speter }
702867Speter 
varend()712867Speter varend()
722867Speter {
732867Speter 
742867Speter 	if (varcnt == -1)
752867Speter 		return;
762867Speter 	if (varcnt == 0)
772867Speter 		ppid("{variable decls}");
782867Speter 	ppgoout(DECL);
792867Speter 	varcnt = -1;
802867Speter }
81