BSD 4 development
[unix-history] / usr / src / cmd / apl / tab.c
CommitLineData
4467ecaa
BJ
1#define B 0100000
2struct tab
3{
4 int input;
5 int lexval;
6 int retval;
7} tab[] =
8{
9/*
10 * one of a kind
11 */
12
13 ':', unk,lpar,
14 '"', unk,rpar,
15 ';', unk,lbkt,
16 '\'', unk,rbkt,
17 '/', COM,com,
18 0200 , COM0,com0,
19 '?', EXD,com,
20 0201 , EXD0,com0,
21 'K', unk,strng,
22 'J', unk,null,
23 '.', IPROD,dot,
24 'L', QUAD,quad,
25 0202 , QQUAD,quad,
26 0203 , CQUAD,quad,
27 '<', unk,semi,
28 '>', unk,cln,
29 0204 , COMNT,comnt,
30 'C', COMNT,comnt,
31 ']', BRAN0,tran,
32
33/*
34 * dyadic scalars
35 * op2 op1 v (dyadic op)
36 */
37
38 '#', LT,dscal,
39 '&', GT,dscal,
40 '$', LE,dscal,
41 '^', GE,dscal,
42 '%', EQ,dscal,
43 '*', NE,dscal,
44 ')', AND,dscal,
45 '(', OR,dscal,
46 0205 , NAND,dscal,
47 0206 , NOR,dscal,
48
49/*
50 * monadic or dyadic scalars
51 * op2 op1 v (dyadic op)
52 * op1 v+1 (monadic op)
53 */
54
55 '-', ADD,mdscal,
56 '_', SUB,mdscal,
57 '=', MUL,mdscal,
58 '+', DIV,mdscal,
59 'M', MOD,mdscal,
60 'D', MIN,mdscal,
61 'S', MAX,mdscal,
62 'P', PWR,mdscal,
63 0207 , LOG,mdscal,
64 'O', CIR,mdscal,
65 0210 , COMB,mdscal,
66
67/*
68 * monadic
69 * op1 v (monadic op)
70 */
71
72 'T', NOT,m,
73/*
74 * dyadic
75 * op2 op1 v (dyadic op)
76 */
77
78 'N', REP,d,
79 'Y', TAKE,d,
80 'U', DROP,d,
81 '[', ASGN,asg,
82
83/*
84 * monadic or dyadic
85 * op2 op1 v (dyadic op)
86 * op1 v+1 (monadic op)
87 */
88
89 'E', EPS,md,
90 'B', BASE,md,
91 'Q', DEAL,md,
92 'R', DRHO,md,
93 'I', DIOT,md,
94 0211 , ROT0,md,
95 0212 , DTRN,md,
96 0213 , DIBM,md,
97 0214 , DDOM,md,
98
99
100
101/*
102 * monadic with optional subscript
103 * op1 v (monadic op)
104 * op1 sub v+1 (subscripted monadic op)
105 */
106
107 0215 , GDU,msub,
108 0216 , GDD,msub,
109
110/*
111 * dyadic with optional subscript
112 * op2 op1 v (dyadic op)
113 * op2 op1 sub v+1 (subscripted dyadic op)
114 */
115
116
117/*
118 * monadic or dyadic with optional subscript
119 * op2 op1 v (dyadic op)
120 * op1 v+1 (monadic op)
121 * op2 op1 sub v+2 (subscripted dyadic op)
122 * op1 sub v+3 (subscripted monadic op)
123 */
124
125 0217 , ROT,mdsub,
126 ',', CAT,mdsub,
127
128/*
129 * end of list
130 */
131
132 0
133};
134
135int comtab[] =
136{
137 "ascii", comnull, ASCII,
138 "apl", comnull, APL,
139 "clear", comnull, CLEAR,
140 "continue", comnull, CONTIN,
141 "copy", comnam, COPY,
142 "csh", comnull, CSH,
143 "debug", comnull, DEBUG,
144 "digits", comexpr, DIGITS,
145 "drop", comnam, DROPC,
146 "edit", comnam, ED_IT,
147 "ex", comnam, EX_IT,
148 "erase", comnam, ERASE,
149 "fns", comnull, FNS,
150 "fuzz", comexpr, FUZZ,
151 "lib", comnull, LIB,
152 "load", comnam, LOAD,
153 "off", comnull, OFF,
154 "origin", comexpr, ORIGIN,
155 "read", comnam, READ,
156 "save", comnam, SAVE,
157 "vars", comnull, VARS,
158 "vi", comnam, EX_VI,
159 "width", comexpr, WIDTH,
160#ifdef SOMED
161 "symbols", comnull, SYMBOLS,
162#endif
163 0, unk
164};
165 struct charbox chartab[] =
166{
167 '/','_',
168 '?','_',
169 'K','L',
170 'L','O',
171 'C','J',
172 ')','T',
173 '(','T',
174 'O','P',
175 '.','K',
176 'O','_',
177 '?','O',
178 'B','N',
179 '+','L',
180 'H','M',
181 'G','M',
182 'M','O',
183 'F','a',
184 'F','b',
185 'F','c',
186 'F','d',
187 'F','e',
188 'F','f',
189 'F','g',
190 'F','h',
191 'F','i',
192 'F','j',
193 'F','k',
194 'F','l',
195 'F','m',
196 'F','n',
197 'F','o',
198 'F','p',
199 'F','q',
200 'F','r',
201 'F','s',
202 'F','t',
203 'F','u',
204 'F','v',
205 'F','w',
206 'F','x',
207 'F','y',
208 'F','z'
209};