Annotation of researchv10no/cmd/cfront/ooptcfront/node_classes.H, revision 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.