[antlr-interest] How to get GUI like tree structure

Ketan Maheshwari ketancmaheshwari at gmail.com
Wed Mar 31 08:26:41 PDT 2010


Jim

About the purpose of having ParseTree : I need to know what tokens are
children of a given rule in my input so that I can separate tokens based on
the rules and put them into places in a customized object which in turn is
required to generate  output in xml format!

So, essentially I am building a translator from my DSL to its xml
representation for which an xml writer exists. I just need to give it
correct java object!

I think a ParseTree only can do this since ASTs does not have rule names
they just have the tokens arranged in a tree.

Regards
Ketan


On Wed, Mar 31, 2010 at 5:11 PM, Ketan Maheshwari <
ketancmaheshwari at gmail.com> wrote:

> Jim
>
> Thanks for your quick answer. The code shown uses the -debug option to
> generate parser and lexer classes, but I have problems with the debug option
> that when I use it the parser just hangs and does not go ahead.
>
> Any solution as to generate a ParseTree without using the debug option.
>
> Ketan
>
> On Wed, Mar 31, 2010 at 4:58 PM, Jim Idle <jimi at temporal-wave.com> wrote:
>
>> I think you are looking for the wrong thing. You are unlikely to need the
>> parse tree in order to operate upon the input. You are almost certainly in
>> need of an AST that you build yourself using the ANTLR tree building
>> constructs.
>>
>>
>>
>> Did you search the WIKI:
>>
>>
>>
>> http://www.antlr.org/wiki/pages/viewpage.action?pageId=1760
>>
>>
>>
>> Jim
>>
>>
>>
>>
>>
>> From: Ketan Maheshwari [mailto:ketancmaheshwari at gmail.com]
>> Sent: Wednesday, March 31, 2010 7:47 AM
>> To: Jim Idle
>> Cc: antlr-interest at antlr.org
>> Subject: Re: [antlr-interest] How to get GUI like tree structure
>>
>>
>>
>> Hi Jim, Hi All
>>
>>
>>
>> I searched but still am struggling to really get the parsertree object for
>> my grammar.
>>
>>
>>
>> My goal is to get the parser tree object just as being shown in the GUI
>> and put its elements in another object that I need to construct based upon
>> the tree.
>>
>>
>>
>> But after a lot of search I still have no clue how do I get the ParserTree
>> object with a *hierarchy of rules* and leaf nodes as the actual *tokens* of
>> my program!
>>
>>
>>
>> Many thanks for any help with this.
>>
>>
>>
>> Regards
>>
>> Ketan
>>
>>
>>
>> On Mon, Mar 29, 2010 at 6:30 PM, Jim Idle <jimi at temporal-wave.com> wrote:
>>
>> Ah. You are asking for the parser tree, not a representation of the AST?
>> Search the mailing list for this. Such a tree is not generally useful for
>> doing things with (so if you are looking for this information because you
>> want to use it to generate code or something, then you are probably looking
>> at your problem incorrectly), but it is very useful for debugging the tree.
>>
>>
>>
>> http://antlr.markmail.org/search/?q=parse+tree
>>
>>
>>
>>
>>
>> If all you want is information in the nodes, then get the payload of the
>> leaf node (usually CommonToken) and ask for it, but that’s what the code you
>> looked at is doing.
>>
>>
>>
>> Jim
>>
>>
>>
>>
>>
>> From: Ketan Maheshwari [mailto:ketancmaheshwari at gmail.com]
>> Sent: Monday, March 29, 2010 9:18 AM
>> To: Jim Idle
>> Cc: antlr-interest at antlr.org
>> Subject: Re: [antlr-interest] How to get GUI like tree structure
>>
>>
>>
>>
>> Jim
>>
>>
>>
>> Thanks again for your answer.
>>
>>
>>
>> 1. I checked the DOTTreeGenerator.java code but I do not seem to know how
>> it finds all the info about a tree. Also I am confused with its use of both
>> the stringtemplates and trees (are'nt they mutually exclusive?).
>>
>>
>>
>> 2. Yes, the toStringTree() method prints the tree but it only gives the
>> leaf nodes, that is the program itself. I have no info about which rule a
>> given token belongs to.
>>
>>
>>
>> To be more clear, see the attached snapshot. My question is how can I
>> capture this parse tree in a some kind of java data structure and walk
>> through it.
>>
>>
>>
>> Many Thanks again for all your help.
>>
>> Ketan
>>
>>
>>
>> On Mon, Mar 29, 2010 at 5:41 PM, Jim Idle <jimi at temporal-wave.com> wrote:
>>
>> Look at the code for DOTTreeGenerator.java or use toStringTree() if that
>> gives you a good enough representation.
>>
>> Jim
>>
>>
>> > -----Original Message-----
>> > From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
>> > bounces at antlr.org] On Behalf Of Ketan Maheshwari
>> > Sent: Monday, March 29, 2010 7:36 AM
>> > To: antlr-interest at antlr.org
>> > Subject: [antlr-interest] How to get GUI like tree structure
>> >
>> > Hello Friends
>> >
>> > I am trying to use the CommonTree generated by the parser of my grammar
>> > against a test code.
>> >
>> > Using the getChild(index).toString method, I get the tokens well.
>> >
>> > However, I do not know how can I also get a hierarchy of the rule to
>> > which
>> > they belong to. Similar to what we get in the ANTLRworks GUI.
>> >
>> > Any clue how can I get a tree such that it shows complete hierarchy of
>> > the
>> > grammar and the tokens as leaf nodes only.
>> >
>> > Am I using the correct Data Structure (CommonTree) ?
>> >
>> > Thanks for any clues.
>> >
>> > Regards
>> > Ketan
>> >
>>
>> > List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> > Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
>> > email-address
>>
>>
>>
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>>
>>
>>
>>
>>
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>>
>>
>>
>>
>>
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>>
>
>


More information about the antlr-interest mailing list