KDevelop-PG and the resulting AST

Andreas Pakulat apaku at gmx.de
Sat Jul 21 19:03:01 UTC 2007


On 21.07.07 19:30:10, Roberto Raggi wrote:
> Il giorno 21/lug/07, alle ore 19:00, Andreas Pakulat ha scritto:
> 
> > in the qmake_parser_experiment branch I've hit a pretty bad problem: I
> > can't produce a proper AST node for this rule:
> >
> > ( OR #id=IDENTIFIER ( #func_args=function_args | 0 ) )
> > -> or_op;;
> 
> the standard fix in LL is: introduce a new symbol. For example, I  
> have introduced a new symbol called `item'.
> 
> #item=item @ OR -> or_op ;;
> 
> id=IDENTIFIER (LPAREN arg=function_args RPAREN | 0) -> item ;;

Damn, I shouldn't code under time-pressure :) In fact I already did
exactly that at one or two other places.

> > the problem is that there's no relation between the id_sequence and  
> > the
> > func_args_sequence in the AST, but there is one in reality. I tried to
> > put
> >
> > [: (*yynode)->func_args_sequence->insert(0); :]
> >
> > into the epsilon part, but that doesn't work because kdev-pg's list
> > implementation is "crap" ;).
> 
> It's not crap ;-) it's a plain standard circular list, you don't need  
> more in compiler front-ends, but it's true it needs to be improved.

I didn't mean it literally (thus the quotes), I guess I should've
thought about a better word. I was just surprised that it didn't have a
way to append an entry.

Andreas

-- 
Next Friday will not be your lucky day.  As a matter of fact, you don't
have a lucky day this year.




More information about the KDevelop-devel mailing list