8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / lib / libpp / common / pp.tab
blob30a576d4046bcd964320e81546cf4164752f1e4c
2 # Glenn Fowler
3 # AT&T Research
5 # @(#)pp.tab (AT&T Labs Research) 2006-05-09
7 # C preprocessor tables and states
9 # + marks extensions to the standard
12 %keywords "static struct ppkeyword directives"
14         define
15         elif
16         else
17         endif
18         +endmac
19         error
20         if
21         ifdef
22         ifndef
23         include
24         +let
25         line
26         +macdef
27         pragma
28         +rename
29         undef
30         +warning
32 %keywords "static struct ppkeyword options" prefix=X_ index=optindex last=last_option
34         allmultiple
35         allpossible
36         builtin
37         catliteral
38         cdir
39         checkpoint
40         chop
41         compatibility
42         debug
43         elseif
44         externalize
45         final
46         hide
47         headerexpand
48         headerexpandall
49         hosted
50         hostedtransition
51         hostdir
52         id
53         ignore
54         include
55         initial
56         keyargs
57         line
58         linebase
59         linefile
60         lineid
61         linetype
62         macref
63         map
64         mapinclude
65         modern
66         multiple
67         native
68         note
69         opspace
70         passthrough
71         pedantic
72         pluscomment
73         plusplus
74         plussplice
75         pragmaflags
76         pragmaexpand
77         predefined
78         prefix
79         preserve
80         proto
81         prototyped
82         quote
83         readonly
84         reguard
85         reserved
86         spaceout
87         splicecat
88         splicespace
89         standard
90         statement
91         strict
92         stringspan
93         stringsplit
94         system_header
95         test
96         text
97         transition
98         truncate
99         vendor
100         version
101         warn
102         zeof
104 %keywords "static struct ppkeyword predicates" prefix=X_ index=optindex
106         defined
107         +exists
108         +included
109         +match
110         +noticed
111         +option
112         sizeof
113         +strcmp
115 %keywords "static struct ppkeyword readonlys" prefix=R_
117         defined
119 %flags  # state : coupled, high frequency
121         ADD                     # add pp.addbuf into output buffer
122         COLLECTING              # collecting macro call arguments
123         COMPATIBILITY           # compatibility (Reiser) dialect
124         COMPILE                 # tokenize for compiler
125         CONDITIONAL             # processing #[el]if directive
126         DEFINITION              # processing macro definition
127         DIRECTIVE               # processing directive
128         DISABLE                 # disable macro evaluation
129         EOF2NL                  # pass eof as newline token
130         ESCAPE                  # \ -> \\ in QUOTE|SQUOTE
131         FILEPOP                 # 0 on IN_FILE pop - no popin
132         HEADER                  # processing include statement
133         HIDDEN                  # hidden lines encountered
134         JOINING                 # joining adjacent strings
135         NEWLINE                 # last non-space was newline
136         NOEXPAND                # no macro expansions or disables
137         NOSPACE                 # don't pass space+ as token
138         NOTEXT                  # don't output text
139         NOVERTICAL              # vertical space invalid
140         PASSEOF                 # pass EOF as 0 without pop
141         PASSTHROUGH             # ppcpp expands # lines only
142         QUOTE                   # processing "..." token
143         SKIPCONTROL             # skip until # control or EOF
144         SKIPMACRO               # disable next macro
145         SPACEOUT                # output spaces in STANDALONE
146         SQUOTE                  # processing '...' token
147         STANDALONE              # output tokens on stdout
148         STRICT                  # strict implementation
149         STRIP                   # strip quotes from T_STRING and T_CHARCONST
150         SYNCLINE                # output line sync soon
151         TRANSITION              # on the COMPATIBILITY boundary
152         WARN                    # note obnoxious incompatibilities
154 %flags  # mode : coupled, low frequency
156         ALLMULTIPLE             # all files can be included more than once
157         BUILTIN                 # mark macro definitions builtin
158         CATLITERAL              # concatenate adjacent "..."
159         DUMP                    # do a checkpoint dump
160         EXPOSE                  # expose hidden macros
161         EXTERNALIZE             # set PROTO_EXTERNALIZE
162         FILEDEPS                # output file dependencies
163         GENDEPS                 # missings FILEDEPS are generated
164         HEADERDEPS              # <...> too for FILEDEPS
165         HOSTED                  # hosted include file
166         HOSTEDTRANSITION        # hosted include files get __STDC__=0
167         INACTIVE                # inactive conditional branch
168         INIT                    # initialization phase
169         LOADING                 # loading a checkpoint file
170         MARKC                   # last ppsearch() file was in C language
171         MARKHOSTED              # last ppsearch() file was hosted
172         MARKMACRO               # mark macro to disable later
173         PEDANTIC                # pedantic non-hosted non-standard warnings
174         READONLY                # mark macro definitions readonly
175         RELAX                   # relax complaints for this directive
177 %flags # options : uncoupled, low frequency
179         ALLPOSSIBLE             # ignore top level conditionals
180         DEFINITIONS             # output macro definitions
181         ELSEIF                  # #else if|ifdef|ifndef ok
182         FINAL                   # final hosted macro value
183         HEADEREXPAND            # HEADEREXPANDALL but macro args not expanded
184         HEADEREXPANDALL         # expanded < does not quote #include macros
185         IGNORELINE              # ignore #line until first file arg
186         INITIAL                 # initial hosted macro value
187         KEEPNOTEXT              # keep NOTEXT setting
188         KEYARGS                 # name=value macro arguments
189         MODERN                  # generate modern output (\a instead of \007)
190         NATIVE                  # report native paths
191         NOHASH                  # don't hash PP_COMPILE T_ID's
192         NOISE                   # convert T_X_* to T_NOISES
193         NOISEFILTER             # filter (ignore) NOISE
194         NOPROTO                 # disable ppproto()
195         PLUSCOMMENT             # enable C++ comments
196         PLUSPLUS                # preprocess for C++
197         PLUSSPLICE              # C++ // \<newline> does not splice
198         PRAGMAEXPAND            # expand #pragma args
199         PREDEFINED              # mark macro definitions predefined
200         PREDEFINITIONS          # output predefined macro definitions
201         PREFIX                  # prefix include for compatibility
202         PRESERVE                # preserve input layout
203         PROTOTYPED              # force all input to be prototyped
204         REGUARD                 # emit header guard define at file pop
205         SPLICECAT               # \<newline> ok for COMPATIBILITY catenation
206         SPLICESPACE             # \<space>+<newline> == \<newline> for jcl
207         STRINGSPAN              # <newline> in string ok
208         STRINGSPLIT             # "...\\n..." => "..."\n"..."
209         TRUNCATE                # truncate identifiers
210         ZEOF                    # ^Z anywhere in file => EOF
212 %keywords "static struct ppkeyword variables" prefix=V_ index=optindex
214         _Pragma
215         +ARGC
216         +BASE
217         DATE
218         FILE
219         +FUNCTION
220         LINE
221         +PATH
222         +SOURCE
223         -STDC
224         TIME
225         +VERSION
226         -default
227         -directive
228         -empty
229         -getenv
230         -getmac
231         -getopt
232         -getprd
233         -iterate