1/*********************************************************************** 2* * 3* This software is part of the ast package * 4* Copyright (c) 1986-2009 AT&T Intellectual Property * 5* and is licensed under the * 6* Common Public License, Version 1.0 * 7* by AT&T Intellectual Property * 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 144extern struct ppkeyword ppkey[]; 145 146#endif 147