|
|
1.1 ! root 1: /* ! 2: * Various interpreter data tables. ! 3: */ ! 4: ! 5: #include "../h/rt.h" ! 6: ! 7: /* ! 8: * External declarations for blocks of built-in procedures. ! 9: */ ! 10: extern struct b_proc ! 11: #define FncDef(p) Cat(B,p), ! 12: #include "../h/fdef.h" ! 13: Xnoproc; /* Hack to avoid ,; at end */ ! 14: #undef FncDef ! 15: struct b_proc Xnoproc; ! 16: ! 17: /* ! 18: * Array of addresses of blocks for built-in procedures. It is important ! 19: * that this table and the one in link/builtin.c agree; the linker ! 20: * supplies iconx with indices into this array. ! 21: */ ! 22: struct b_proc *functab[] = { ! 23: #define FncDef(p) Cat(&B,p), ! 24: #include "../h/fdef.h" ! 25: #undef FncDef ! 26: 0 ! 27: }; ! 28: ! 29: asgn(), bang(), bscan(), cat(), compl(), create(), ! 30: diff(), div(), eqv(), err(), escan(), field(), inter(), lconcat(), ! 31: lexeq(), lexge(), lexgt(), lexle(), lexlt(), lexne(), ! 32: minus(), mod(), mult(), neg(), neqv(), nonnull(), null(), number(), ! 33: numeq(), numge(), numgt(), numle(), numlt(), numne(), plus(), power(), ! 34: random(), rasgn(), refresh(), rswap(), sect(), size(), ! 35: subsc(), swap(), tabmat(), toby(), unions(), value(); ! 36: /* ! 37: * When an opcode n has a subroutine call associated with it, the ! 38: * nth word here is the routine to call. ! 39: */ ! 40: int (*optab[])() = { ! 41: err, asgn, bang, cat, ! 42: compl, diff, div, eqv, ! 43: inter, lconcat, lexeq, lexge, ! 44: lexgt, lexle, lexlt, lexne, ! 45: minus, mod, mult, neg, ! 46: neqv, nonnull, null, number, ! 47: numeq, numge, numgt, numle, ! 48: numlt, numne, plus, power, ! 49: random, rasgn, refresh, rswap, ! 50: sect, size, subsc, swap, ! 51: tabmat, toby, unions, value, ! 52: bscan, err, err, err, ! 53: err, err, create, err, ! 54: err, err, err, escan, ! 55: err, field, err, err ! 56: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.