This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC Parse Tree/Grammar Issues


Hello all:

Thanks for the reply Neil. I've never made a really large production compiler before
(compiler writing isn't an area I've done research or development in, although I've written
a few smaller compilers in grad school and created a few simple languages for my own use).
I wasn't really keen on rolling my own scanner, but I was curious about the design
decision. My goal is to get parse tree output, not reinvent the wheel.


Initially I had developed a simple FLEX/Bison tool using the grammar in K&R (proposed
ANSI standard edition, which shows my age I guess). Similar to your suggestion, I
was planning on parsing the output of phase 4 of translation (as per
http://ou800doc.caldera.com/SDK_cprog/CLC_PhasesTranslation.html)
meaning that I compiled with the -P or -E flags turned on using gcc for initial preprocessing,
but even for source code that is ANSI C compatible, many headers assume a GCC dialect,
so this solution is clearly suboptimal.


Stephen Bosscher has helpfully pointed out that the SSA group might have
developed something that will meet my needs, but I'll need to do a little checking first
to see if it fits my needs.


From: Neil Booth <neil at daikokuya dot co dot uk>
[deletia]
Foolish Ewe wrote:-

> 2) Am I correct that gcc uses an ad hoc scanner, I did not see a file wiith
> a .l extension
> in the directory and it looks like c-lex.c may be the scanner? If I'm


Yes, it's hand coded.  If you can produce one that handles lexing in the
same way as GCC, by passing the testsuite, and with all the diagnostics
and correct source file locations, I would consider it, but I think
you'll find that machine-generated scanners are not up to the job.
Starting at stage 3 of the ISO phases of translation might be more
realistic.

The lexer is currently in cpplex.c (and partly cpptrad.c for traditional
preprocessing), and is about to undergo a considerable rewrite over
the next few weeks.  Whatever you do, it'll be worthwhile waiting for
the dust to settle as the end result will be considerably cleaner.

Neil.

Thanks again for the information:


Bill M. (Last name withheld to prevent spamming)

_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]