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