This started off as a quick hack to parse simple assignment expressions, for use
in optimising the output from the 6809 static binary translator in the parent
directory.  It turned out that after handling expressions, the rest of C was
relatively easy to add!  Although the grammar I started out using as a basis
for this was very crude, and I had to throw out a lot of it and recreate it
from first principles.

It appears to at least parse the majority of C syntax now, though many extra
statements might currently be accepted which in a proper C compiler would be
rejected by semantic checks.

At the moment the only 'compilation' that this code does is to recreate the
source file from the parse tree.  Comments are currently not preserved although
that could be done by adding a comment field to the c[] struct which holds
the lexical items.

Unlike most C compilers, this one uses the old technique of 'line reconstruction'
rather than lexing/tokenising, which surprisingly appears to work despite the
language issues.
