|
|
1.1 root 1: /***************************************************************************
2: * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne. JOVE *
3: * is provided to you without charge, and with no warranty. You may give *
4: * away copies of JOVE, including sources, provided that this notice is *
5: * included in all the files. *
6: ***************************************************************************/
7:
8: #include "jove.h"
9: #include "ctype.h"
10:
11: int SyntaxTable = FUNDAMENTAL; /* Current table to use. */
12:
13: const unsigned char CharTable[NMAJORS][NCHARS] = {
14: {
15: _C, _C, _C, _C, _C, _C, _C, _C,
16: _C, _C, _C, _C, _C, _C, _C, _C,
17: _C, _C, _C, _C, _C, _C, _C, _C,
18: _C, _C, _C, _C, _C, _C, _C, _C,
19: _P, _P, _P, _P, _P, _P, _P, _P,
20: _Op|_P, _Cl|_P, _P, _P, _P, _P, _P, _P,
21: _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N,
22: _W|_N, _W|_N, _P, _P, _P, _P, _P, _P,
23: _P, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
24: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
25: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
26: _W|_U, _W|_U, _W|_U, _Op|_P, _P, _Cl|_P, _P, _P,
27: _P, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
28: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
29: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
30: _W|_L, _W|_L, _W|_L, _Op|_P, _P, _Cl|_P, _P, _C,
31: #ifdef IBMPC
32: 0, _W|_L, 0, 0, _W|_L, 0, 0, 0, 0, 0, 0, 0, 0, 0, _W|_U, 0,
33: 0, 0, 0, 0, _W|_L, 0, 0, 0, 0, _W|_U, _W|_U, 0, 0, 0, 0, 0,
34: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
35: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
36: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
37: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
38: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
39: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40: #endif /* IBMPC */
41: #ifdef MAC /* See Inside Macintosh Vol One p. 247 */
42: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_L,
43: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
44: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
45: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
46: _P, _P, _P, _P, _P, _P, _P, _P,
47: _P, _P, _P, _P, _P, _P, _W|_U, _W|_U,
48: _P, _P, _P, _P, _P, _W|_U, _W|_L, _W|_U,
49: _W|_U, _W|_L, _P, _P, _P, _W|_U, _W|_L, _W|_L,
50: _P, _P, _P, _P, _P, _P, _W|_U, _P,
51: _P, _P, _P, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
52: _P, _P, _P, _P, _P, _P, _P, _P,
53: _W|_U, 0, 0, 0, 0, 0, 0, 0,
54: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
55: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
56: #endif /* MAC */
57: },
58:
59: {
60: _C, _C, _C, _C, _C, _C, _C, _C,
61: _C, _C, _C, _C, _C, _C, _C, _C,
62: _C, _C, _C, _C, _C, _C, _C, _C,
63: _C, _C, _C, _C, _C, _C, _C, _C,
64: _P, _P, _P, _P, _P, _P, _P, _P|_W,
65: _Op|_P, _Cl|_P, _P, _P, _P, _P, _P, _P,
66: _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N,
67: _W|_N, _W|_N, _P, _P, _P, _P, _P, _P,
68: _P, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
69: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
70: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
71: _W|_U, _W|_U, _W|_U, _Op|_P, _P, _Cl|_P, _P, _P,
72: _P, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
73: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
74: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
75: _W|_L, _W|_L, _W|_L, _Op|_P, _P, _Cl|_P, _P, _C,
76: #ifdef IBMPC
77: 0, _W|_L, 0, 0, _W|_L, 0, 0, 0, 0, 0, 0, 0, 0, 0, _W|_U, 0,
78: 0, 0, 0, 0, _W|_L, 0, 0, 0, 0, _W|_U, _W|_U, 0, 0, 0, 0, 0,
79: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
81: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
83: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
84: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85: #endif /* IBMPC */
86: #ifdef MAC /* See Inside Macintosh Vol One p. 247 */
87: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_L,
88: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
89: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
90: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
91: _P, _P, _P, _P, _P, _P, _P, _P,
92: _P, _P, _P, _P, _P, _P, _W|_U, _W|_U,
93: _P, _P, _P, _P, _P, _W|_U, _W|_L, _W|_U,
94: _W|_U, _W|_L, _P, _P, _P, _W|_U, _W|_L, _W|_L,
95: _P, _P, _P, _P, _P, _P, _W|_U, _P,
96: _P, _P, _P, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
97: _P, _P, _P, _P, _P, _P, _P, _P,
98: _W|_U, 0, 0, 0, 0, 0, 0, 0,
99: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
101: #endif /* MAC */
102: },
103:
104: {
105: _C, _C, _C, _C, _C, _C, _C, _C,
106: _C, _C, _C, _C, _C, _C, _C, _C,
107: _C, _C, _C, _C, _C, _C, _C, _C,
108: _C, _C, _C, _C, _C, _C, _C, _C,
109: _P, _P, _P, _P, _P|_W, _P, _P, _P,
110: _Op|_P, _Cl|_P, _P, _P, _P, _P, _P, _P,
111: _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N,
112: _W|_N, _W|_N, _P, _P, _P, _P, _P, _P,
113: _P, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
114: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
115: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
116: _W|_U, _W|_U, _W|_U, _Op|_P, _P, _Cl|_P, _P, _P|_W,
117: _P, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
118: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
119: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
120: _W|_L, _W|_L, _W|_L, _Op|_P, _P, _Cl|_P, _P, _C,
121: #ifndef ASCII
122: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
123: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
125: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
126: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
127: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
128: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
129: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
130: #endif /* ASCII */
131: },
132:
133: #ifdef LISP
134: {
135: _C, _C, _C, _C, _C, _C, _C, _C,
136: _C, _C, _C, _C, _C, _C, _C, _C,
137: _C, _C, _C, _C, _C, _C, _C, _C,
138: _C, _C, _C, _C, _C, _C, _C, _C,
139: _P, _W|_P, _P, _P, _W|_P, _W|_P, _W|_P, _P,
140: _Op|_P, _Cl|_P, _W|_P, _W|_P, _P, _W|_P, _P, _W,
141: _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N, _W|_N,
142: _W|_N, _W|_N, _W|_P, _P, _W|_P, _W|_P, _W|_P, _W|_P,
143: _W|_P, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
144: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
145: _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U, _W|_U,
146: _W|_U, _W|_U, _W|_U, _Op|_P, _P, _Cl|_P, _W|_P, _W|_P,
147: _P, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
148: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
149: _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L, _W|_L,
150: _W|_L, _W|_L, _W|_L, _Op|_W|_P, _W|_P, _Cl|_W|_P, _W|_P, _W|_C,
151: #ifndef ASCII
152: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
153: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
154: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
156: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
157: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
160: #endif /* ASCII */
161: },
162: #endif /* LISP */
163: };
164:
165: int
166: ismword(c)
167: int c;
168: {
169: return ((CharTable[curbuf->b_major])[c]&(_W));
170: }
171:
172: #ifdef IBMPC
173: const char CaseEquiv[NCHARS] = {
174: '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
175: '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
176: '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
177: '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
178: '\040', '!', '"', '#', '$', '%', '&', '\'',
179: '(', ')', '*', '+', ',', '-', '.', '/',
180: '0', '1', '2', '3', '4', '5', '6', '7',
181: '8', '9', ':', ';', '<', '=', '>', '?',
182: '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
183: 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
184: 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
185: 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
186: '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
187: 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
188: 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
189: 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
190: 128, 154, 130, 131, 142, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
191: 144, 145, 146, 147, 153, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
192: 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
193: 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
194: 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
195: 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
196: 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
197: 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
198: };
199: #endif /* IBMPC */
200:
201: #ifdef MAC
202: const char CaseEquiv[NCHARS] = {
203: '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
204: '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
205: '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
206: '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
207: '\040', '!', '"', '#', '$', '%', '&', '\'',
208: '(', ')', '*', '+', ',', '-', '.', '/',
209: '0', '1', '2', '3', '4', '5', '6', '7',
210: '8', '9', ':', ';', '<', '=', '>', '?',
211: '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
212: 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
213: 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
214: 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
215: '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
216: 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
217: 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
218: 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
219: 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
220: 0xCB, 0x89, 0x80, 0xCC, 0x81, 0x82, 0x83, 0x8F,
221: 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x84, 0x97,
222: 0x98, 0x99, 0x85, 0xCD, 0x9C, 0x9D, 0x9E, 0x86,
223: 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
224: 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
225: 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xC6, 0xB7,
226: 0xB8, 0xB8, 0xBA, 0xBB, 0xBC, 0xBD, 0xAE, 0xAF,
227: 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
228: 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCE,
229: 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
230: 0xD8, 0, 0, 0, 0, 0, 0, 0,
231: 0, 0, 0, 0, 0, 0, 0, 0,
232: 0, 0, 0, 0, 0, 0, 0, 0,
233: 0, 0, 0, 0, 0, 0, 0, 0,
234: 0, 0, 0, 0, 0, 0, 0, 0
235: };
236: #endif /* MAC */
237:
238: #ifdef ASCII
239: const char CaseEquiv[] = {
240: '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
241: '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
242: '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
243: '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
244: '\040', '!', '"', '#', '$', '%', '&', '\'',
245: '(', ')', '*', '+', ',', '-', '.', '/',
246: '0', '1', '2', '3', '4', '5', '6', '7',
247: '8', '9', ':', ';', '<', '=', '>', '?',
248: '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
249: 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
250: 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
251: 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
252: '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
253: 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
254: 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
255: 'X', 'Y', 'Z', '{', '|', '}', '~', '\177'
256: };
257: #endif /* ASCII */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.