Related articles |
---|
Jim Roskind's C grammar (c5.y) ian@cs.man.ac.uk (Ian Cottam) (1991-08-04) |
Newsgroups: | comp.lang.c,comp.compilers |
From: | Ian Cottam <ian@cs.man.ac.uk> |
Followup-To: | comp.lang.c |
Keywords: | C, parse |
Organization: | Department of Computer Science, University of Manchester UK |
Date: | 4 Aug 91 15:57:19 GMT |
In the interesting grammar for C kindly supplied to the Usenet community by
"jar@hq.ileaf.com (Jim Roskind)", a simple hack to identify typedef names is
used in order to allow users to experiment with his grammar. The hack is that
typedef names must begin with a capital letter.
I have made a small modification to the grammar and flex files to make the
handling of typedef names a *little* more realistic. In the modified version
I keep a list of typedef names and the lexer simply searches this list to
determine if IDENTIFIER or TYPEDEFname should be returned to yacc. Of course,
this is still a hack in that the proper scope rules are not used.
Nevertheless, this change enables a large number of C modules to be analysed
*without* having to edit all the typedefs.
If I get any more time, I may put the proper scoping in.
For people that have access to large amounts of C code (e.g. UNIX source) and
some sort of `context grep', I would be interested in what percentage of
typedefs are actually local to a function or block.
--
Ian Cottam, Room IT209, Department of Computer Science,
University of Manchester, Oxford Road, Manchester, M13 9PL, U.K.
Tel: (+44) 61-275 6157 FAX: (+44) 61-275-6236
Internet: ian%cs.man.ac.uk; JANET: ian@uk.ac.man.cs
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.