1 /*********************************************************************** 2 * * 3 * This software is part of the ast package * 4 * Copyright (c) 1986-2007 AT&T Knowledge Ventures * 5 * and is licensed under the * 6 * Common Public License, Version 1.0 * 7 * by AT&T Knowledge Ventures * 8 * * 9 * A copy of the License is available at * 10 * http://www.opensource.org/licenses/cpl1.0.txt * 11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12 * * 13 * Information and Software Systems Research * 14 * AT&T Research * 15 * Florham Park NJ * 16 * * 17 * Glenn Fowler <gsf@research.att.com> * 18 * * 19 ***********************************************************************/ 20 #pragma prototyped 21 /* 22 * Glenn Fowler 23 * AT&T Research 24 * 25 * preprocessor C language keyword token values 26 * handles classic, ANSI and C++ 27 * additional non-standard keyword tokens are 28 * crammed into T_NOISE and T_X_* 29 */ 30 31 #ifndef _PPKEY_H 32 #define _PPKEY_H 33 34 /* 35 * NOTE: preserve the ranges for is*() 36 */ 37 38 #define ppisnoise(x) ((x)>=T_NOISE&&(x)<T_KEYWORD) 39 40 /* 41 * classic 42 */ 43 44 #define T_AUTO (T_TOKEN+0) 45 #define T_BREAK (T_TOKEN+1) 46 #define T_CASE (T_TOKEN+2) 47 #define T_CHAR (T_TOKEN+3) 48 #define T_CONTINUE (T_TOKEN+4) 49 #define T_DEFAULT (T_TOKEN+5) 50 #define T_DO (T_TOKEN+6) 51 #define T_DOUBLE_T (T_TOKEN+7) 52 #define T_ELSE (T_TOKEN+8) 53 #define T_EXTERN (T_TOKEN+9) 54 #define T_FLOAT_T (T_TOKEN+10) 55 #define T_FOR (T_TOKEN+11) 56 #define T_GOTO (T_TOKEN+12) 57 #define T_IF (T_TOKEN+13) 58 #define T_INT (T_TOKEN+14) 59 #define T_LONG (T_TOKEN+15) 60 #define T_REGISTER (T_TOKEN+16) 61 #define T_RETURN (T_TOKEN+17) 62 #define T_SHORT (T_TOKEN+18) 63 #define T_SIZEOF (T_TOKEN+19) 64 #define T_STATIC (T_TOKEN+20) 65 #define T_STRUCT (T_TOKEN+21) 66 #define T_SWITCH (T_TOKEN+22) 67 #define T_TYPEDEF (T_TOKEN+23) 68 #define T_UNION (T_TOKEN+24) 69 #define T_UNSIGNED (T_TOKEN+25) 70 #define T_WHILE (T_TOKEN+26) 71 72 /* 73 * ANSI 74 */ 75 76 #define T_CONST (T_TOKEN+27) 77 #define T_ENUM (T_TOKEN+28) 78 #define T_SIGNED (T_TOKEN+29) 79 #define T_VOID (T_TOKEN+30) 80 #define T_VOLATILE (T_TOKEN+31) 81 82 /* 83 * C++ 84 */ 85 86 #define T_ASM (T_TOKEN+32) 87 #define T_BOOL (T_TOKEN+33) 88 #define T_CATCH (T_TOKEN+34) 89 #define T_CLASS (T_TOKEN+35) 90 #define T_CONST_CAST (T_TOKEN+36) 91 #define T_DELETE (T_TOKEN+37) 92 #define T_DYNAMIC_CAST (T_TOKEN+38) 93 #define T_EXPLICIT (T_TOKEN+39) 94 #define T_FALSE (T_TOKEN+40) 95 #define T_FRIEND (T_TOKEN+41) 96 #define T_INLINE (T_TOKEN+42) 97 #define T_MUTABLE (T_TOKEN+43) 98 #define T_NAMESPACE (T_TOKEN+44) 99 #define T_NEW (T_TOKEN+45) 100 #define T_OPERATOR (T_TOKEN+46) 101 #define T_OVERLOAD (T_TOKEN+47) 102 #define T_PRIVATE (T_TOKEN+48) 103 #define T_PROTECTED (T_TOKEN+49) 104 #define T_PUBLIC (T_TOKEN+50) 105 #define T_REINTERPRET_CAST (T_TOKEN+51) 106 #define T_STATIC_CAST (T_TOKEN+52) 107 #define T_TEMPLATE (T_TOKEN+53) 108 #define T_THIS (T_TOKEN+54) 109 #define T_THROW (T_TOKEN+55) 110 #define T_TRUE (T_TOKEN+56) 111 #define T_TRY (T_TOKEN+57) 112 #define T_TYPEID (T_TOKEN+58) 113 #define T_USING (T_TOKEN+59) 114 #define T_VIRTUAL (T_TOKEN+60) 115 #define T_WCHAR_T (T_TOKEN+61) 116 117 /* 118 * future 119 */ 120 121 #define T_INT64 (T_TOKEN+62) 122 123 /* 124 * non-standard 125 */ 126 127 #define T_BUILTIN (T_TOKEN+63) 128 #define T_NOISES (T_TOKEN+64) 129 #define T_NOISE (T_TOKEN+65) 130 #define T_X_GROUP (T_TOKEN+66) 131 #define T_X_LINE (T_TOKEN+67) 132 #define T_X_STATEMENT (T_TOKEN+68) 133 134 /* 135 * first available keyword token value 136 */ 137 138 #define T_KEYWORD (T_TOKEN+69) 139 140 /* 141 * implementation globals 142 */ 143 144 extern struct ppkeyword ppkey[]; 145 146 #endif 147