xref: /titanic_50/usr/src/lib/libpp/common/ppkey.h (revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968)
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