Annotation of 43BSDReno/contrib/jove/ctype.c, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.