da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlibpp change history
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ----- minor sync release -----
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin09/11/89 add extra sun style 1,2 arg to line syncs in ppline with pp:linetype
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add pp:oldc to convert __STDC__ void* and prototypes to old C
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/11/89 fix <...> include dir bug
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/08/89 add SYM_INIT for #define during INIT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/28/89 delete STRIPTOP, STRIP only T_STRING & T_CHARCONST at pp.level==1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add ppcargs() compatibility command line argument parse
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/17/89 dialect: ANSI (default) or (Reiser) compatibility
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin style: extended (default) or strict
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin use pathprobe(3) for dynamic ppdefault.h
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_PROBE to specify pathprobe() processor
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add -[DI]+ to invert options in ppargs()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin delete PP_ANSI, PP_DIALECT, PP_INITDIR, PP_LANGUAGE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin delete PP_NONHOSTED, PP_NOPASSTHROUGH, PP_PHASEOUT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add #pragma's for most ppargs() options
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add #option(pragma-option) predicate test
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin PP_MACREF now called during initialization
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/11/89 add PP_BUILTIN for external #(...) handler
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add line number to missing endif message
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ignore errors in skipped ppexpr() &&, || and ?: subexpressions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add space before macro actual in replacement text
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/04/89 fix PP_TRUNCATE interaction with PP_COMPILE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/30/89 #define x #; x was recognized as directive #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/27/89 don't pass comments during #if skip
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin05/01/89 add L"..." and L'...' wide quoted constants
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin mixed "..." and L"..." ok -- L"..." for COMPILE, first otherwise
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix PASSCOMMENTS in directives
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin allow #define f(a,) for COMPATIBILITY
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix literal string concatenation bugs
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix header parsing in non-active if-blocks
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #endmac now takes no arg
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/11/89 tone down unknown directive diagnostic in conditional
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/07/89 move macref call before arg processing
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/27/89 fix pplex bug that bombed line sync for last line == #include
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/15/89 fix PP_TRUNCATE macro id bit table checks
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin remove compatibility option s from ppargs() -- belongs in cmds
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/08/89 remove ``empty character constant'' warning for PASSTHROUGH
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/28/89 fix variable n usage conflict for DEFINE: in ppcontrol
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/22/89 fix -T conflict with __GNUC__ in ppargs
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/01/89 add -T (PP_TRUNCATE) for old non-flexname compiler compatibility
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/31/89 -I-M-<char><suffix> finds map file by mapping input file name
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin -I-H[directory] allowed for fine hosted control
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/24/89 fix #undef of SYM_READONLY macro message
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PPCOMPATIBLE for compatibility installation in /lib/cpp
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_MAP & -I-M to map include files for minimal including
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/18/89 fix pp.token setting by noting with pp.state|=TOKENSET
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/11/89 fix #if skip bug where quoted token set begin line state
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/11/88 add error checking wrappers to *alloc()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/05/88 add PP_FILEDEPS (-M) and FILEDEPS mode for BSD compatibility
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/01/88 add #macdef-#endmac and change actualsync() char to SYNC ('\r')
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin11/30/88 TOKOUTBUF controls 11/28/88 STANDALONE speedup
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin11/28/88 speed up STANDALONE by avoiding pp.token copy
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin11/22/88 add comment removal to string_special
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin11/11/88 LIBEXPR enables expr(3) in ppexpr() (12K extra text)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/11/88 move VARQUOTE to pp.mode
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/01/88 allow checkpoint files for !STANDALONE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/31/88 add pp.undefsym for pp.macref's on undefined symbols
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/23/88 0xe+N -> `0xe' `+' `N'
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/16/88 fix ppckeys.c: T_DOUBLE->T_DOUBLE_T, T_FLOAT->T_FLOAT_T
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/17/88 add \newline to string_special
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add line number arg to pp.comment call
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin move private stuff from pp.h to pplib.h
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add ignored -v to ppargs() (GNU uses this)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/22/88 move pp.macref check; stack pp.state in ppcontrol()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_INCREF and (*pp.incref)(old-file, new-file, push|return)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/11/88 add pp.macref
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add ppckeys.h and C, C++ and pcc-based C keyword tables
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/01/88 convert to new hash library interface
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin05/31/88 pp:readonly in PP_INIT only for STRICT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin05/11/88 T_MOREARGS -> T_VARIADIC; add SYM_VARIADIC for ... last macro arg
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin05/03/88 fix empty include file bug by omitting empty check
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/27/88 ignore space in pragma % maps to accomodate SCCS %.% expansion
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/19/88 change pp.h to check for old nmake cpp clash with ppsymbol
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/11/88 fix flag check bug in ppload()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/29/88 add MAP_ECHO and %E for MAP_RESCAN + echo
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin PP_INITDIR inserted before PP_STANDARD during initialization
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/18/88 ignore malformed #'s in COMPATIBILITY macro definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add pp.prefix, PP_PREFIX and -I-P for prefix dir "..." includes
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/10/88 add NOQUOTE to disable ' and " and decouple from VARQUOTE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add keyword and quote pragmas
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/02/88 add strcmp builtin predicate for token string value comparison
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/24/88 fix <backslash><newline> handling in #define on bsd
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/20/88 add %T and fix %[...] pragma mapping formats
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/11/88 complete 12/11/87 COMPATIBILITY macro arg /**/ pasting bug fix
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin complete KEYWORD support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/08/88 add PP_KEYWORD, (pp.state & KEYWORD), -D-K and #if KEYARGS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/06/88 hex char constants are now variable length
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin01/04/88 do not add terminator for COMPATIBILITY " and ' constants
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/11/87 remove #multiple in lieu of #pragma multiple
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add %R MAP_RESCAN option to rescan pragma/directive mapping
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix COMPATIBILITY macro arg /**/ pasting bug
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/08/87 recode for updated hash library interface
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add T_PTRMEMREF ->* and T_DOTREF .* C++ operator tokens
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/01/87 reorganize pp token numbers to span 0401..0477
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin11/22/87 add operand error checks to ppexpr()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_DEFAULT and -I-Dfile for fine PPDEFAULT control
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin11/11/87 pppragma() now omits space after # for primitive passes (uts)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/30/87 fix line count on `newline' in ['"] constant warning
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/29/87 add MAP_PLUSCOMMENT and %P to pragma|directive mapping
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/28/87 add head & tail args to ppcomment; pass // comments as is
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/23/87 add warning for multiple ppop(PP_LOCAL) calls
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/16/87 change PP_HOSTED to PP_HOSTDIR, add PP_HOSTED and PP_NONHOSTED
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add #(BASE) that expands to base name of #(FILE)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/15/87 for PASSTHROUGH each line of multi-line "..." or '...' is a token
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/14/87 add ppmultiple() for multiple include test ops
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/11/87 delete CONVERTASSIGN -> `=<op>' no longer recognized
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin delete C++ := -> = conversion
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix COMPATIBILITY macro recursion bug
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add `#pragma multiple' equivalent to `#multiple'
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/06/87 split pplex.c adding ppdirective.c and ppbuiltin.c
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin don't recognize obsolete assignments for PLUSPLUS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/05/87 fix PLUSPLUS PASSCOMMENTS bug `// */' -> `/* ***/'
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin10/01/87 allow newlines in ' and " constants for PASSTHROUGH
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin09/28/87 fix CONVERTCC STRICT bug that omitted octal character constants
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add CATLITERAL compile switch for adjacent string literal concatenation
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix "\07" "3" -> "\073" string literal concatenation bug -> "\0073"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin09/18/87 complete ppdump() and ppload() checkpoint support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin09/17/87 fix macro formal bug that didn't update pointers after realloc()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_DONE complement op to PP_INIT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add SYM_BUILTIN and #pragma pp:builtin to note builtin macros
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_DUMP, -D-D and #pragma pp:load checkpoint support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/20/87 fix bug that omitted some actualsync() calls for '\n' in pp.in->actual
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/19/87 fix pp.linesync==0 && PASSTHROUGH bug that omitted '\n' after "token"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin08/11/87 fix #($var) null pointer bug
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/31/87 fix linesync bug for comment after #include in PASSCOMMENTS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/24/87 add PP_NOPASSTHROUGH
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/16/87 fix predicate missing # ambiguity warning
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin07/09/87 fix `macro("@*")' bug in expand_special()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/17/87 fix comment error message check that was off by one line
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/16/87 remove #pragma pp:multiple; add #multiple; retain PP_MULTIPLE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/08/87 add # operator to disambiguate predicate tests
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin inhibit more warnings on hosted files
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin make diagnostics more consistent -- a little more work
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin PP_READ files and their included files always marked hosted
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin06/05/87 fix macro actual arg collection with imbedded #include, #line
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin05/28/87 add `#pragma pp:multiple *' to mark all files multiple
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add -D-M for command line equivalent to `#pragma pp:multiple *'
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin05/01/87 clarify HOSTED and SYM_PREDEFINED
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/24/87 split pplex.c into smaller files -- too big for some compilers
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin move common wrapper routines into the library
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix ppargs() to cooperate with other option parsers
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/22/87 remove getenv("PPSTANDARD") override of PP_STANDARD
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/21/87 replace yacc parser with recursive expr() from library streval()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/20/87 add #((<expr>)) expression evaluation on (x)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add #(<sym>=<expr>) to dynamically evaluate macro values
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/11/87 home brew output buffering for PP_STANDALONE -- up to 10%
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin cleanup
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/10/87 change T_STRING concatenation in preparation for new output buffering
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/09/87 fix character constant conversion warnings
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/07/87 fix \\n and ??/\n bugs in comment scan
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/06/87 add DIGIT, HEX, OCTAL and NONOCTAL case classes to ppdefs.h
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin use GETCHR() and ISSPECIAL() in outer pplex() loop -- up to 10%
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix macro actual arg count test
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/03/87 add PP_TEST and TEST1, TEST2 to mode for internal tests
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/02/87 delete PPDEFAULT and generalize with PP_READ
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin note `# <line> "<file>"' as non-standard
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add check for malloc() out of space
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin04/01/87 C specific error messages only if language="C"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin C++ specific error messages only if language="C++"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/31/87 delete command() predicate -- gateway for trojan horse
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/30/87 add dialect() and language() builtin predicates
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin change in->standard to in->hosted and STANDARD to HOSTED
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_HOSTED and change PP_NOSTANDARD to PP_NOHOSTED
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ignore #pragma for non-hosted files in STRICT dialect
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/27/87 add predop(); delete pp:plusplus
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin pp:dialect and pp:language for verification only
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/24/87 ----- first release -----
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/24/87 ----- first release -----
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/23/87 allow WARN to apply to all dialects
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix pp:directive `...multiple...' warning
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add MAP_NEWLINE to separate multiple pragmas
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/22/87 warn about null macro args for STRICT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PP_LANGUAGE, `#pragma language [language]'
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin warn about newline in macro call arguments in directives
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin warn about directives in macro call arguments for STRICT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin validate character constants in #if expressions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/20/87 add PP_DIRECTIVE and PP_LOCAL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add %I (ignore) map format and allow %X for pragma args
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/19/87 change PP_DEFAULT to PP_STANDARD, add PP_DIALECT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add dialect arg to PP_COMPATIBILITY, PP_DIALECT and PP_STRICT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add `#pragma pp:pragma pass:option format' mapping
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/18/87 delete pp:obsolete; fix `#pragma version'
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fixed macro stack frame bug during recursive macro arg expansion
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin change CONFORMING, PP_CONFORMING to STRICT, PP_STRICT
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add `#pragma dialect [dialect]' verification
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/17/87 add PP_NOSTANDARD to disable any special handling of std files
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin refine mkdefault.sh for sun workstations
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin remove comma operator from pp.yacc since it implies side effects
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add argument type checking for pp:directive and pp:obsolete
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/16/87 refine CONFORMING messages
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin disambiguate most #assert/#define clashes
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add PASSCOMMENT and (*ppcomment)() for old lint fans
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/14/87 #undef in pp:readonly marks id as readonly macro
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/11/87 warn about macros that are predicates in #if expressions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add mode to handle uncoupled flag bit overflow from state
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin03/04/87 fix COMPATIBILITY to expand a macro in its definition
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/24/87 add gentab.sh and mkdefault.sh to Makefile
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/20/87 add IN_RECURSIVE for proper handling of #(...)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/16/87 add #unassert; PP_WARN & WARN to note obsolete usage
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin only recognize directive if # is first char for (state&COMPATIBILITY)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin generalize gentab.sh and retrofit pp.tab
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin change in->name.file to be the name of including file
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/13/87 add pp.tab; PP_PRAGMA "x=y" -> "#pragma x y"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add #(x y...) -> "#x y..." for recursive directive evaluation
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/12/87 #pragma [pass:] [no]option [arg ...]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #pragma pp:[no]directive [pass:]<new-directive>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #pragma pp:id <identifier-character>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/11/87 distribute post-token switch in pplex() to individual cases (~5%)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/09/87 clarify invalid numeric token gobble
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add VARQUOTE & PP_VARQUOTE for `X...X vs. '...' & "..." constants
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/06/87 change STRICT to CONFORMING; add PP_CONFORMING
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/06/87 change PPBUILTIN to #(<id>)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/05/87 clarify /*...*/ concatenation for (state&COMPATIBILITY)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin add convertcc() to convert new char const to old style
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin rework # op to work with convertcc()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/04/87 add =<op> obsolete operators for (state&COMPATIBILITY)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin02/02/87 fix expand() to save and restore (state&DISABLE)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin12/17/86 first code