xref: /onnv-gate/usr/src/lib/libpp/common/ppkey.h (revision 10898:1883b621b3ea)
14887Schin /***********************************************************************
24887Schin *                                                                      *
34887Schin *               This software is part of the ast package               *
4*10898Sroland.mainz@nrubsig.org *          Copyright (c) 1986-2009 AT&T Intellectual Property          *
54887Schin *                      and is licensed under the                       *
64887Schin *                  Common Public License, Version 1.0                  *
78462SApril.Chin@Sun.COM *                    by AT&T Intellectual Property                     *
84887Schin *                                                                      *
94887Schin *                A copy of the License is available at                 *
104887Schin *            http://www.opensource.org/licenses/cpl1.0.txt             *
114887Schin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
124887Schin *                                                                      *
134887Schin *              Information and Software Systems Research               *
144887Schin *                            AT&T Research                             *
154887Schin *                           Florham Park NJ                            *
164887Schin *                                                                      *
174887Schin *                 Glenn Fowler <gsf@research.att.com>                  *
184887Schin *                                                                      *
194887Schin ***********************************************************************/
204887Schin #pragma prototyped
214887Schin /*
224887Schin  * Glenn Fowler
234887Schin  * AT&T Research
244887Schin  *
254887Schin  * preprocessor C language keyword token values
264887Schin  * handles classic, ANSI and C++
274887Schin  * additional non-standard keyword tokens are
284887Schin  * crammed into T_NOISE and T_X_*
294887Schin  */
304887Schin 
314887Schin #ifndef _PPKEY_H
324887Schin #define _PPKEY_H
334887Schin 
344887Schin /*
354887Schin  * NOTE: preserve the ranges for is*()
364887Schin  */
374887Schin 
384887Schin #define ppisnoise(x)	((x)>=T_NOISE&&(x)<T_KEYWORD)
394887Schin 
404887Schin /*
414887Schin  * classic
424887Schin  */
434887Schin 
444887Schin #define T_AUTO		(T_TOKEN+0)
454887Schin #define T_BREAK		(T_TOKEN+1)
464887Schin #define T_CASE		(T_TOKEN+2)
474887Schin #define T_CHAR		(T_TOKEN+3)
484887Schin #define T_CONTINUE	(T_TOKEN+4)
494887Schin #define T_DEFAULT	(T_TOKEN+5)
504887Schin #define T_DO		(T_TOKEN+6)
514887Schin #define T_DOUBLE_T	(T_TOKEN+7)
524887Schin #define T_ELSE		(T_TOKEN+8)
534887Schin #define T_EXTERN	(T_TOKEN+9)
544887Schin #define T_FLOAT_T	(T_TOKEN+10)
554887Schin #define T_FOR		(T_TOKEN+11)
564887Schin #define T_GOTO		(T_TOKEN+12)
574887Schin #define T_IF		(T_TOKEN+13)
584887Schin #define T_INT		(T_TOKEN+14)
594887Schin #define T_LONG		(T_TOKEN+15)
604887Schin #define T_REGISTER	(T_TOKEN+16)
614887Schin #define T_RETURN	(T_TOKEN+17)
624887Schin #define T_SHORT		(T_TOKEN+18)
634887Schin #define T_SIZEOF	(T_TOKEN+19)
644887Schin #define T_STATIC	(T_TOKEN+20)
654887Schin #define T_STRUCT	(T_TOKEN+21)
664887Schin #define T_SWITCH	(T_TOKEN+22)
674887Schin #define T_TYPEDEF	(T_TOKEN+23)
684887Schin #define T_UNION		(T_TOKEN+24)
694887Schin #define T_UNSIGNED	(T_TOKEN+25)
704887Schin #define T_WHILE		(T_TOKEN+26)
714887Schin 
724887Schin /*
734887Schin  * ANSI
744887Schin  */
754887Schin 
764887Schin #define T_CONST		(T_TOKEN+27)
774887Schin #define T_ENUM		(T_TOKEN+28)
784887Schin #define T_SIGNED	(T_TOKEN+29)
794887Schin #define T_VOID		(T_TOKEN+30)
804887Schin #define T_VOLATILE	(T_TOKEN+31)
814887Schin 
824887Schin /*
834887Schin  * C++
844887Schin  */
854887Schin 
864887Schin #define T_ASM		(T_TOKEN+32)
874887Schin #define T_BOOL		(T_TOKEN+33)
884887Schin #define T_CATCH		(T_TOKEN+34)
894887Schin #define T_CLASS		(T_TOKEN+35)
904887Schin #define T_CONST_CAST	(T_TOKEN+36)
914887Schin #define T_DELETE	(T_TOKEN+37)
924887Schin #define T_DYNAMIC_CAST	(T_TOKEN+38)
934887Schin #define T_EXPLICIT	(T_TOKEN+39)
944887Schin #define T_FALSE		(T_TOKEN+40)
954887Schin #define T_FRIEND	(T_TOKEN+41)
964887Schin #define T_INLINE	(T_TOKEN+42)
974887Schin #define T_MUTABLE	(T_TOKEN+43)
984887Schin #define T_NAMESPACE	(T_TOKEN+44)
994887Schin #define T_NEW		(T_TOKEN+45)
1004887Schin #define T_OPERATOR	(T_TOKEN+46)
1014887Schin #define T_OVERLOAD	(T_TOKEN+47)
1024887Schin #define T_PRIVATE	(T_TOKEN+48)
1034887Schin #define T_PROTECTED	(T_TOKEN+49)
1044887Schin #define T_PUBLIC	(T_TOKEN+50)
1054887Schin #define T_REINTERPRET_CAST (T_TOKEN+51)
1064887Schin #define T_STATIC_CAST	(T_TOKEN+52)
1074887Schin #define T_TEMPLATE	(T_TOKEN+53)
1084887Schin #define T_THIS		(T_TOKEN+54)
1094887Schin #define T_THROW		(T_TOKEN+55)
1104887Schin #define T_TRUE		(T_TOKEN+56)
1114887Schin #define T_TRY		(T_TOKEN+57)
1124887Schin #define T_TYPEID	(T_TOKEN+58)
1134887Schin #define T_USING		(T_TOKEN+59)
1144887Schin #define T_VIRTUAL	(T_TOKEN+60)
1154887Schin #define T_WCHAR_T	(T_TOKEN+61)
1164887Schin 
1174887Schin /*
1184887Schin  * future
1194887Schin  */
1204887Schin 
1214887Schin #define T_INT64		(T_TOKEN+62)
1224887Schin 
1234887Schin /*
1244887Schin  * non-standard
1254887Schin  */
1264887Schin 
1274887Schin #define T_BUILTIN	(T_TOKEN+63)
1284887Schin #define T_NOISES	(T_TOKEN+64)
1294887Schin #define T_NOISE		(T_TOKEN+65)
1304887Schin #define T_X_GROUP	(T_TOKEN+66)
1314887Schin #define T_X_LINE	(T_TOKEN+67)
1324887Schin #define T_X_STATEMENT	(T_TOKEN+68)
1334887Schin 
1344887Schin /*
1354887Schin  * first available keyword token value
1364887Schin  */
1374887Schin 
1384887Schin #define T_KEYWORD	(T_TOKEN+69)
1394887Schin 
1404887Schin /*
1414887Schin  * implementation globals
1424887Schin  */
1434887Schin 
1444887Schin extern struct ppkeyword	ppkey[];
1454887Schin 
1464887Schin #endif
147