BSD 4_3_Tahoe release
[unix-history] / usr / src / new / apl / apl.vax / src / aw.c
static char Sccsid[] = "aw.c @(#)aw.c 1.1 10/1/82 Berkeley ";
#include "apl.h"
char *opname[] = {
"eol", /* 0 */
"add", /* 1 */
"plus", /* 2 */
"sub", /* 3 */
"minus", /* 4 */
"mul", /* 5 */
"sgn", /* 6 */
"div", /* 7 */
"recip", /* 8 */
"mod", /* 9 */
"abs", /* 10 */
"min", /* 11 */
"floor", /* 12 */
"max", /* 13 */
"ceil", /* 14 */
"pwr", /* 15 */
"exp", /* 16 */
"log", /* 17 */
"loge", /* 18 */
"cir", /* 19 */
"pi", /* 20 */
"comb", /* 21 */
"fac", /* 22 */
"deal", /* 23 */
"rand", /* 24 */
"drho", /* 25 */
"mrho", /* 26 */
"diot", /* 27 */
"miot", /* 28 */
"rot0", /* 29 */
"rev0", /* 30 */
"dtrn", /* 31 */
"mtrn", /* 32 */
"dibm", /* 33 */
"mibm", /* 34 */
"gdu", /* 35 */
"gduk", /* 36 */
"gdd", /* 37 */
"gddk", /* 38 */
"exd", /* 39 */
"scan", /* 40 */
"exdk", /* 41 */
"scank", /* 42 */
"iprod", /* 43 */
"oprod", /* 44 */
"quad", /* 45 */
"qquad", /* 46 */
"br0", /* 47 */
"br", /* 48 */
"ddom", /* 49 */
"mdom", /* 50 */
"com", /* 51 */
"red", /* 52 */
"comk", /* 53 */
"redk", /* 54 */
"rot", /* 55 */
"rev", /* 56 */
"rotk", /* 57 */
"revk", /* 58 */
"cat", /* 59 */
"rav", /* 60 */
"catk", /* 61 */
"ravk", /* 62 */
"print", /* 63 */
"quot", /* 64 */
"elid", /* 65 */
"cquad", /* 66 */
"comnt", /* 67 */
"index", /* 68 */
"hprint", /* 69 */
0, /* 70 */
"lt", /* 71 */
"le", /* 72 */
"gt", /* 73 */
"ge", /* 74 */
"eq", /* 75 */
"ne", /* 76 */
"and", /* 77 */
"or", /* 78 */
"nand", /* 79 */
"nor", /* 80 */
"not", /* 81 */
"eps", /* 82 */
"meps", /* 83 */
"rep", /* 84 */
"take", /* 85 */
"drop", /* 86 */
"exd0", /* 87 */
"asgn", /* 88 */
"immed", /* 89 */
"name", /* 90 */
"const", /* 91 */
"fun", /* 92 */
"arg1", /* 93 */
"arg2", /* 94 */
"auto", /* 95 */
"rest", /* 96 */
"com0", /* 97 */
"red0", /* 98 */
"exd0", /* 99 */
"scan0", /*100 */
"base", /*101 */
"format", /*102 */ /* format */
"label", /*103 */
"psi", /*104 */
"psi1", /*105 */
"psi2", /*106 */
"isp", /*107 */
"isp1", /*108 */
"isp2", /*109 */
"Lwidth", /*110 */
"Lfuzz", /*111 */
"Lrun", /*112 */
"Lfork", /*113 */
"Lwait", /*114 */
"Lexec", /*115 */
"Lfx", /*116 */
"Lexit", /*117 */
"Lpipe", /*118 */
"Lchdir", /*119 */
"Lopen", /*120 */
"Lclose", /*121 */
"Lread", /*122 */
"Lwrite", /*123 */
"Lcreat", /*124 */
"Lseek", /*125 */
"Lrm", /*126 */
"Lrd", /*127 */
"Ldup", /*128 */
"Lap", /*129 */
"Lkill", /*130 */
"Lcr", /*131 */
"dfmt", /*132 */
"mfmt", /*133 */
"Lnc", /*134 */
"nilret", /*135 */
"Llx", /*136 */
"ibr", /*137 */
"ibr0", /*138 */
"rval", /*139 */
"Lsig", /*140 */
"Lfloat", /*141 */
"Lnl", /*142 */
};
dump(cp, flag)
char *cp;
{
register char *s, *t;
register i;
s = cp;
if(flag)
printf("[ ");
loop:
putchar(' ');
if(column > 50)
if(flag)
printf(" ]\n[ ");
else
putchar('\n');
i = *s++;
if(i != EOF)
i &= 0377;
if(i >= 0 && i <= 140 && opname[i]) {
t = opname[i];
while(*t)
putchar(*t++);
} else if(i != EOF)
printf("%d ", i);
switch(i) {
case EOL:
if(*s != EOL)
break;
case EOF:
printf(".");
if(flag)
printf(" ].");
putchar('\n');
return;
case QUOT:
i = *s++;
s += i;
break;
case CONST:
i = *s++;
s += i*SDAT;
break;
case NAME:
case FUN:
case ARG1:
case ARG2:
case AUTO:
case REST:
case RVAL:
s += copy(IN, s, &cp, 1);
putchar('-');
t = ((struct nlist *)cp)->namep;
while(*t)
putchar(*t++);
break;
case INDEX:
case IMMED:
s++;
break;
}
goto loop;
}