[antlr-interest] TreeParser transform examples

Michael Brade brade at informatik.uni-muenchen.de
Tue Mar 14 07:38:42 PST 2006


Hi,

I'm having quite some trouble building a tree parser that outputs another and 
thus has buildAST=true set. I did not find any examples that are extensive 
and that do that. Any ideas? The Calc example shipped with antlr is far too 
simple.

One question I cannot figure out for instance: how do I add more children to 
the output AST being generated by a rule in another action?

This does not work:

structured_term!: #(NS_LABEL #(PREFIX prefix:NCNAME)
                             #(LOCAL   label:NCNAME)
                    {
                      ## = #([OPERATORS,"operators"],
                               #([TYPE_SEL,"type"], [STRING,"tree"]),
                               #([NAMESPACE_SEL,"namespace"], prefix),
                               #([LABEL_SEL,"label"], label),
                            );
                    }
                    t:children
                    {
                      ##.addChild( #([STRING,"TEST-NODE"]) );  // NOPE!!! :(
                    }
                   )
                ;

The addChild call puts a 
structured_term_AST = (AST)currentAST.root;
in the generated code right before the addChild call and spoils all the fun.

Hints?

Thanks,
-- 
Michael Brade;                 KDE Developer, Student of Computer Science
  |-mail: echo brade !#|tr -d "c oh"|s\e\d 's/e/\@/2;s/$/.org/;s/bra/k/2'
  °--web: http://www.kde.org/people/michaelb.html

KDE 4: Beyond Your Expectations
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://www.antlr.org/pipermail/antlr-interest/attachments/20060314/61695d31/attachment.bin


More information about the antlr-interest mailing list