[antlr-interest] Re: AST algorithm stuck in infinite loop?
jw9315
jw9315 at bris.ac.uk
Tue May 6 07:28:50 PDT 2003
Hi,
yes I can see that would be easier, but unfortunately I am have very
little to implement the solution, and I was using this method to get
a feel for the structure of AST's..
Cheers,
Jon
--- In antlr-interest at yahoogroups.com, Matt Benson <gudnabrsam at y...>
wrote:
> Everybody, if the original goal was to read a Java
> source file and output the names of the classes in it,
> and their arguments, wouldn't it be just as easy to
> modify java.tree.g to store or print the desired
> information as it walks the tree? If this weren't for
> educational purposes, of course, it would be much
> easier to just run javadoc...
>
> -Matt
>
> --- jw9315 <jw9315 at b...> wrote:
> > Apologies, the algorithm was not stuck in a loop, it
> > was just taking
> > so long to complete that I did not notice! It still
> > seems to go
> > through the same branch many times though, I was
> > wondering if it was
> > meant to do this, or it was an error in the
> > implementation of the
> > algorithm?
> > Thanks,
> > Jon
> >
> > --- In antlr-interest at yahoogroups.com, "jw9315"
> > <jw9315 at b...> wrote:
> > > Hi,
> > > I implemented the following algorithm to walk an
> > AST as suggested
> > by
> > > a member of this group:
> > >
> > > // Start
> > > void visit( AST tree )
> > > {
> > > AST child = tree.getFirstChild();
> > > System.out.println("_" + child);
> > > // Test to see if node has a child
> > > if( child != null)
> > > {
> > > System.out.println(child);
> > > // Call method recursively
> > > visit( child );
> > > }
> > > // Else there were no children
> > > AST sibling = tree.getNextSibling();
> > > while( sibling != null)
> > > {
> > > System.out.println(sibling);
> > > visit( sibling );
> > > sibling = sibling .getNextSibling();
> > > }
> > > // End
> > >
> > > However, I find that this enters an infinite loop
> > and prints the
> > tree
> > > out over and over again. Have I implemented the
> > algorithm
> > correctly,
> > > and if so, could someone tell me how to test for
> > the fact that I
> > have
> > > walked the whole tree? Is there a special command
> > for this?
> > > Thanks in advance,
> > > Jon
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/
> >
> >
>
>
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Search - Faster. Easier. Bingo.
> http://search.yahoo.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list