|
|
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.