xref: /csrg-svn/usr.bin/pascal/pxp/lab.c (revision 22230)
12856Speter /*
2*22230Sdist  * Copyright (c) 1980 Regents of the University of California.
3*22230Sdist  * All rights reserved.  The Berkeley software License Agreement
4*22230Sdist  * specifies the terms and conditions for redistribution.
5*22230Sdist  */
6*22230Sdist 
7*22230Sdist #ifndef lint
8*22230Sdist static char sccsid[] = "@(#)lab.c	5.1 (Berkeley) 06/05/85";
9*22230Sdist #endif not lint
10*22230Sdist 
11*22230Sdist /*
122856Speter  * pxp - Pascal execution profiler
132856Speter  *
142856Speter  * Bill Joy UCB
152856Speter  * Version 1.2 January 1979
162856Speter  */
172856Speter 
182856Speter #include "0.h"
192856Speter 
202856Speter /*
212856Speter  * Label declaration part
222856Speter  */
232856Speter label(r, l)
242856Speter 	int *r, l;
252856Speter {
262856Speter 	register *ll;
272856Speter 
282856Speter 	if (nodecl)
292856Speter 		printoff();
302856Speter 	puthedr();
312856Speter 	setline(l);
322856Speter 	ppnl();
332856Speter 	indent();
342856Speter 	ppkw("label");
352856Speter 	ppgoin(DECL);
362856Speter 	ppnl();
372856Speter 	indent();
382856Speter 	ppbra(NIL);
392856Speter 	ll = r;
402856Speter 	if (ll != NIL)
412856Speter 		for (;;) {
422856Speter 			pplab(ll[1]);
432856Speter 			ll = ll[2];
442856Speter 			if (ll == NIL)
452856Speter 				break;
462856Speter 			ppsep(", ");
472856Speter 		}
482856Speter 	else
492856Speter 		ppid("{label list}");
502856Speter 	ppket(";");
512856Speter 	putcml();
522856Speter 	ppgoout(DECL);
532856Speter }
542856Speter 
552856Speter /*
562856Speter  * Goto statement
572856Speter  */
582856Speter gotoop(s)
592856Speter 	char *s;
602856Speter {
612856Speter 
622856Speter 	gocnt++;
632856Speter 	ppkw("goto");
642856Speter 	ppspac();
652856Speter 	pplab(s);
662856Speter }
672856Speter 
682856Speter /*
692856Speter  * A label on a statement
702856Speter  */
712856Speter labeled(s)
722856Speter 	char *s;
732856Speter {
742856Speter 
752856Speter 	linopr();
762856Speter 	indentlab();
772856Speter 	pplab(s);
782856Speter 	ppsep(":");
792856Speter }
80