From: Oliver B. <oli...@go...> - 2012-07-30 19:43:00
|
On 30.07.2012 21:37, William S Fulton wrote: > On 29/07/12 10:12, дмитрий кабак wrote: >> Hello. >> >> I'm a GSoC participant working on doxygen comments parsing and >> translating. And currently I have some problems in extracting comments >> from the source files in parser.y. The problem is that parser fails when >> there is no node to attach comment to. >> I'm defining comment rules like that: >> >> interface : interface declaration { >> >> /* add declaration to end of linked list (the >> declaration isn't always a single declaration, sometimes it is a linked >> list itself) */ >> >> appendChild($1,$2); >> >> $$ = $1; >> >> } >> >> | interface doxygen_comment declaration { >> >> set_comment($3, $2); >> >> appendChild($1, $3); >> >> $$ = $1; >> >> } >> >> | interface declaration doxygen_post_comment { >> >> set_comment($2, $3); >> >> appendChild($1, $2); >> >> $$ = $1; >> >> } >> >> And that was giving "Syntax error in input" for example for empty file >> with no node to attach doxygen_comment to. Then I modified that: >> >> interface : ... >> >> | interface doxygen_comment { >> >> $$ = $1; >> >> } >> >> But that produces lots of reduce/reduce warnings and breaks the whole >> comments parsing. And I don't understand why is it so, doxygen_comment >> and doxygen_post_comment are defined as a simple DOXYGENSTRINGs tokens, >> and there should be no problems. >> As I'm not very good at bison, I'm asking for your help. I've tried lots >> of lots of variations of rules, but nothing seems to work. >> -- > Hi Dmitry > > I'm not sure there is much bison expertise here, I wish there was! > Perhaps the bison mailing lists could help out more? Did you find out > from the bison documentation what sort of things cause reduce/reduce > warnings? Probably best to go back to basics. > > William > Actually I have quite a lot of experience in that... but I am totally running out of time currently. Those warnings can usually be resolved (easily) by splitting (too convenient) expressions into more atomic ones... Though it takes time to analyze which I don't have right now... Any other helpers out there? Oliver |