diff options
Diffstat (limited to 'usr/src/lib/libpp/common/pp.tab')
-rw-r--r-- | usr/src/lib/libpp/common/pp.tab | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/usr/src/lib/libpp/common/pp.tab b/usr/src/lib/libpp/common/pp.tab new file mode 100644 index 0000000000..30a576d404 --- /dev/null +++ b/usr/src/lib/libpp/common/pp.tab @@ -0,0 +1,233 @@ +# +# Glenn Fowler +# AT&T Research +# +# @(#)pp.tab (AT&T Labs Research) 2006-05-09 +# +# C preprocessor tables and states +# +# + marks extensions to the standard +# + +%keywords "static struct ppkeyword directives" + + define + elif + else + endif + +endmac + error + if + ifdef + ifndef + include + +let + line + +macdef + pragma + +rename + undef + +warning + +%keywords "static struct ppkeyword options" prefix=X_ index=optindex last=last_option + + allmultiple + allpossible + builtin + catliteral + cdir + checkpoint + chop + compatibility + debug + elseif + externalize + final + hide + headerexpand + headerexpandall + hosted + hostedtransition + hostdir + id + ignore + include + initial + keyargs + line + linebase + linefile + lineid + linetype + macref + map + mapinclude + modern + multiple + native + note + opspace + passthrough + pedantic + pluscomment + plusplus + plussplice + pragmaflags + pragmaexpand + predefined + prefix + preserve + proto + prototyped + quote + readonly + reguard + reserved + spaceout + splicecat + splicespace + standard + statement + strict + stringspan + stringsplit + system_header + test + text + transition + truncate + vendor + version + warn + zeof + +%keywords "static struct ppkeyword predicates" prefix=X_ index=optindex + + defined + +exists + +included + +match + +noticed + +option + sizeof + +strcmp + +%keywords "static struct ppkeyword readonlys" prefix=R_ + + defined + +%flags # state : coupled, high frequency + + ADD # add pp.addbuf into output buffer + COLLECTING # collecting macro call arguments + COMPATIBILITY # compatibility (Reiser) dialect + COMPILE # tokenize for compiler + CONDITIONAL # processing #[el]if directive + DEFINITION # processing macro definition + DIRECTIVE # processing directive + DISABLE # disable macro evaluation + EOF2NL # pass eof as newline token + ESCAPE # \ -> \\ in QUOTE|SQUOTE + FILEPOP # 0 on IN_FILE pop - no popin + HEADER # processing include statement + HIDDEN # hidden lines encountered + JOINING # joining adjacent strings + NEWLINE # last non-space was newline + NOEXPAND # no macro expansions or disables + NOSPACE # don't pass space+ as token + NOTEXT # don't output text + NOVERTICAL # vertical space invalid + PASSEOF # pass EOF as 0 without pop + PASSTHROUGH # ppcpp expands # lines only + QUOTE # processing "..." token + SKIPCONTROL # skip until # control or EOF + SKIPMACRO # disable next macro + SPACEOUT # output spaces in STANDALONE + SQUOTE # processing '...' token + STANDALONE # output tokens on stdout + STRICT # strict implementation + STRIP # strip quotes from T_STRING and T_CHARCONST + SYNCLINE # output line sync soon + TRANSITION # on the COMPATIBILITY boundary + WARN # note obnoxious incompatibilities + +%flags # mode : coupled, low frequency + + ALLMULTIPLE # all files can be included more than once + BUILTIN # mark macro definitions builtin + CATLITERAL # concatenate adjacent "..." + DUMP # do a checkpoint dump + EXPOSE # expose hidden macros + EXTERNALIZE # set PROTO_EXTERNALIZE + FILEDEPS # output file dependencies + GENDEPS # missings FILEDEPS are generated + HEADERDEPS # <...> too for FILEDEPS + HOSTED # hosted include file + HOSTEDTRANSITION # hosted include files get __STDC__=0 + INACTIVE # inactive conditional branch + INIT # initialization phase + LOADING # loading a checkpoint file + MARKC # last ppsearch() file was in C language + MARKHOSTED # last ppsearch() file was hosted + MARKMACRO # mark macro to disable later + PEDANTIC # pedantic non-hosted non-standard warnings + READONLY # mark macro definitions readonly + RELAX # relax complaints for this directive + +%flags # options : uncoupled, low frequency + + ALLPOSSIBLE # ignore top level conditionals + DEFINITIONS # output macro definitions + ELSEIF # #else if|ifdef|ifndef ok + FINAL # final hosted macro value + HEADEREXPAND # HEADEREXPANDALL but macro args not expanded + HEADEREXPANDALL # expanded < does not quote #include macros + IGNORELINE # ignore #line until first file arg + INITIAL # initial hosted macro value + KEEPNOTEXT # keep NOTEXT setting + KEYARGS # name=value macro arguments + MODERN # generate modern output (\a instead of \007) + NATIVE # report native paths + NOHASH # don't hash PP_COMPILE T_ID's + NOISE # convert T_X_* to T_NOISES + NOISEFILTER # filter (ignore) NOISE + NOPROTO # disable ppproto() + PLUSCOMMENT # enable C++ comments + PLUSPLUS # preprocess for C++ + PLUSSPLICE # C++ // \<newline> does not splice + PRAGMAEXPAND # expand #pragma args + PREDEFINED # mark macro definitions predefined + PREDEFINITIONS # output predefined macro definitions + PREFIX # prefix include for compatibility + PRESERVE # preserve input layout + PROTOTYPED # force all input to be prototyped + REGUARD # emit header guard define at file pop + SPLICECAT # \<newline> ok for COMPATIBILITY catenation + SPLICESPACE # \<space>+<newline> == \<newline> for jcl + STRINGSPAN # <newline> in string ok + STRINGSPLIT # "...\\n..." => "..."\n"..." + TRUNCATE # truncate identifiers + ZEOF # ^Z anywhere in file => EOF + +%keywords "static struct ppkeyword variables" prefix=V_ index=optindex + + _Pragma + +ARGC + +BASE + DATE + FILE + +FUNCTION + LINE + +PATH + +SOURCE + -STDC + TIME + +VERSION + -default + -directive + -empty + -getenv + -getmac + -getopt + -getprd + -iterate |