|
|
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: */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.