Hans, >>typedef x y; >>typedef i j; >>{ >> >>is a syntactically valid function definition. > >So it seems, but I have not been able to figure out which function. :-)
The syntax does not permit an empty declaration. So x must be the declarator. The second typedef is simply a declaration and is not necessary for this to be a syntactically correct function definition. It's presence simply increases to the amazement factor. > The >problem is that C has some grammar difficulties. The C declaration grammar was designed to mimic the syntax of how the declarator would appear in an expression. Irrespective of whether this is a good idea in itself, the resulting declaration syntax is not people friendly. My current problem is (courtesy of the last documentation update) a reported ambiguity in: static foo (bar); static int foo (lose); Both declarations parse ok when they are the only line in a file. Putting both lines together gives a surprising ambiguity report. >I have some vague memory that somebody found (fairly late, in the 90'ies) a >grammar transformation to make C becoming LALR(1) (modulo the usual context >tweaks for "typedef", etc.) Then you would not need using the %glr option. >You might check the newsgroup comp.compilers and its FAQ, published there >monthly. I have a lalr(1) grammar for C (who doesn't?). The first edition of Harbison&Steele list the output from such a tool for C. My interest is in measuring visible source (see www.knosof.co.uk/cbook/usefigtab.pdf ; skip to table 26; the source of many of the tools can be found at: www.knosof.co.uk/cbook/srccnt.tgz ) and using a grammar that is as close as possible to that given in the C Standard has many advantages. Performance is not an issue (not that I think that nondeterministic parsing would be a performance bottleneck). derek -- Derek M Jones tel: +44 (0) 1252 520 667 Knowledge Software Ltd mailto:[EMAIL PROTECTED] Applications Standards Conformance Testing http://www.knosof.co.uk _______________________________________________ Help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison