2018-09-05  Matt Wette  <mwette@alumni.caltech.edu>

	* util1.scm (get-gcc-cpp-defs): removed dependence on regex

2018-04-05  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): Committed major surgery to add handling of
	attribute specifiers to be returned as attributes like
	(@ ("packed" "") ("aligned" "(__alignof__(long long))"))

2018-03-10  Matt Wette  <mwette@alumni.caltech.edu>

	* body.scm (gen-c-lexer): Worked on x-def usage.  I'm still unsure
	if read-c-ident logic is all correct.

2018-02-19  Matt Wette  <mwette@alumni.caltech.edu>

	* ../../../../examples/nyacc/lang/c99/ffi-help.scm
	(mtail->bs-desc): bug in (pointer-to typename) to (assoc-ref map
	name) from (assoc-ref name map)

2017-12-23  Matt Wette  <mwette@alumni.caltech.edu>

	* pprint.scm (pretty-print-c99): added initializer and
	initializer-list, and removed (comp declr initr)

2017-12-13  Matt Wette  <mwette@alumni.caltech.edu>

	* util1.scm (get-gcc-inc-dirs): update to use -Wp,-v.  Note this
	may break because it uses "2>&1" to get stderr.  check w/ csh
	please -- works for me

2017-12-10  Matt Wette  <mwette@alumni.caltech.edu>

	* munge.scm: note: at some point in the past changed util2.scm to
	munge.scm

2017-11-18  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (read-rest): new procedure to replace get-string-all
	from (ice-9 textual-ports); remove use-module (ice-9 textual-ports)

2017-11-15  Matt Wette  <mwette@alumni.caltech.edu>

	* pprint.scm (pretty-print-c99): added case for wide char types

2017-11-13  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): added lone `;' in structs and unions
	(struct-declaration-list production)

2017-11-11  Matt Wette  <mwette@alumni.caltech.edu>

	* body.scm (gen-c-lexer): Since include files now have <> or "" I
	need to strip them off before looking through the helper list.

	* cpp.scm (expand-cpp-macro-ref): Fixed, once again, the def-bwl.c
	bug reported by Jan N:
	was:
	  (or (expand-cpp-macro-ref repl defs (cons repl used)) repl)
	is:
	  (or (expand-cpp-macro-ref repl defs used) repl)

2017-09-20  Matt Wette  <mwette@alumni.caltech.edu>

	* pprint.scm (pretty-print-c99): added enum-ref

2017-09-04  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (expand-specl-typerefs): fixed c99-06 test 1:
	was => int (*baz)(..., now => int *(*bar)(...

2017-08-31  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (cpp-define): major bug: was using drain-input when I
	should be using get-string-all, same for cpp-line->stmt

2017-08-04  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): add GNU compound statement in paren's as expr

2017-08-01  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (eval-cpp-expr): If tree is (char x) then we need to
	apply string-ref to get argument for char->integer.
	(rtokl->string): ugh. when CPP builds strings we need to escape
	characters to reassemble.  Not sure I have done it all here.
	Needs more testing.

	* util2.scm (canize-enum-def-list): enum values more robust:
	was (p-expr (fixed "1")) or (neg (p-expr (fixed "1"))) only.

	* body.scm (gen-c-lexer): added support for CPP #warning
	(find-file-in-dirl): added logic to look in current directory
	first, if header.

2017-07-28  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (collect-args): when moving from iter1 to iter2 was
	neglecting to unread-char the character carried from iter1.  Fix
	based on bug report from janneke.  Thanks again, Jan.

2017-07-28  Wette  <mwette@alumni.caltech.edu>

	* body.scm (gen-c-lexer): bug report by janneke.
	`#undef NAME' not working; was using delete, now acons #f

	* mach.scm (c99-spec): bug report by janneke.
	ident-like returns (ident ("foo")) instead of (ident "foo");
	fixed w/ (car $1) => (sx-ref $1 1)

2017-07-16  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): change declr-fctn to abs-fctn-decl;
	declr-fctn-anon to anon-fctn-declr

