|Jim Roskind's C grammar (c5.y) firstname.lastname@example.org (Ian Cottam) (1991-08-04)|
|From:||Ian Cottam <email@example.com>|
|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
"firstname.lastname@example.org (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: email@example.com
Return to the
Search the comp.compilers archives again.