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