1/*
2 *
3 * Glenn Fowler
4 * AT&T Research
5 *
6 * @(#)pp.tab (AT&T Labs Research) 2006-05-09
7 *
8 * C preprocessor tables and states
9 *
10 * + marks extensions to the standard
11 *
12 */
13
14#define DEFINE	1
15#define ELIF	2
16#define ELSE	3
17#define ENDIF	4
18#define ENDMAC	5
19#define ERROR	6
20#define IF	7
21#define IFDEF	8
22#define IFNDEF	9
23#define INCLUDE	10
24#define LET	11
25#define LINE	12
26#define MACDEF	13
27#define PRAGMA	14
28#define RENAME	15
29#define UNDEF	16
30#define WARNING	17
31
32#define X_ALLMULTIPLE	1
33#define X_ALLPOSSIBLE	2
34#define X_BUILTIN	3
35#define X_CATLITERAL	4
36#define X_CDIR	5
37#define X_CHECKPOINT	6
38#define X_CHOP	7
39#define X_COMPATIBILITY	8
40#define X_DEBUG	9
41#define X_ELSEIF	10
42#define X_EXTERNALIZE	11
43#define X_FINAL	12
44#define X_HIDE	13
45#define X_HEADEREXPAND	14
46#define X_HEADEREXPANDALL	15
47#define X_HOSTED	16
48#define X_HOSTEDTRANSITION	17
49#define X_HOSTDIR	18
50#define X_ID	19
51#define X_IGNORE	20
52#define X_INCLUDE	21
53#define X_INITIAL	22
54#define X_KEYARGS	23
55#define X_LINE	24
56#define X_LINEBASE	25
57#define X_LINEFILE	26
58#define X_LINEID	27
59#define X_LINETYPE	28
60#define X_MACREF	29
61#define X_MAP	30
62#define X_MAPINCLUDE	31
63#define X_MODERN	32
64#define X_MULTIPLE	33
65#define X_NATIVE	34
66#define X_NOTE	35
67#define X_OPSPACE	36
68#define X_PASSTHROUGH	37
69#define X_PEDANTIC	38
70#define X_PLUSCOMMENT	39
71#define X_PLUSPLUS	40
72#define X_PLUSSPLICE	41
73#define X_PRAGMAFLAGS	42
74#define X_PRAGMAEXPAND	43
75#define X_PREDEFINED	44
76#define X_PREFIX	45
77#define X_PRESERVE	46
78#define X_PROTO	47
79#define X_PROTOTYPED	48
80#define X_QUOTE	49
81#define X_READONLY	50
82#define X_REGUARD	51
83#define X_RESERVED	52
84#define X_SPACEOUT	53
85#define X_SPLICECAT	54
86#define X_SPLICESPACE	55
87#define X_STANDARD	56
88#define X_STATEMENT	57
89#define X_STRICT	58
90#define X_STRINGSPAN	59
91#define X_STRINGSPLIT	60
92#define X_SYSTEM_HEADER	61
93#define X_TEST	62
94#define X_TEXT	63
95#define X_TRANSITION	64
96#define X_TRUNCATE	65
97#define X_VENDOR	66
98#define X_VERSION	67
99#define X_WARN	68
100#define X_ZEOF	69
101#define X_last_option	69
102
103#define X_DEFINED	70
104#define X_EXISTS	71
105#define X_INCLUDED	72
106#define X_MATCH	73
107#define X_NOTICED	74
108#define X_OPTION	75
109#define X_SIZEOF	76
110#define X_STRCMP	77
111
112#define R_DEFINED	1
113
114#define ADD	(1<<0)
115#define COLLECTING	(1<<1)
116#define COMPATIBILITY	(1<<2)
117#define COMPILE	(1<<3)
118#define CONDITIONAL	(1<<4)
119#define DEFINITION	(1<<5)
120#define DIRECTIVE	(1<<6)
121#define DISABLE	(1<<7)
122#define EOF2NL	(1<<8)
123#define ESCAPE	(1<<9)
124#define FILEPOP	(1<<10)
125#define HEADER	(1<<11)
126#define HIDDEN	(1<<12)
127#define JOINING	(1<<13)
128#define NEWLINE	(1<<14)
129#define NOEXPAND	(1L<<15)
130#define NOSPACE	(1L<<16)
131#define NOTEXT	(1L<<17)
132#define NOVERTICAL	(1L<<18)
133#define PASSEOF	(1L<<19)
134#define PASSTHROUGH	(1L<<20)
135#define QUOTE	(1L<<21)
136#define SKIPCONTROL	(1L<<22)
137#define SKIPMACRO	(1L<<23)
138#define SPACEOUT	(1L<<24)
139#define SQUOTE	(1L<<25)
140#define STANDALONE	(1L<<26)
141#define STRICT	(1L<<27)
142#define STRIP	(1L<<28)
143#define SYNCLINE	(1L<<29)
144#define TRANSITION	(1L<<30)
145#define WARN	(1L<<31)
146
147#define ALLMULTIPLE	(1<<0)
148#define BUILTIN	(1<<1)
149#define CATLITERAL	(1<<2)
150#define DUMP	(1<<3)
151#define EXPOSE	(1<<4)
152#define EXTERNALIZE	(1<<5)
153#define FILEDEPS	(1<<6)
154#define GENDEPS	(1<<7)
155#define HEADERDEPS	(1<<8)
156#define HOSTED	(1<<9)
157#define HOSTEDTRANSITION	(1<<10)
158#define INACTIVE	(1<<11)
159#define INIT	(1<<12)
160#define LOADING	(1<<13)
161#define MARKC	(1<<14)
162#define MARKHOSTED	(1L<<15)
163#define MARKMACRO	(1L<<16)
164#define PEDANTIC	(1L<<17)
165#define READONLY	(1L<<18)
166#define RELAX	(1L<<19)
167
168#define ALLPOSSIBLE	(1<<0)
169#define DEFINITIONS	(1<<1)
170#define ELSEIF	(1<<2)
171#define FINAL	(1<<3)
172#define HEADEREXPAND	(1<<4)
173#define HEADEREXPANDALL	(1<<5)
174#define IGNORELINE	(1<<6)
175#define INITIAL	(1<<7)
176#define KEEPNOTEXT	(1<<8)
177#define KEYARGS	(1<<9)
178#define MODERN	(1<<10)
179#define NATIVE	(1<<11)
180#define NOHASH	(1<<12)
181#define NOISE	(1<<13)
182#define NOISEFILTER	(1<<14)
183#define NOPROTO	(1L<<15)
184#define PLUSCOMMENT	(1L<<16)
185#define PLUSPLUS	(1L<<17)
186#define PLUSSPLICE	(1L<<18)
187#define PRAGMAEXPAND	(1L<<19)
188#define PREDEFINED	(1L<<20)
189#define PREDEFINITIONS	(1L<<21)
190#define PREFIX	(1L<<22)
191#define PRESERVE	(1L<<23)
192#define PROTOTYPED	(1L<<24)
193#define REGUARD	(1L<<25)
194#define SPLICECAT	(1L<<26)
195#define SPLICESPACE	(1L<<27)
196#define STRINGSPAN	(1L<<28)
197#define STRINGSPLIT	(1L<<29)
198#define TRUNCATE	(1L<<30)
199#define ZEOF	(1L<<31)
200
201#define V__PRAGMA	78
202#define V_ARGC	79
203#define V_BASE	80
204#define V_DATE	81
205#define V_FILE	82
206#define V_FUNCTION	83
207#define V_LINE	84
208#define V_PATH	85
209#define V_SOURCE	86
210#define V_STDC	87
211#define V_TIME	88
212#define V_VERSION	89
213#define V_DEFAULT	90
214#define V_DIRECTIVE	91
215#define V_EMPTY	92
216#define V_GETENV	93
217#define V_GETMAC	94
218#define V_GETOPT	95
219#define V_GETPRD	96
220#define V_ITERATE	97
221