1 /*- 2 * Copyright (c) 1980, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 */ 7 8 #ifndef lint 9 static char sccsid[] = "@(#)call.c 8.1 (Berkeley) 06/06/93"; 10 #endif /* not lint */ 11 12 # 13 /* 14 * pxp - Pascal execution profiler 15 * 16 * Bill Joy UCB 17 * Version 1.2 January 1979 18 */ 19 20 #include "0.h" 21 #include "tree.h" 22 23 /* 24 * Procedure or function call 25 */ 26 call(p, argv) 27 register int *argv; 28 { 29 register *al; 30 31 ppid(p); 32 if (argv != NIL) { 33 ppbra("(("+1); /* xaproposstrange 34 */ 35 for (;;) { 36 al = argv[1]; 37 if (al[0] == T_WEXP) { 38 rvalue(al[1], NIL); 39 if (al[2] != NIL) { 40 ppsep(": "); 41 rvalue(al[2], NIL); 42 } 43 if (al[3] == OCT || al[3] == HEX) { 44 ppspac(); 45 ppkw(al[3] == OCT ? "oct" : "hex"); 46 } else if (al[3] != NIL) { 47 ppsep(": "); 48 rvalue(al[3], NIL); 49 } 50 } else 51 rvalue(argv[1], NIL); 52 argv = argv[2]; 53 if (argv == NIL) 54 break; 55 ppsep(", "); 56 } 57 ppket(")"); 58 } 59 } 60