Annotation of researchv10no/cmd/cfront/xptcfront/token.h, revision 1.1.1.1

1.1       root        1: /*ident        "@(#)ctrans:src/token.h 1.4" */
                      2: /**************************************************************************
                      3: 
                      4:        C++ source for cfront, the C++ compiler front-end
                      5:        written in the computer science research center of Bell Labs
                      6: 
                      7:        Copyright (c) 1984 AT&T, Inc. All Rights Reserved
                      8:        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T, INC.
                      9: 
                     10: token.h:
                     11: 
                     12: *****************************************************************************/
                     13: /*
                     14: #ifndef PRESAFE
                     15: extern "C" {
                     16: #endif
                     17: 
                     18: extern void free(char*);                       // alloc.h
                     19: extern char* malloc(unsigned);
                     20: extern char* calloc(unsigned, unsigned);
                     21: 
                     22: extern strncmp(const char*, const char*, const);       // string.h
                     23: extern strcmp(const char*, const char*);
                     24: extern int strlen(const char*);
                     25: extern char* strcpy(char*, const char*);
                     26: 
                     27: #ifdef apollo
                     28:        extern void set_sbrk_size(int);
                     29: #endif
                     30: 
                     31: #ifndef PRESAFE
                     32: }
                     33: #endif
                     34: */
                     35: 
                     36: #include <malloc.h>
                     37: #include <string.h>
                     38: #include <stdio.h>
                     39: 
                     40: extern void lex_clear();
                     41: extern void otbl_init();
                     42: 
                     43: //#define yylex()      lalex()
                     44: 
                     45: #define putstring(s)   fputs(s,out_file)
                     46: #define putst(s)       (fputs(s,out_file),putc(' ',out_file))
                     47: #define putch(c)       putc(c,out_file)
                     48: #define putcat(c,s)    (putc(c,out_file),fputs(s,out_file))
                     49: 
                     50:                        /* token numbers for C parser   */
                     51: 
                     52: #define MAXTOK 255
                     53: extern char* keys[MAXTOK+1];
                     54: 
                     55: #define EOFTOK 0       /*      EOF     */
                     56:                        /* keywords in alphabetical order */
                     57: #define ASM            1
                     58: #define AUTO           2
                     59: #define BREAK          3
                     60: #define CASE           4
                     61: #define CHAR           5
                     62: #define CLASS          6
                     63: #define CONTINUE       7
                     64: #define DEFAULT                8
                     65: #define DELETE         9
                     66: #define DO             10
                     67: #define DOUBLE         11
                     68: #define ELSE           12
                     69: #define ENUM           13
                     70: #define EXTERN         14
                     71: #define FLOAT          15
                     72: #define FOR            16
                     73: #define FORTRAN                17
                     74: #define FRIEND         18
                     75: #define GOTO           19
                     76: #define IF             20
                     77: #define INT            21
                     78: #define LONG           22
                     79: #define NEW            23
                     80: #define OPERATOR       24
                     81: #define PUBLIC         25
                     82: #define CONST          26
                     83: #define REGISTER       27
                     84: #define RETURN         28
                     85: #define SHORT          29
                     86: #define SIZEOF         30
                     87: #define STATIC         31
                     88: #define STRUCT         32
                     89: #define SWITCH         33
                     90: #define THIS           34
                     91: #define TYPEDEF                35
                     92: #define UNION          36
                     93: #define UNSIGNED       37
                     94: #define VOID           38
                     95: #define WHILE          39
                     96: 
                     97:                        /* operators in priority order (sort of) */
                     98: #define LP             40
                     99: #define RP             41
                    100: #define LB             42
                    101: #define RB             43
                    102: #define REF            44
                    103: #define DOT            45
                    104: #define NOT            46
                    105: #define COMPL          47
                    106: #define INCR           48
                    107: #define DECR           49
                    108: #define MUL            50
                    109: #define DIV            51
                    110: #define AND            52
                    111: #define MOD            53
                    112: #define PLUS           54
                    113: #define MINUS          55
                    114: #define LS             56
                    115: #define RS             57
                    116: #define LT             58
                    117: #define LE             59
                    118: #define GT             60
                    119: #define GE             61
                    120: #define EQ             62
                    121: #define NE             63
                    122: #define ER             64
                    123: #define OR             65
                    124: #define ANDAND         66
                    125: #define OROR           67
                    126: #define QUEST          68
                    127: #define COLON          69
                    128: #define ASSIGN         70
                    129: #define CM             71
                    130: #define SM             72
                    131: #define LC             73
                    132: #define RC             74
                    133: 
                    134: #define INLINE         75
                    135: #define OVERLOAD       76
                    136: #define VIRTUAL                77
                    137: #define COERCE         78
                    138: #define PROTECTED      79
                    139: 
                    140:                        /* constants etc. */
                    141: #define ID             80
                    142: #define STRING         81
                    143: #define ICON           82
                    144: #define FCON           83
                    145: #define CCON           84
                    146: #define NAME           85
                    147: #define ZERO           86
                    148: 
                    149:                        /* groups of tokens */
                    150: #define ASOP           90      /* op= */
                    151: #define RELOP          91      /* LE GE LT GT */
                    152: #define EQUOP          92      /* EQ NE */
                    153: #define DIVOP          93      /* DIV MOD */
                    154: #define SHIFTOP                94      /* LS RS */
                    155: #define ICOP           95      /* INCR DECR */
                    156: #define UNOP           96      /* NOT COMPL */
                    157: #define TYPE           97
                    158:        /* TYPE =       INT FLOAT CHAR DOUBLE REGISTER STATIC EXTERN AUTO
                    159:                        LONG SHORT UNSIGNED INLINE FRIEND VIRTUAL */
                    160: 
                    161:                        /* new tokens generated by syn() */
                    162: #define UMINUS         107
                    163: #define FCT            108
                    164: #define CALL           109
                    165: #define VEC            110
                    166: #define DEREF          111
                    167: #define ADDROF         112
                    168: #define CAST           113
                    169: //#define ENDCAST              122
                    170: #define FIELD          114
                    171: #define LABEL          115
                    172: #define BLOCK          116
                    173: //#define QUA          117
                    174: #define DCL            118     /* local declaration statement */
                    175: #define COBJ           119
                    176: #define EOBJ           121
                    177: #define TNAME          123
                    178: #define ILIST          124
                    179: #define PTR            125
                    180: 
                    181: #define ASPLUS         126
                    182: #define ASMINUS                127
                    183: #define ASMUL          128
                    184: #define ASDIV          129
                    185: #define ASMOD          130
                    186: #define ASAND          131
                    187: #define ASOR           132
                    188: #define ASER           133
                    189: #define ASLS           134
                    190: #define ASRS           135
                    191: 
                    192: #define ARG            136
                    193: #define ARGS           137
                    194: #define ZTYPE          138
                    195: #define ARGT           139
                    196: #define ELIST          140
                    197: #define ANY            141
                    198: #define TABLE          142
                    199: #define LOC            143
                    200: #define DUMMY          144
                    201: #define G_ADDROF       145
                    202: #define G_CALL         146
                    203: #define G_CM           147
                    204: #define IVAL           150
                    205: //#define FVAL         151
                    206: //#define LVAL         152
                    207: #define ELLIPSIS       155
                    208: #define AGGR           156
                    209: #define VALUE          157     /* constructor call */
                    210: #define RPTR           158     /* reference */
                    211: #define HIDDEN         159
                    212: #define MEM            160
                    213: #define CTOR           161
                    214: #define DTOR           162
                    215: #define CONST_PTR      163
                    216: #define CONST_RPTR     164
                    217: #define TEXT           165
                    218: #define PAIR           166
                    219: #define ANON           167
                    220: #define ICALL          168
                    221: #define ANAME          169
                    222: #define VOLATILE       170
                    223: #define SIGNED         171
                    224: #define UPLUS          172
                    225: #define MEMPTR         173
                    226: #define PRIVATE                174
                    227: #define PR             175     /* PUBLIC PRIVATE or PROTECTED */
                    228: #define MDOT           177
                    229: #define TSCOPE         178
                    230: #define DECL_MARKER    179
                    231: #define REFMUL         180
                    232: #define LDOUBLE                181
                    233: #define LINKAGE         182
                    234: #define LOCAL          183
                    235: #define GNEW           184
                    236: #define TEMPLATE       185
                    237: #define STAT_INIT      186
                    238: #define CATCH          187
                    239: #define GDELETE                188
                    240: //#define CONVERT      189
                    241: #define NESTED         190
                    242: #define TRY            191
                    243: 
                    244: // class parameterized types constants
                    245: #define XVIRT           200 /* class virt */
                    246: #define XNLIST          201 /* struct name_list */
                    247: #define XILINE          202
                    248: #define XIA             203
                    249: #define STATEMENT        205
                    250: #define EXPRESSION       206
                    251: #define SM_PARAM         207 
                    252: #define TEMPLATE_TEST    208
                    253: #define PTNAME           209
                    254: #define NEW_INIT_KLUDGE  210
                    255: #define XDELETED_NODE    211
                    256: #define DUMMY_LAST_NODE  212
                    257: 
                    258: //#define SYN  1
                    259: //#define TYP  2
                    260: //#define SIMPL        3
                    261: //#define ERROR        4
                    262: 
                    263: //#define ICTOR 88
                    264: //#define IDTOR 89

unix.superglobalmegacorp.com

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