1da2e3ebdSchin /***********************************************************************
2da2e3ebdSchin *                                                                      *
3da2e3ebdSchin *               This software is part of the ast package               *
4*b30d1939SAndy Fiddaman *          Copyright (c) 1986-2011 AT&T Intellectual Property          *
5da2e3ebdSchin *                      and is licensed under the                       *
6*b30d1939SAndy Fiddaman *                 Eclipse Public License, Version 1.0                  *
77c2fbfb3SApril Chin *                    by AT&T Intellectual Property                     *
8da2e3ebdSchin *                                                                      *
9da2e3ebdSchin *                A copy of the License is available at                 *
10*b30d1939SAndy Fiddaman *          http://www.eclipse.org/org/documents/epl-v10.html           *
11*b30d1939SAndy Fiddaman *         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
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