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