[antlr-interest] Tree construction
Gavin Lambert
antlr at mirality.co.nz
Mon Jul 2 05:16:27 PDT 2007
At 23:04 2/07/2007, Ruth Karl wrote:
>One of those rules looks like this:
>
> htmltag : OPENTAG (SLASH)? ((text | bracketexpr |
> quoted | scriptlet)+ (PERCENT)* )* CLOSETAG ;
>
>
>No if I add the following tree construction rule:
>
> ->^(HTMLTAG text* bracketexpr* quoted* scriptlet*)
>
>
>and parse something like
>
> <meta http-equiv="Content-Type" content="text/html">
>
>I get a result that sorts texts and quotes, like:
>
> <HTMLTAG meta http-equiv= content= <QUOTE Content-Type>
> <QUOTE text/html>>
>
>This does not really surprise me, but I would like to find out
how
>I should put the tree construction rule in order to get the
child
>nodes in the order of their appearance in the parsed text.
>Is there a way to do it without touching/splitting the parser
>rule?
Well, there might be, but probably the easiest thing to do would
be to split it a little bit:
htmlcontent : text | bracketexpr | quoted | scriptlet;
htmltag : OPENTAG SLASH? (htmlcontent+ PERCENT*)* CLOSETAG
-> ^(HTMLTAG htmlcontent*);
Or something along those lines, anyway ;)
More information about the antlr-interest
mailing list