xref: /csrg-svn/usr.bin/pascal/pxp/call.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%
622223Sdist  */
722223Sdist 
822223Sdist #ifndef lint
9*62189Sbostic static char sccsid[] = "@(#)call.c	8.1 (Berkeley) 06/06/93";
1048112Sbostic #endif /* not lint */
1122223Sdist 
122849Speter #
132849Speter /*
142849Speter  * pxp - Pascal execution profiler
152849Speter  *
162849Speter  * Bill Joy UCB
172849Speter  * Version 1.2 January 1979
182849Speter  */
192849Speter 
202849Speter #include "0.h"
212849Speter #include "tree.h"
222849Speter 
232849Speter /*
242849Speter  * Procedure or function call
252849Speter  */
call(p,argv)262849Speter call(p, argv)
272849Speter 	register int *argv;
282849Speter {
292849Speter 	register *al;
302849Speter 
312849Speter 	ppid(p);
322849Speter 	if (argv != NIL) {
332849Speter 		ppbra("(("+1);	/* xaproposstrange
342849Speter  */
352849Speter 		for (;;) {
362849Speter 			al = argv[1];
372849Speter 			if (al[0] == T_WEXP) {
382849Speter 				rvalue(al[1], NIL);
392849Speter 				if (al[2] != NIL) {
402849Speter 					ppsep(": ");
412849Speter 					rvalue(al[2], NIL);
422849Speter 				}
432849Speter 				if (al[3] == OCT || al[3] == HEX) {
442849Speter 					ppspac();
452849Speter 					ppkw(al[3] == OCT ? "oct" : "hex");
462849Speter 				} else if (al[3] != NIL) {
472849Speter 					ppsep(": ");
482849Speter 					rvalue(al[3], NIL);
492849Speter 				}
502849Speter 			} else
512849Speter 				rvalue(argv[1], NIL);
522849Speter 			argv = argv[2];
532849Speter 			if (argv == NIL)
542849Speter 				break;
552849Speter 			ppsep(", ");
562849Speter 		}
572849Speter 		ppket(")");
582849Speter 	}
592849Speter }
60