2017-07-15  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): for type-qualifier-list return
	type-qual-list (was decl-spec-list)

2017-07-08  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (munge-decl): If arg is already udecl just return it.

2017-07-07  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (canize-enum-def-list): fixed so enums start at 0, was 1

2017-07-01  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): added GNU-C asm extension

2017-06-30  Matt Wette  <mwette@alumni.caltech.edu>

	* body.scm (gen-c-lexer): handle #define FOO "foo.h" #include FOO

2017-06-29  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (eval-cpp-expr): cleaned up bitwise-or,xor,and
	(cpp-include): only handled args w/ " or <, now c-ident also

2017-06-17  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (clean-field-list): fixed bug that would add comments
	when there were none at all

2017-06-16  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (munge-decl): changed (decl to (udecl

2017-06-15  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (c99-trans-unit->udict): changed to fold-right
	(canize-enum-def-list): now working for negative enum vals

2017-06-11  Matt Wette  <mwette@alumni.caltech.edu>

	* util2.scm (c99-trans-unit->udict): if include was not
	getting the include's trans-unit

2017-06-03  Matt Wette  <mwette@alumni.caltech.edu>

	* body.scm (gen-c-lexer): fixed cpp expansion to allow
	re-expansion when replacement is ident-like.  This allows
	  #define ABC(X,Y) ((X)+(Y))
	  #define DEF ABC
	  int main { int x = DEF(1,2); }
	reference: janneke bug report on def-bwl.c

2017-05-04  Matt Wette  <mwette@alumni.caltech.edu>

	* pprint.scm (pretty-print-c99): removed double spacing
	in printed declarations

2017-03-11  Matt Wette  <mwette@alumni.caltech.edu>

	* parser.scm (parse-c99): added mode keyword argument to
	gen-c-lexer, file mode would not have been working ...

2017-02-28  Matt Wette  <mwette@alumni.caltech.edu>

	* pprint.scm: (binary 'd-del .. => (binary 'd-sel

2017-02-22  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (rtokl->string): added handler for 'string

	* body.scm: added 'skip state so that if skipping #if
	then no CPP if or elif arguments are evaluated

	* cpp.scm: parse 0L numbers, convert c numbers (e.g.,
	123L) to scheme so that string->number works.  I need to update
	cnumstr->snumstr in nyacc/lex.scm.

2017-02-16  Matt Wette  <mwette@alumni.caltech.edu>

	* cpp.scm (rtokl->string): now handled symb ## arg ## symb
	(scan-cpp-input): skip-il-ws after #\(

2017-01-18  Matt Wette  <mwette@alumni.caltech.edu>

	* parser.scm: check for EOF in end of CPP line

	* mach.scm (c99-spec): decl for translation unit was
	updated to allow programs with no declarations or statements

2017-01-07  Matt Wette  <mwette@alumni.caltech.edu>

	* body.scm (read-cpp-line): cpp statement should not
	include newline?  Changed to unread final newline.

	* mach.scm (c99-spec): from
        2017-01-07 Jan Nieuwenhuizen  <janneke@gnu.org>
	mising unquote in output sx for goto: `(goto $2) => `(goto ,$2)

2017-01-06  Matt Wette  <mwette@alumni.caltech.edu>

	* parser.scm: default parser #:mode is now 'code; done
	since the CPP should now be working (??)

2017-01-02  Matt Wette  <mwette@alumni.caltech.edu>

	* mach.scm (c99-spec): added hooks (cpp-ok!, no-cpp!) to
	provide handshaking between parser and lexer wrt when the lexer
	can pass CPP statements to the parser

	* cppbody.scm (expand-cpp-mref): skip ws between ident
	and left paren

2017-01-01  Matt Wette  <mwette@alumni.caltech.edu>

	* body.scm (gen-c-lexer): in code mode now expands includes

	* pprint.scm (pretty-print-c99): added enum-dev w/o name


Copyright (C) 2017 Matthew R. Wette

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.

