|
|
1.1 ! root 1: #include "apl.h" ! 2: ! 3: #ifdef FULLD ! 4: ! 5: char *opname[] ! 6: { ! 7: "eol", /* 0 */ ! 8: "add", /* 1 */ ! 9: "plus", /* 2 */ ! 10: "sub", /* 3 */ ! 11: "minus", /* 4 */ ! 12: "mul", /* 5 */ ! 13: "sgn", /* 6 */ ! 14: "div", /* 7 */ ! 15: "recip", /* 8 */ ! 16: "mod", /* 9 */ ! 17: "abs", /* 10 */ ! 18: "min", /* 11 */ ! 19: "floor", /* 12 */ ! 20: "max", /* 13 */ ! 21: "ceil", /* 14 */ ! 22: "pwr", /* 15 */ ! 23: "exp", /* 16 */ ! 24: "log", /* 17 */ ! 25: "loge", /* 18 */ ! 26: "cir", /* 19 */ ! 27: "pi", /* 20 */ ! 28: "comb", /* 21 */ ! 29: "fac", /* 22 */ ! 30: "deal", /* 23 */ ! 31: "rand", /* 24 */ ! 32: "drho", /* 25 */ ! 33: "mrho", /* 26 */ ! 34: "diot", /* 27 */ ! 35: "miot", /* 28 */ ! 36: "rot0", /* 29 */ ! 37: "rev0", /* 30 */ ! 38: "dtrn", /* 31 */ ! 39: "mtrn", /* 32 */ ! 40: "dibm", /* 33 */ ! 41: "mibm", /* 34 */ ! 42: "gdu", /* 35 */ ! 43: "gduk", /* 36 */ ! 44: "gdd", /* 37 */ ! 45: "gddk", /* 38 */ ! 46: "exd", /* 39 */ ! 47: "scan", /* 40 */ ! 48: "exdk", /* 41 */ ! 49: "scank", /* 42 */ ! 50: "iprod", /* 43 */ ! 51: "oprod", /* 44 */ ! 52: "quad", /* 45 */ ! 53: "qquad", /* 46 */ ! 54: "br0", /* 47 */ ! 55: "br", /* 48 */ ! 56: "ddom", /* 49 */ ! 57: "mdom", /* 50 */ ! 58: "com", /* 51 */ ! 59: "red", /* 52 */ ! 60: "comk", /* 53 */ ! 61: "redk", /* 54 */ ! 62: "rot", /* 55 */ ! 63: "rev", /* 56 */ ! 64: "rotk", /* 57 */ ! 65: "revk", /* 58 */ ! 66: "cat", /* 59 */ ! 67: "rav", /* 60 */ ! 68: "catk", /* 61 */ ! 69: "ravk", /* 62 */ ! 70: "print", /* 63 */ ! 71: "quot", /* 64 */ ! 72: "elid", /* 65 */ ! 73: "cquad", /* 66 */ ! 74: "comnt", /* 67 */ ! 75: "index", /* 68 */ ! 76: "hprint", /* 69 */ ! 77: 0, /* 70 */ ! 78: "lt", /* 71 */ ! 79: "le", /* 72 */ ! 80: "gt", /* 73 */ ! 81: "ge", /* 74 */ ! 82: "eq", /* 75 */ ! 83: "ne", /* 76 */ ! 84: "and", /* 77 */ ! 85: "or", /* 78 */ ! 86: "nand", /* 79 */ ! 87: "nor", /* 80 */ ! 88: "not", /* 81 */ ! 89: "eps", /* 82 */ ! 90: "meps", /* 83 */ ! 91: "rep", /* 84 */ ! 92: "take", /* 85 */ ! 93: "drop", /* 86 */ ! 94: "exd0", /* 87 */ ! 95: "asgn", /* 88 */ ! 96: "immed", /* 89 */ ! 97: "name", /* 90 */ ! 98: "const", /* 91 */ ! 99: "fun", /* 92 */ ! 100: "arg1", /* 93 */ ! 101: "arg2", /* 94 */ ! 102: "auto", /* 95 */ ! 103: "rest", /* 96 */ ! 104: "com0", /* 97 */ ! 105: "red0", /* 98 */ ! 106: "exd0", /* 99 */ ! 107: "scan0", /*100 */ ! 108: "base", /*101 */ ! 109: "menc", /*102 */ /* monadic encode */ ! 110: "label", /*103 */ ! 111: }; ! 112: ! 113: #endif ! 114: ! 115: #ifdef SOMED ! 116: ! 117: dump(cp) ! 118: char *cp; ! 119: { ! 120: register char *s, *t; ! 121: register i; ! 122: ! 123: s = cp; ! 124: ! 125: loop: ! 126: putchar(' '); ! 127: if(column > 50) ! 128: putchar('\n'); ! 129: i = *s++; ! 130: #ifdef FULLD ! 131: if(i >= 0 && i <= 103 && opname[i]) { ! 132: t = opname[i]; ! 133: while(*t) ! 134: putchar(*t++); ! 135: } else ! 136: #endif ! 137: printf("%d", i); ! 138: switch(i) { ! 139: ! 140: case EOL: ! 141: if(*s != EOL) ! 142: break; ! 143: case EOF: ! 144: putchar('\n'); ! 145: return; ! 146: ! 147: case QUOT: ! 148: i = *s++; ! 149: s =+ i; ! 150: break; ! 151: ! 152: case CONST: ! 153: i = *s++; ! 154: s =+ i*SDAT; ! 155: break; ! 156: ! 157: case NAME: ! 158: case FUN: ! 159: case ARG1: ! 160: case ARG2: ! 161: case AUTO: ! 162: case REST: ! 163: s =+ copy(IN, s, &cp, 1); ! 164: putchar('-'); ! 165: t = cp->namep; ! 166: while(*t) ! 167: putchar(*t++); ! 168: break; ! 169: ! 170: case INDEX: ! 171: case IMMED: ! 172: s++; ! 173: break; ! 174: } ! 175: goto loop; ! 176: } ! 177: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.