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