Annotation of researchv10no/cmd/cfront/ooptcfront/node_classes.H, revision 1.1.1.1

1.1       root        1: /* -*- Mode: C -*- Begin node_classes.H */
                      2: /*
                      3:        $Source: /usr3/lang/benson/work/stripped_cfront/RCS/node_classes.H,v $ $RCSfile: node_classes.H,v $
                      4:        $Revision: 1.1 $                $Date: 89/11/20 08:50:41 $
                      5:        $Author: benson $               $Locker:  $
                      6:        $State: Exp $
                      7: */
                      8: 
                      9: #ifndef _node_classes
                     10: #define _node_classes
                     11: 
                     12: enum discriminator_error {
                     13:     discrim_none_valid = 0,
                     14:     discrim_bad_index = -1,
                     15:     discrim_inconsistent_node = -2,
                     16: };
                     17: 
                     18: enum node_class {
                     19:     nc_unused = 0,
                     20:     nc_eof = 1,
                     21:     nc_virt = 2,
                     22:     nc_nlist = 3,
                     23:     nc_gen = 4,
                     24:     nc_vec = 5,
                     25:     nc_ptr = 6,
                     26:     nc_fct = 7,
                     27:     nc_table = 8,
                     28:     nc_basetype = 9,
                     29:     nc_name = 10,
                     30:     nc_expr = 11,
                     31:     nc_stmt = 12,
                     32:     nc_enumdef = 13,
                     33:     nc_classdef = 14,
                     34:     nc_baseclass = 15,
                     35:     nc_iline = 16,
                     36:     nc_ia = 17,
                     37: };
                     38:     
                     39: /* searching this is slower than a directly indexed array,
                     40:    but this is more maintainable. We can speed it up later. */
                     41: 
                     42: #ifdef DEFINE_TOKEN_CLASS_TABLE
                     43: struct token_class {
                     44:     TOK token;
                     45:     node_class nclass;
                     46: } token_classes[] = {
                     47:     { EOFTOK, nc_eof },
                     48:     { ASM, nc_stmt },
                     49:     { AUTO, nc_basetype },
                     50:     { BREAK, nc_stmt },
                     51:     { CASE, nc_stmt },
                     52:     { CHAR, nc_basetype },
                     53:     { CLASS, nc_classdef },
                     54:     { CONTINUE, nc_stmt },
                     55:     { DEFAULT, nc_stmt },
                     56:     { DELETE, nc_expr },
                     57:     { DO, nc_stmt },
                     58:     { DOUBLE, nc_basetype },
                     59:     { ELSE, nc_stmt },
                     60:     { ENUM, nc_enumdef },
                     61:     { EXTERN, nc_basetype },
                     62:     { FLOAT, nc_basetype },
                     63:     { FOR, nc_stmt },
                     64:     { FORTRAN, nc_unused },
                     65:     { FRIEND, nc_basetype },
                     66:     { GOTO, nc_stmt },
                     67:     { IF, nc_stmt },
                     68:     { INT, nc_basetype },
                     69:     { LONG, nc_basetype },
                     70:     { NEW, nc_expr },
                     71:     { OPERATOR, nc_fct },
                     72:     { RETURN, nc_stmt },
                     73:     { PUBLIC, nc_name },
                     74:     { CONST, nc_basetype },
                     75:     { REGISTER, nc_basetype },
                     76:     { RETURN, nc_stmt },
                     77:     { SHORT, nc_basetype },
                     78:     { SIZEOF, nc_expr },
                     79:     { STATIC, nc_basetype },
                     80:     { STRUCT, nc_unused },
                     81:     { SWITCH, nc_stmt },
                     82:     { THIS, nc_expr },
                     83:     { TYPEDEF, nc_basetype },
                     84:     { UNION, nc_unused },
                     85:     { UNSIGNED, nc_basetype },
                     86:     { VOID, nc_basetype },
                     87:     { WHILE, nc_stmt },
                     88:     { LP, nc_unused },
                     89:     { RP, nc_unused },
                     90:     { LB, nc_unused },
                     91:     { RB, nc_unused },
                     92:     { REF, nc_expr },
                     93:     { DOT, nc_expr },
                     94:     { NOT, nc_expr },
                     95:     { COMPL, nc_expr },
                     96:     { INCR, nc_expr },
                     97:     { DECR, nc_expr },
                     98:     { MUL, nc_expr },
                     99:     { DIV, nc_expr },
                    100:     { AND, nc_expr },
                    101:     { MOD, nc_expr },
                    102:     { PLUS, nc_expr },
                    103:     { MINUS, nc_expr },
                    104:     { LS, nc_expr },
                    105:     { RS, nc_expr },
                    106:     { LT, nc_expr },
                    107:     { LE, nc_expr },
                    108:     { GT, nc_expr },
                    109:     { GE, nc_expr },
                    110:     { EQ, nc_expr },
                    111:     { NE, nc_expr },
                    112:     { ER, nc_expr },
                    113:     { OR, nc_expr },
                    114:     { ANDAND, nc_expr },
                    115:     { OROR, nc_expr },
                    116:     { QUEST, nc_expr },
                    117:     { COLON, nc_unused },
                    118:     { ASSIGN, nc_expr },
                    119:     { CM, nc_expr },
                    120:     { SM, nc_stmt },
                    121:     { SM_PARAM, nc_stmt },
                    122:     { LC, nc_unused },
                    123:     { RC, nc_unused },
                    124:     { INLINE, nc_fct },
                    125:     { OVERLOAD, nc_gen },
                    126:     { VIRTUAL, nc_fct },       /* but might be a basecl */
                    127:     { COERCE, nc_unused },
                    128:     { PROTECTED, nc_name },
                    129:     { ID, nc_unused },
                    130:     { STRING, nc_expr },
                    131:     { ICON, nc_expr },
                    132:     { FCON, nc_expr },
                    133:     { CCON, nc_expr },
                    134:     { NAME, nc_name },         /* but might be basecl */
                    135:     { ZERO, nc_expr },
                    136:     { ICTOR, nc_unused },
                    137:     { IDTOR, nc_unused },
                    138:     { ASOP, nc_expr },
                    139:     { RELOP, nc_expr },
                    140:     { EQUOP, nc_expr },
                    141:     { DIVOP, nc_expr },
                    142:     { SHIFTOP, nc_expr },
                    143:     { ICOP, nc_expr },
                    144:     { UNOP, nc_expr },
                    145:     { TYPE, nc_basetype },
                    146:     { UMINUS, nc_expr },
                    147:     { FCT, nc_fct },
                    148:     { CALL, nc_expr },
                    149:     { VEC, nc_vec },
                    150:     { DEREF, nc_expr },
                    151:     { ADDROF, nc_expr },
                    152:     { CAST, nc_expr },
                    153:     { FIELD, nc_basetype },
                    154:     { LABEL, nc_stmt },
                    155:     { BLOCK, nc_stmt },
                    156:     { DCL, nc_stmt },
                    157:     { QUA, nc_unused },
                    158:     { COBJ, nc_basetype },
                    159:     { EOBJ, nc_basetype },
                    160:     { TNAME, nc_name },
                    161:     { ILIST, nc_expr },
                    162:     { PTR, nc_ptr },
                    163:     { ASPLUS, nc_expr },
                    164:     { ASMINUS, nc_expr },
                    165:     { ASMUL, nc_expr },
                    166:     { ASDIV, nc_expr },
                    167:     { ASMOD, nc_expr },
                    168:     { ASAND, nc_expr },
                    169:     { ASOR, nc_expr },
                    170:     { ASER, nc_expr },
                    171:     { ASLS, nc_expr },
                    172:     { ASRS, nc_expr },    
                    173:     { ARG, nc_basetype },
                    174:     { KNOWN, nc_unused },
                    175:     { ZTYPE, nc_basetype },
                    176:     { ARGT, nc_basetype },
                    177:     { ELIST, nc_expr },
                    178:     { ANY, nc_basetype },
                    179:     { TABLE, nc_table },
                    180:     { LOC, nc_unused },
                    181:     { DUMMY, nc_expr },
                    182:     { G_ADDROF, nc_expr },
                    183:     { G_CALL, nc_expr },
                    184:     { G_CM, nc_expr },
                    185:     { IVAL, nc_expr },
                    186:     { FVAL, nc_expr },
                    187:     { LVAL, nc_expr },
                    188:     { ELLIPSIS, nc_unused },
                    189:     { AGGR, nc_unused },
                    190:     { RPTR, nc_ptr },
                    191:     { HIDDEN, nc_unused },
                    192:     { MEM, nc_expr },
                    193:     { CTOR, nc_unused },
                    194:     { DTOR, nc_unused },
                    195:     { CONST_PTR, nc_ptr },
                    196:     { CONST_RPTR, nc_ptr },
                    197:     { TEXT, nc_expr },
                    198:     { PAIR, nc_stmt },
                    199:     { ANON, nc_unused },
                    200:     { ICALL, nc_expr },
                    201:     { ANAME, nc_expr },
                    202:     { VOLATILE, nc_basetype },
                    203:     { SIGNED, nc_basetype },
                    204:     { UPLUS, nc_expr },
                    205:     { MEMPTR, nc_unused },
                    206:     { PRIVATE, nc_name },
                    207:     { PR, nc_unused },
                    208:     { MDOT, nc_expr },
                    209:     { TSCOPE, nc_unused },
                    210:     { DECL_MARKER, nc_unused },
                    211:     { REFMUL, nc_expr },
                    212:     { LDOUBLE, nc_basetype },
                    213:     { LINKAGE, nc_unused },
                    214:     { LOCAL, nc_basetype },
                    215:     { GNEW, nc_expr },
                    216:     { TEMPLATE, nc_unused },
                    217:     { STAT_INIT, nc_unused },
                    218:     { CATCH, nc_unused },
                    219:     { GDELETE, nc_expr },
                    220:     { CONVERT, nc_unused },
                    221:     { XVIRT, nc_virt },
                    222:     { XNLIST, nc_nlist },
                    223:     { XILINE, nc_iline },
                    224:     { XIA, nc_ia },
                    225:     { VALUE, nc_expr },
                    226:     { XDELETED_NODE, nc_unused },
                    227: };
                    228: #endif
                    229: 
                    230: 
                    231: node_class classify_node (Pnode, int&);
                    232: node_class classify_node (Pnode);
                    233: 
                    234: #endif
                    235: 
                    236: /* End node_classes.H */
                    237: 
                    238: /*
                    239:    $Log:       node_classes.H,v $
                    240: Revision 1.1  89/11/20  08:50:41  benson
                    241: Initial revision
                    242: 
                    243: Revision 1.6  89/10/10  08:41:43  benson
                    244: add missing entries.
                    245: 
                    246: Revision 1.5  89/10/05  11:40:50  benson
                    247: add declaration of the one-arg form of classify_node.
                    248: 
                    249: 
                    250: 
                    251:    end_log
                    252: */

unix.superglobalmegacorp.com

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