Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.42!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-1.proxad.net!198.186.194.250.MISMATCH!news-out.readnews.com!news-xxxfer.readnews.com!news.misty.com!news.iecc.com!nerds-end From: Alessandro Basili Newsgroups: comp.compilers Subject: Re: bison c-parse.y:1115.19-20: $$ for the midrule at $4 of `structsp' has no declared type Date: Sun, 06 Nov 2011 19:24:32 +0100 Organization: Compilers Central Lines: 51 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-11-026@comp.compilers> References: <11-10-020@comp.compilers> <11-11-013@comp.compilers> <11-11-022@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1320641459 83724 64.57.183.58 (7 Nov 2011 04:50:59 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Mon, 7 Nov 2011 04:50:59 +0000 (UTC) Keywords: bison, parse Posted-Date: 06 Nov 2011 23:50:59 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: x330-a1.tempe.blueboxinc.net comp.compilers:328 On 11/4/2011 5:56 PM, George Neuner wrote: > On Wed, 02 Nov 2011 12:33:46 -0400, George Neuner > wrote: > > Someone commented offline that my rewrite might not work *if* the > mid-rule start_struct call was needed for recursive structure > definitions. I had looked at the code for start_struct before posting > and it looks like it should handle that situation, but it's difficult > to be sure without building the whole compiler. I'm trying to get the fixes done in order to build the compiler under gcc-4.4.1. And indeed I got rid of all the errors and warnings except for two types: warning: left shift count >= width of type warning: assignment from incompatible pointer type and should get rid of those very soon. > [...] > > The second version passes the state through the token for the opening > brace in case mid-rule results are somehow broken. I realize I'm not able to follow, maybe I need to study some fundamentals before go ahead and make changes to something I have no idea what it is about. > > Remember, though, that just because bison is happy does not mean the > generated C code will work. That's another key point it worries me a lot. My goal is not to fix the compiler, but start using it to build my program for the aforementioned architecture. I would assume the shift/reduce conflicts is resulting from an incorrect description of the language, but if I can be able to understand what kind of construct of the language will trigger the conflict I can probably avoid to use it in my program. To be honest I never doubted the correctness of the compiler I was using (how naive??) and now that I'm trying to build one I realize the complexity behind and how shaky are the pillars on which my applications are built upon. > > Hope this ... doesn't confuse the issue more. I will give it a try, restoring the %expected to 8, but even if that works I'm not sure I should stop understanding what are the shift/reduce conflicts and how should I avoid those conflicts when I program.