xref: /onnv-gate/usr/src/lib/libpp/i386/pptab.h (revision 4887:feebf9260c2e)
1*4887Schin /*
2*4887Schin  *
3*4887Schin  * Glenn Fowler
4*4887Schin  * AT&T Research
5*4887Schin  *
6*4887Schin  * @(#)pp.tab (AT&T Labs Research) 2006-05-09
7*4887Schin  *
8*4887Schin  * C preprocessor tables and states
9*4887Schin  *
10*4887Schin  * + marks extensions to the standard
11*4887Schin  *
12*4887Schin  */
13*4887Schin 
14*4887Schin static struct ppkeyword directives[] =
15*4887Schin {
16*4887Schin 	"define",	DEFINE,
17*4887Schin 	"elif",	ELIF,
18*4887Schin 	"else",	ELSE,
19*4887Schin 	"endif",	ENDIF,
20*4887Schin 	"+endmac",	ENDMAC,
21*4887Schin 	"error",	ERROR,
22*4887Schin 	"if",	IF,
23*4887Schin 	"ifdef",	IFDEF,
24*4887Schin 	"ifndef",	IFNDEF,
25*4887Schin 	"include",	INCLUDE,
26*4887Schin 	"+let",	LET,
27*4887Schin 	"line",	LINE,
28*4887Schin 	"+macdef",	MACDEF,
29*4887Schin 	"pragma",	PRAGMA,
30*4887Schin 	"+rename",	RENAME,
31*4887Schin 	"undef",	UNDEF,
32*4887Schin 	"+warning",	WARNING,
33*4887Schin 	0,	0
34*4887Schin };
35*4887Schin 
36*4887Schin static struct ppkeyword options[] =
37*4887Schin {
38*4887Schin 	"allmultiple",	X_ALLMULTIPLE,
39*4887Schin 	"allpossible",	X_ALLPOSSIBLE,
40*4887Schin 	"builtin",	X_BUILTIN,
41*4887Schin 	"catliteral",	X_CATLITERAL,
42*4887Schin 	"cdir",	X_CDIR,
43*4887Schin 	"checkpoint",	X_CHECKPOINT,
44*4887Schin 	"chop",	X_CHOP,
45*4887Schin 	"compatibility",	X_COMPATIBILITY,
46*4887Schin 	"debug",	X_DEBUG,
47*4887Schin 	"elseif",	X_ELSEIF,
48*4887Schin 	"externalize",	X_EXTERNALIZE,
49*4887Schin 	"final",	X_FINAL,
50*4887Schin 	"hide",	X_HIDE,
51*4887Schin 	"headerexpand",	X_HEADEREXPAND,
52*4887Schin 	"headerexpandall",	X_HEADEREXPANDALL,
53*4887Schin 	"hosted",	X_HOSTED,
54*4887Schin 	"hostedtransition",	X_HOSTEDTRANSITION,
55*4887Schin 	"hostdir",	X_HOSTDIR,
56*4887Schin 	"id",	X_ID,
57*4887Schin 	"ignore",	X_IGNORE,
58*4887Schin 	"include",	X_INCLUDE,
59*4887Schin 	"initial",	X_INITIAL,
60*4887Schin 	"keyargs",	X_KEYARGS,
61*4887Schin 	"line",	X_LINE,
62*4887Schin 	"linebase",	X_LINEBASE,
63*4887Schin 	"linefile",	X_LINEFILE,
64*4887Schin 	"lineid",	X_LINEID,
65*4887Schin 	"linetype",	X_LINETYPE,
66*4887Schin 	"macref",	X_MACREF,
67*4887Schin 	"map",	X_MAP,
68*4887Schin 	"mapinclude",	X_MAPINCLUDE,
69*4887Schin 	"modern",	X_MODERN,
70*4887Schin 	"multiple",	X_MULTIPLE,
71*4887Schin 	"native",	X_NATIVE,
72*4887Schin 	"note",	X_NOTE,
73*4887Schin 	"opspace",	X_OPSPACE,
74*4887Schin 	"passthrough",	X_PASSTHROUGH,
75*4887Schin 	"pedantic",	X_PEDANTIC,
76*4887Schin 	"pluscomment",	X_PLUSCOMMENT,
77*4887Schin 	"plusplus",	X_PLUSPLUS,
78*4887Schin 	"plussplice",	X_PLUSSPLICE,
79*4887Schin 	"pragmaflags",	X_PRAGMAFLAGS,
80*4887Schin 	"pragmaexpand",	X_PRAGMAEXPAND,
81*4887Schin 	"predefined",	X_PREDEFINED,
82*4887Schin 	"prefix",	X_PREFIX,
83*4887Schin 	"preserve",	X_PRESERVE,
84*4887Schin 	"proto",	X_PROTO,
85*4887Schin 	"prototyped",	X_PROTOTYPED,
86*4887Schin 	"quote",	X_QUOTE,
87*4887Schin 	"readonly",	X_READONLY,
88*4887Schin 	"reguard",	X_REGUARD,
89*4887Schin 	"reserved",	X_RESERVED,
90*4887Schin 	"spaceout",	X_SPACEOUT,
91*4887Schin 	"splicecat",	X_SPLICECAT,
92*4887Schin 	"splicespace",	X_SPLICESPACE,
93*4887Schin 	"standard",	X_STANDARD,
94*4887Schin 	"statement",	X_STATEMENT,
95*4887Schin 	"strict",	X_STRICT,
96*4887Schin 	"stringspan",	X_STRINGSPAN,
97*4887Schin 	"stringsplit",	X_STRINGSPLIT,
98*4887Schin 	"system_header",	X_SYSTEM_HEADER,
99*4887Schin 	"test",	X_TEST,
100*4887Schin 	"text",	X_TEXT,
101*4887Schin 	"transition",	X_TRANSITION,
102*4887Schin 	"truncate",	X_TRUNCATE,
103*4887Schin 	"vendor",	X_VENDOR,
104*4887Schin 	"version",	X_VERSION,
105*4887Schin 	"warn",	X_WARN,
106*4887Schin 	"zeof",	X_ZEOF,
107*4887Schin 	0,	0
108*4887Schin };
109*4887Schin 
110*4887Schin static struct ppkeyword predicates[] =
111*4887Schin {
112*4887Schin 	"defined",	X_DEFINED,
113*4887Schin 	"+exists",	X_EXISTS,
114*4887Schin 	"+included",	X_INCLUDED,
115*4887Schin 	"+match",	X_MATCH,
116*4887Schin 	"+noticed",	X_NOTICED,
117*4887Schin 	"+option",	X_OPTION,
118*4887Schin 	"sizeof",	X_SIZEOF,
119*4887Schin 	"+strcmp",	X_STRCMP,
120*4887Schin 	0,	0
121*4887Schin };
122*4887Schin 
123*4887Schin static struct ppkeyword readonlys[] =
124*4887Schin {
125*4887Schin 	"defined",	R_DEFINED,
126*4887Schin 	0,	0
127*4887Schin };
128*4887Schin 
129*4887Schin static struct ppkeyword variables[] =
130*4887Schin {
131*4887Schin 	"_Pragma",	V__PRAGMA,
132*4887Schin 	"+ARGC",	V_ARGC,
133*4887Schin 	"+BASE",	V_BASE,
134*4887Schin 	"DATE",	V_DATE,
135*4887Schin 	"FILE",	V_FILE,
136*4887Schin 	"+FUNCTION",	V_FUNCTION,
137*4887Schin 	"LINE",	V_LINE,
138*4887Schin 	"+PATH",	V_PATH,
139*4887Schin 	"+SOURCE",	V_SOURCE,
140*4887Schin 	"-STDC",	V_STDC,
141*4887Schin 	"TIME",	V_TIME,
142*4887Schin 	"+VERSION",	V_VERSION,
143*4887Schin 	"-default",	V_DEFAULT,
144*4887Schin 	"-directive",	V_DIRECTIVE,
145*4887Schin 	"-empty",	V_EMPTY,
146*4887Schin 	"-getenv",	V_GETENV,
147*4887Schin 	"-getmac",	V_GETMAC,
148*4887Schin 	"-getopt",	V_GETOPT,
149*4887Schin 	"-getprd",	V_GETPRD,
150*4887Schin 	"-iterate",	V_ITERATE,
151*4887Schin 	0,	0
152*4887Schin };
153